drizzle-cube 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/ActivityGridChart.config-BQhBE_Mr.js +2 -0
- package/dist/adapters/ActivityGridChart.config-C3tSuOGV.cjs +1 -0
- package/dist/adapters/AreaChart.config-3cme8HyQ.js +2 -0
- package/dist/adapters/AreaChart.config-BSxrT52Z.cjs +1 -0
- package/dist/adapters/BarChart.config-BKS8IecE.cjs +1 -0
- package/dist/adapters/BarChart.config-lt_7PdIi.js +2 -0
- package/dist/adapters/BoxPlotChart.config-B7qvRnrF.cjs +1 -0
- package/dist/adapters/BoxPlotChart.config-Dv6ECj2j.js +2 -0
- package/dist/adapters/BubbleChart.config-BrIH7OAy.cjs +1 -0
- package/dist/adapters/BubbleChart.config-Fhotb7Pg.js +2 -0
- package/dist/adapters/CandlestickChart.config-CWH41FmF.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-RPtXuxsX.js +2 -0
- package/dist/adapters/DataTable.config-71L0GzlT.js +2 -0
- package/dist/adapters/DataTable.config-BsOMQq3J.cjs +1 -0
- package/dist/adapters/FunnelChart.config-Cqte9C04.cjs +1 -0
- package/dist/adapters/FunnelChart.config-DJtwWeNz.js +2 -0
- package/dist/adapters/GaugeChart.config-WkwZ9VdS.cjs +1 -0
- package/dist/adapters/GaugeChart.config-vpVQlP5B.js +2 -0
- package/dist/adapters/HeatMapChart.config-DcmkDl07.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-DsmMgGxJ.js +2 -0
- package/dist/adapters/KpiDelta.config-DVy561BH.js +2 -0
- package/dist/adapters/KpiDelta.config-dpqwLHNE.cjs +1 -0
- package/dist/adapters/KpiNumber.config-927l8nq8.js +2 -0
- package/dist/adapters/KpiNumber.config-BqFBMfPf.cjs +1 -0
- package/dist/adapters/KpiText.config-C-fZXuHq.cjs +1 -0
- package/dist/adapters/KpiText.config-CWoXuhMA.js +2 -0
- package/dist/adapters/LineChart.config-DTp7pqOY.js +2 -0
- package/dist/adapters/LineChart.config-DUGvSjcH.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-23Dmv2Ty.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-Cb2TnS0I.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-B2qbWdhy.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-CvBCeI5b.js +2 -0
- package/dist/adapters/PieChart.config-BzJb13QA.js +2 -0
- package/dist/adapters/PieChart.config-plCn5Ehr.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-1r-_moBH.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-CN6TtHTp.js +2 -0
- package/dist/adapters/RadarChart.config-BYhdj9M7.js +2 -0
- package/dist/adapters/RadarChart.config-CeUMP-1g.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-B88yXNsq.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-ZMK9HMoh.js +2 -0
- package/dist/adapters/RetentionCombinedChart.config-B5yvgUHM.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-Dd-YMdK8.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-BYzDleoV.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-Dvj7yTB0.js +2 -0
- package/dist/adapters/SankeyChart.config-CPFRmgFb.cjs +1 -0
- package/dist/adapters/SankeyChart.config-ClgqXM1N.js +2 -0
- package/dist/adapters/ScatterChart.config-CvJiqPa5.cjs +1 -0
- package/dist/adapters/ScatterChart.config-DLZ3rYMq.js +2 -0
- package/dist/adapters/SunburstChart.config-C_1V5hoQ.cjs +1 -0
- package/dist/adapters/SunburstChart.config-FNU75NCg.js +2 -0
- package/dist/adapters/TreeMapChart.config-CprZk_YF.js +2 -0
- package/dist/adapters/TreeMapChart.config-DNwd0ge9.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-BBhcN_Fh.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-H7s6SSV3.js +2 -0
- package/dist/adapters/{compiler-BNjqYdmc.cjs → compiler-BaLO10VN.cjs} +7 -7
- package/dist/adapters/{compiler-DiYxWAKg.js → compiler-CQJ5GOwF.js} +286 -119
- package/dist/adapters/core/http-port.d.ts +34 -7
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.d.ts +1 -0
- package/dist/adapters/core/index.js +2 -2
- package/dist/adapters/core/rest-handlers.d.ts +1 -1
- package/dist/adapters/{core-BOPRmxPc.js → core-DXkuSUBg.js} +80 -64
- package/dist/adapters/core-DgTGXxDu.cjs +1 -0
- package/dist/adapters/express/index.cjs +2 -2
- package/dist/adapters/express/index.d.ts +11 -2
- package/dist/adapters/express/index.js +14 -14
- package/dist/adapters/fastify/index.cjs +2 -2
- package/dist/adapters/fastify/index.d.ts +11 -2
- package/dist/adapters/fastify/index.js +12 -12
- package/dist/adapters/{handler-DGud-C-w.js → handler-CphYSZRh.js} +74 -74
- package/dist/adapters/{handler-m6WgA9xu.cjs → handler-DrRT6c14.cjs} +8 -8
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +9 -9
- package/dist/adapters/mcp-tools-handlers.d.ts +10 -3
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +18 -20
- package/dist/adapters/mcp-transport-BGkSz-ZT.cjs +40 -0
- package/dist/adapters/mcp-transport-fJud19xz.js +606 -0
- package/dist/adapters/mcp-transport.d.ts +13 -2
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.d.ts +5 -2
- package/dist/adapters/nextjs/index.js +32 -32
- package/dist/adapters/{openai-CGJM6Qun.js → openai-CBrN4nxl.js} +2 -2
- package/dist/adapters/{openai-Dwt9bxOE.cjs → openai-CI9vGKSf.cjs} +1 -1
- package/dist/adapters/{openai-CmdN7Sj1.cjs → openai-CSzWluuv.cjs} +1 -1
- package/dist/{server/openai-Czk1BdHa.js → adapters/openai-D-VMcPao.js} +1 -1
- package/dist/adapters/{utils-BoOeig94.cjs → utils-BY0-KFyI.cjs} +2 -2
- package/dist/adapters/{utils-DboNUT3A.js → utils-DkmShl5f.js} +23 -20
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.d.ts +2 -2
- package/dist/adapters/utils.js +1 -1
- package/dist/cjs/adapters/core/http-port.d.ts +34 -7
- package/dist/cjs/adapters/core/index.d.ts +1 -0
- package/dist/cjs/adapters/core/rest-handlers.d.ts +1 -1
- package/dist/cjs/adapters/express/index.d.ts +11 -2
- package/dist/cjs/adapters/fastify/index.d.ts +11 -2
- package/dist/cjs/adapters/mcp-tools-handlers.d.ts +10 -3
- package/dist/cjs/adapters/mcp-transport.d.ts +13 -2
- package/dist/cjs/adapters/nextjs/index.d.ts +5 -2
- package/dist/cjs/adapters/utils.d.ts +2 -2
- package/dist/cjs/server/adapters/base-adapter.d.ts +46 -0
- package/dist/cjs/server/adapters/databend-adapter.d.ts +5 -0
- package/dist/cjs/server/adapters/duckdb-adapter.d.ts +5 -0
- package/dist/cjs/server/adapters/mysql-adapter.d.ts +14 -0
- package/dist/cjs/server/adapters/postgres-adapter.d.ts +15 -0
- package/dist/cjs/server/adapters/snowflake-adapter.d.ts +6 -0
- package/dist/cjs/server/adapters/sqlite-adapter.d.ts +21 -0
- package/dist/cjs/server/attribute-dimensions.d.ts +99 -0
- package/dist/cjs/server/cache-utils.d.ts +5 -1
- package/dist/cjs/server/compiler-metadata.d.ts +24 -3
- package/dist/cjs/server/compiler.d.ts +157 -10
- package/dist/cjs/server/execution/query-result-cache.d.ts +1 -1
- package/dist/cjs/server/index.d.ts +11 -3
- package/dist/cjs/server/query-handlers.d.ts +1 -1
- package/dist/cjs/server/types/core.d.ts +8 -0
- package/dist/cjs/server/types/cube.d.ts +27 -2
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-BOfLdTgV.js → DashboardEditModal-9An5EDAz.js} +12 -12
- package/dist/client/chunks/{DashboardEditModal-BOfLdTgV.js.map → DashboardEditModal-9An5EDAz.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-DwoXU5VP.js → ProportionBarChart-BVcbGY2C.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-DwoXU5VP.js.map → ProportionBarChart-BVcbGY2C.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-BqlSV7yF.js → RetentionCombinedChart-D68Rvdi-.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-BqlSV7yF.js.map → RetentionCombinedChart-D68Rvdi-.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-VdVkBg8Q.js → RetentionHeatmap-CE7BAjrB.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-VdVkBg8Q.js.map → RetentionHeatmap-CE7BAjrB.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-DXw60SEs.js → analysis-builder-D1pYvvwc.js} +9 -9
- package/dist/client/chunks/{analysis-builder-DXw60SEs.js.map → analysis-builder-D1pYvvwc.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-CEvHIlmk.js → analysis-builder-shared-BQvwUc6z.js} +9 -9
- package/dist/client/chunks/{analysis-builder-shared-CEvHIlmk.js.map → analysis-builder-shared-BQvwUc6z.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-4jfS8khG.js → chart-activity-grid-DvD_4wJz.js} +5 -2
- package/dist/client/chunks/chart-activity-grid-DvD_4wJz.js.map +1 -0
- package/dist/client/chunks/{chart-area-Dol6s9no.js → chart-area-DPp3hSOK.js} +2 -2
- package/dist/client/chunks/{chart-area-Dol6s9no.js.map → chart-area-DPp3hSOK.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-5_niozi2.js → chart-bar-Od3pOyZ0.js} +3 -3
- package/dist/client/chunks/{chart-bar-5_niozi2.js.map → chart-bar-Od3pOyZ0.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-Dhp-VwhD.js → chart-box-plot-l0iFn2n2.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-Dhp-VwhD.js.map → chart-box-plot-l0iFn2n2.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-BM2BAMSo.js → chart-bubble-Dl0RcP8N.js} +2 -2
- package/dist/client/chunks/{chart-bubble-BM2BAMSo.js.map → chart-bubble-Dl0RcP8N.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-BNwLIBfm.js → chart-candlestick-DZMqbscF.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-BNwLIBfm.js.map → chart-candlestick-DZMqbscF.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-DoDHQRe7.js → chart-data-table-DgiNBOWf.js} +3 -3
- package/dist/client/chunks/chart-data-table-DgiNBOWf.js.map +1 -0
- package/dist/client/chunks/{chart-funnel-Cd7da_sa.js → chart-funnel-YLZlyN1X.js} +2 -2
- package/dist/client/chunks/{chart-funnel-Cd7da_sa.js.map → chart-funnel-YLZlyN1X.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-DOpul-Oz.js → chart-gauge-BsqE2wwF.js} +3 -3
- package/dist/client/chunks/{chart-gauge-DOpul-Oz.js.map → chart-gauge-BsqE2wwF.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-CeKbK655.js → chart-heat-map-BsND8RM_.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-CeKbK655.js.map → chart-heat-map-BsND8RM_.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-Dq8qUOOT.js → chart-kpi-delta-m0azuva-.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-Dq8qUOOT.js.map → chart-kpi-delta-m0azuva-.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-DgiqTi9g.js → chart-kpi-number-6JS15SqF.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-DgiqTi9g.js.map → chart-kpi-number-6JS15SqF.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-CsZMVEnM.js → chart-kpi-text-BqX8p8Jn.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-CsZMVEnM.js.map → chart-kpi-text-BqX8p8Jn.js.map} +1 -1
- package/dist/client/chunks/{chart-line-DlwOB7C7.js → chart-line-NCmpxBfE.js} +3 -3
- package/dist/client/chunks/{chart-line-DlwOB7C7.js.map → chart-line-NCmpxBfE.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-DPE34SjC.js → chart-markdown-ZOobqiiX.js} +2 -2
- package/dist/client/chunks/{chart-markdown-DPE34SjC.js.map → chart-markdown-ZOobqiiX.js.map} +1 -1
- package/dist/client/chunks/{chart-measure-profile-BpTz1fce.js → chart-measure-profile-CBAZaicJ.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-BpTz1fce.js.map → chart-measure-profile-CBAZaicJ.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-FGw66XAH.js → chart-pie-ChrasEI8.js} +3 -3
- package/dist/client/chunks/{chart-pie-FGw66XAH.js.map → chart-pie-ChrasEI8.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-D-eRDoiA.js → chart-radar-CxSVF7yL.js} +3 -3
- package/dist/client/chunks/{chart-radar-D-eRDoiA.js.map → chart-radar-CxSVF7yL.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-DgtkNTs3.js → chart-radial-bar--SN0Wph0.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-DgtkNTs3.js.map → chart-radial-bar--SN0Wph0.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-D0hhb_EQ.js → chart-sankey-CDOSGg9r.js} +2 -2
- package/dist/client/chunks/{chart-sankey-D0hhb_EQ.js.map → chart-sankey-CDOSGg9r.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-D9EcAiMQ.js → chart-scatter-DgcEF-kI.js} +3 -3
- package/dist/client/chunks/{chart-scatter-D9EcAiMQ.js.map → chart-scatter-DgcEF-kI.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-DCYmJ5DU.js → chart-sunburst-MB-jlGBm.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-DCYmJ5DU.js.map → chart-sunburst-MB-jlGBm.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-D_ACSSiB.js → chart-tree-map-DeDXveVd.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-D_ACSSiB.js.map → chart-tree-map-DeDXveVd.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-CVUVNa1R.js → chart-waterfall-ur4vkO1j.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-CVUVNa1R.js.map → chart-waterfall-ur4vkO1j.js.map} +1 -1
- package/dist/client/chunks/{charts-core-BPD_hLaL.js → charts-core-BAH5pkSB.js} +2 -2
- package/dist/client/chunks/{charts-core-BPD_hLaL.js.map → charts-core-BAH5pkSB.js.map} +1 -1
- package/dist/client/chunks/charts-loader-eToV8je7.js +85 -0
- package/dist/client/chunks/{charts-loader-CwMcOfwT.js.map → charts-loader-eToV8je7.js.map} +1 -1
- package/dist/client/chunks/{exceljs.min-DWC_b8G9.js → exceljs.min-CiByP8VQ.js} +2 -3
- package/dist/client/chunks/{exceljs.min-DWC_b8G9.js.map → exceljs.min-CiByP8VQ.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-DFLVORiD.js → nl-NL-CMXHDBr0.js} +4 -1
- package/dist/client/chunks/nl-NL-CMXHDBr0.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-C6g_LCiA.js → schema-visualization-BEbFtUIL.js} +3 -3
- package/dist/client/chunks/{schema-visualization-C6g_LCiA.js.map → schema-visualization-BEbFtUIL.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-ZfChDEd3.js → useDirtyStateTracking-CSDg96Rw.js} +4 -4
- package/dist/client/chunks/{useDirtyStateTracking-ZfChDEd3.js.map → useDirtyStateTracking-CSDg96Rw.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-im9e1rVb.js → useExplainAI-BnkoZ-zS.js} +4 -4
- package/dist/client/chunks/{useExplainAI-im9e1rVb.js.map → useExplainAI-BnkoZ-zS.js.map} +1 -1
- package/dist/client/chunks/{vendor-Qa1s8oSX.js → vendor-BmJDaduD.js} +2 -2
- package/dist/client/chunks/vendor-BmJDaduD.js.map +1 -0
- package/dist/client/components.js +1 -1
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +13 -13
- package/dist/client/providers.js +1 -1
- package/dist/client/schema.js +1 -1
- package/dist/client/utils.js +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +43 -43
- package/dist/server/adapters/base-adapter.d.ts +46 -0
- package/dist/server/adapters/databend-adapter.d.ts +5 -0
- package/dist/server/adapters/duckdb-adapter.d.ts +5 -0
- package/dist/server/adapters/mysql-adapter.d.ts +14 -0
- package/dist/server/adapters/postgres-adapter.d.ts +15 -0
- package/dist/server/adapters/snowflake-adapter.d.ts +6 -0
- package/dist/server/adapters/sqlite-adapter.d.ts +21 -0
- package/dist/server/attribute-dimensions.d.ts +99 -0
- package/dist/server/cache-utils.d.ts +5 -1
- package/dist/server/compiler-metadata.d.ts +24 -3
- package/dist/server/compiler.d.ts +157 -10
- package/dist/server/execution/query-result-cache.d.ts +1 -1
- package/dist/server/index.cjs +39 -35
- package/dist/server/index.d.ts +11 -3
- package/dist/server/index.js +673 -477
- package/dist/{adapters/openai-Crp3X_zg.js → server/openai-6uUf7h-5.js} +1 -1
- package/dist/server/{openai-DBwI1OSu.cjs → openai-BBe1XbZd.cjs} +1 -1
- package/dist/server/{openai-Cu4TXXjl.cjs → openai-BmADmD1e.cjs} +1 -1
- package/dist/server/{openai-CUf4vc3Q.js → openai-C1gLuR-0.js} +1 -1
- package/dist/server/query-handlers.d.ts +1 -1
- package/dist/server/types/core.d.ts +8 -0
- package/dist/server/types/cube.d.ts +27 -2
- package/package.json +2 -2
- package/dist/adapters/ActivityGridChart.config-D6hhj345.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-QZKs_NYg.js +0 -2
- package/dist/adapters/AreaChart.config-B5XM6G22.js +0 -2
- package/dist/adapters/AreaChart.config-NP34BH5y.cjs +0 -1
- package/dist/adapters/BarChart.config-Bqlmr81N.js +0 -2
- package/dist/adapters/BarChart.config-C3bw-cAP.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-BOAvoj6x.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-CTXiycYY.js +0 -2
- package/dist/adapters/BubbleChart.config-CGFIkl4H.cjs +0 -1
- package/dist/adapters/BubbleChart.config-Njxx4Eq1.js +0 -2
- package/dist/adapters/CandlestickChart.config-BZ_yWaSo.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-D4Svhmef.js +0 -2
- package/dist/adapters/DataTable.config-B-bT9puT.js +0 -2
- package/dist/adapters/DataTable.config-BHtt1cPM.cjs +0 -1
- package/dist/adapters/FunnelChart.config-C1e07O7B.cjs +0 -1
- package/dist/adapters/FunnelChart.config-CVEy0tV9.js +0 -2
- package/dist/adapters/GaugeChart.config-5PLNlQlu.js +0 -2
- package/dist/adapters/GaugeChart.config-Cdv6knjZ.cjs +0 -1
- package/dist/adapters/HeatMapChart.config-MGTfYpWJ.js +0 -2
- package/dist/adapters/HeatMapChart.config-jfBEi1ZI.cjs +0 -1
- package/dist/adapters/KpiDelta.config-D2IUsEYz.cjs +0 -1
- package/dist/adapters/KpiDelta.config-DT_MmAHw.js +0 -2
- package/dist/adapters/KpiNumber.config-ChgbKmx8.cjs +0 -1
- package/dist/adapters/KpiNumber.config-CvZ_FhyL.js +0 -2
- package/dist/adapters/KpiText.config-Bgkw8gr2.js +0 -2
- package/dist/adapters/KpiText.config-Bz9orqt6.cjs +0 -1
- package/dist/adapters/LineChart.config-BVew35dI.cjs +0 -1
- package/dist/adapters/LineChart.config-DSCCKXNg.js +0 -2
- package/dist/adapters/MarkdownChart.config-Bu6XUuhI.js +0 -2
- package/dist/adapters/MarkdownChart.config-E4aSVTf3.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-BF249hc_.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-lERVe38G.js +0 -2
- package/dist/adapters/PieChart.config-7Ujwp8R5.cjs +0 -1
- package/dist/adapters/PieChart.config-jQl2HIcA.js +0 -2
- package/dist/adapters/ProportionBarChart.config-o0w_Pnlt.js +0 -2
- package/dist/adapters/ProportionBarChart.config-phNohhhY.cjs +0 -1
- package/dist/adapters/RadarChart.config-BmrYBd9x.js +0 -2
- package/dist/adapters/RadarChart.config-Dlt3UflG.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-CeEm8xRb.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-Dishh6bC.js +0 -2
- package/dist/adapters/RetentionCombinedChart.config-BaD4ev85.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-m2FjBUi9.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-DiMplGdk.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-Dp6oYwQZ.cjs +0 -1
- package/dist/adapters/SankeyChart.config-C4Y6qzCS.cjs +0 -1
- package/dist/adapters/SankeyChart.config-CJHqgjQ1.js +0 -2
- package/dist/adapters/ScatterChart.config-C0QqvDrN.cjs +0 -1
- package/dist/adapters/ScatterChart.config-DywOsWPW.js +0 -2
- package/dist/adapters/SunburstChart.config-DE8RxpDR.cjs +0 -1
- package/dist/adapters/SunburstChart.config-DohowrO3.js +0 -2
- package/dist/adapters/TreeMapChart.config-D2gXz-zC.cjs +0 -1
- package/dist/adapters/TreeMapChart.config-HMlI29GG.js +0 -2
- package/dist/adapters/WaterfallChart.config-BO2WV2VB.js +0 -2
- package/dist/adapters/WaterfallChart.config-CzwGiheB.cjs +0 -1
- package/dist/adapters/core-CzFfrJzu.cjs +0 -1
- package/dist/adapters/mcp-transport-B0b27YUB.cjs +0 -40
- package/dist/adapters/mcp-transport-BXyA4dTk.js +0 -603
- package/dist/client/chunks/chart-activity-grid-4jfS8khG.js.map +0 -1
- package/dist/client/chunks/chart-data-table-DoDHQRe7.js.map +0 -1
- package/dist/client/chunks/charts-loader-CwMcOfwT.js +0 -85
- package/dist/client/chunks/nl-NL-DFLVORiD.js.map +0 -1
- package/dist/client/chunks/vendor-Qa1s8oSX.js.map +0 -1
|
@@ -172,5 +172,16 @@ export declare function resolveMcpResources(resources?: MCPResourceResolver): MC
|
|
|
172
172
|
* project-specific guidance like custom cube semantics).
|
|
173
173
|
*/
|
|
174
174
|
export declare function resolveMcpInstructions(instructions?: MCPInstructionsResolver): string;
|
|
175
|
-
|
|
176
|
-
|
|
175
|
+
/**
|
|
176
|
+
* The `drizzle-cube://schema` resource: this caller's cube metadata as JSON.
|
|
177
|
+
*
|
|
178
|
+
* Its body is tenant-specific, so it must be built per request under the
|
|
179
|
+
* caller's security context. Building it once at handler construction — as this
|
|
180
|
+
* used to be — would freeze every tenant's view to the base set.
|
|
181
|
+
*/
|
|
182
|
+
export declare function buildMcpSchemaResource(semanticLayer: SemanticLayerCompiler, securityContext: SecurityContext): MCPResource;
|
|
183
|
+
/**
|
|
184
|
+
* Static resources plus this caller's schema resource. Call per request, never
|
|
185
|
+
* at setup time — see {@link buildMcpSchemaResource}.
|
|
186
|
+
*/
|
|
187
|
+
export declare function buildMcpResources(semanticLayer: SemanticLayerCompiler, securityContext: SecurityContext, resources?: MCPResourceResolver): MCPResource[];
|
|
@@ -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-BY0-KFyI.cjs"),t=require("../compiler-BaLO10VN.cjs"),n=require("../mcp-transport-BGkSz-ZT.cjs"),r=require("../core-DgTGXxDu.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-DrRT6c14.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;
|
|
@@ -26,9 +26,12 @@ export interface NextCorsOptions {
|
|
|
26
26
|
}
|
|
27
27
|
export interface NextAdapterOptions {
|
|
28
28
|
/**
|
|
29
|
-
* Array of cube definitions to register
|
|
29
|
+
* Array of cube definitions to register.
|
|
30
|
+
* Required unless `semanticLayer` is provided — `createSemanticLayer` returns
|
|
31
|
+
* an injected compiler untouched, so a caller managing their own (which
|
|
32
|
+
* per-tenant cube sets require) supplies no cubes here.
|
|
30
33
|
*/
|
|
31
|
-
cubes
|
|
34
|
+
cubes?: Cube[];
|
|
32
35
|
/**
|
|
33
36
|
* Drizzle database instance (REQUIRED)
|
|
34
37
|
* This is the core of drizzle-cube - Drizzle ORM integration
|
|
@@ -1,11 +1,11 @@
|
|
|
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 { C as o,
|
|
4
|
-
import {
|
|
1
|
+
import { d as e, f as t, i as n, m as r, p as i } from "../utils-DkmShl5f.js";
|
|
2
|
+
import { t as a } from "../compiler-CQJ5GOwF.js";
|
|
3
|
+
import { C as o, _ as s, h as c, l, s as u, x as d } from "../mcp-transport-fJud19xz.js";
|
|
4
|
+
import { c as f, o as p, r as m, s as h, t as g } from "../core-DXkuSUBg.js";
|
|
5
5
|
import { NextResponse as _ } from "next/server";
|
|
6
6
|
//#region src/adapters/nextjs/mcp-handler.ts
|
|
7
7
|
function v(e, t) {
|
|
8
|
-
let n = new TextEncoder(), r =
|
|
8
|
+
let n = new TextEncoder(), r = s(), i = new ReadableStream({ start(e) {
|
|
9
9
|
e.enqueue(n.encode(d({
|
|
10
10
|
jsonrpc: "2.0",
|
|
11
11
|
method: "mcp/ready",
|
|
@@ -41,8 +41,8 @@ function y(e) {
|
|
|
41
41
|
function b(e) {
|
|
42
42
|
return {
|
|
43
43
|
extractSecurityContext: async (t, n) => {
|
|
44
|
-
let r = await e.extractSecurityContext(t, n), i =
|
|
45
|
-
return
|
|
44
|
+
let r = await e.extractSecurityContext(t, n), i = h((e) => t.headers.get(e));
|
|
45
|
+
return f(r, i);
|
|
46
46
|
},
|
|
47
47
|
cors: e.cors ? {
|
|
48
48
|
...e.cors,
|
|
@@ -132,9 +132,9 @@ function T(e) {
|
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
134
|
function E(e) {
|
|
135
|
-
let { httpHandler: t, corsHeaders: n } = S(e);
|
|
136
|
-
return async function(e,
|
|
137
|
-
return t.handleMetaGet(C(e, n(e)));
|
|
135
|
+
let { httpHandler: t, corsHeaders: n, baseContext: r } = S(e);
|
|
136
|
+
return async function(e, i) {
|
|
137
|
+
return t.handleMetaGet(C(e, n(e)), r(e, i));
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
140
|
function D(e) {
|
|
@@ -167,40 +167,40 @@ function A(e) {
|
|
|
167
167
|
};
|
|
168
168
|
}
|
|
169
169
|
function j(e) {
|
|
170
|
-
let {
|
|
171
|
-
return async function(e,
|
|
170
|
+
let { extractSecurityContext: t, cors: r } = b(e), a = y(e);
|
|
171
|
+
return async function(e, o) {
|
|
172
172
|
try {
|
|
173
173
|
if (e.method !== "POST") return _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
174
|
-
let
|
|
175
|
-
return _.json(
|
|
174
|
+
let s = await e.json(), c = await t(e, o), l = await i(a, c, s);
|
|
175
|
+
return _.json(l, { headers: r ? x(e, r) : {} });
|
|
176
176
|
} catch (e) {
|
|
177
177
|
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 });
|
|
178
178
|
}
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
181
|
function M(t) {
|
|
182
|
-
let {
|
|
183
|
-
return async function(t,
|
|
182
|
+
let { extractSecurityContext: r, cors: i } = b(t), a = y(t);
|
|
183
|
+
return async function(t, o) {
|
|
184
184
|
try {
|
|
185
185
|
if (t.method !== "POST") return _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
186
|
-
let
|
|
187
|
-
if (!
|
|
188
|
-
let o = await e(
|
|
189
|
-
return _.json(
|
|
186
|
+
let s = await t.json();
|
|
187
|
+
if (!s.naturalLanguage) return _.json(n("naturalLanguage field is required", 400), { status: 400 });
|
|
188
|
+
let c = await r(t, o), l = await e(a, c, s);
|
|
189
|
+
return _.json(l, { headers: i ? x(t, i) : {} });
|
|
190
190
|
} catch (e) {
|
|
191
191
|
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 });
|
|
192
192
|
}
|
|
193
193
|
};
|
|
194
194
|
}
|
|
195
195
|
function N(e) {
|
|
196
|
-
let {
|
|
197
|
-
return async function(e,
|
|
196
|
+
let { extractSecurityContext: r, cors: i } = b(e), a = y(e);
|
|
197
|
+
return async function(e, o) {
|
|
198
198
|
try {
|
|
199
199
|
if (e.method !== "POST") return _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
200
|
-
let
|
|
201
|
-
if (!
|
|
202
|
-
let o = await t(
|
|
203
|
-
return _.json(
|
|
200
|
+
let s = await e.json();
|
|
201
|
+
if (!s.query) return _.json(n("query field is required", 400), { status: 400 });
|
|
202
|
+
let c = await r(e, o), l = await t(a, c, s);
|
|
203
|
+
return _.json(l, { headers: i ? x(e, i) : {} });
|
|
204
204
|
} catch (e) {
|
|
205
205
|
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 });
|
|
206
206
|
}
|
|
@@ -221,19 +221,19 @@ function P(e) {
|
|
|
221
221
|
};
|
|
222
222
|
}
|
|
223
223
|
function F(e) {
|
|
224
|
-
let { httpHandler: t, corsHeaders: r, baseContext: i } = S(e), { mcp: a = { enabled: !0 } } = e,
|
|
224
|
+
let { httpHandler: t, corsHeaders: r, baseContext: i } = S(e), { mcp: a = { enabled: !0 } } = e, s = (e, t) => {
|
|
225
225
|
Object.entries(r(e)).forEach(([e, n]) => t.set(e, n));
|
|
226
226
|
};
|
|
227
227
|
return async function(e, d) {
|
|
228
228
|
if (a.resourceMetadataUrl && !l(e.headers.get("authorization"))) return _.json({ error: "Bearer token required" }, {
|
|
229
229
|
status: 401,
|
|
230
|
-
headers: { "WWW-Authenticate":
|
|
230
|
+
headers: { "WWW-Authenticate": u(a.resourceMetadataUrl) }
|
|
231
231
|
});
|
|
232
232
|
if (e.method === "DELETE" || e.method === "GET") {
|
|
233
233
|
let t = o(e.headers.get("origin"), c(a));
|
|
234
234
|
if (!t.valid) return _.json({ error: t.reason }, { status: 403 });
|
|
235
235
|
}
|
|
236
|
-
return e.method === "DELETE" ? _.json({ error: "Session termination not supported" }, { status: 405 }) : e.method === "GET" ? v(e,
|
|
236
|
+
return e.method === "DELETE" ? _.json({ error: "Session termination not supported" }, { status: 405 }) : e.method === "GET" ? v(e, s) : e.method === "POST" ? t.handleMcpPost(C(e, r(e)), i(e, d)) : _.json(n("Method not allowed - use POST", 405), { status: 405 });
|
|
237
237
|
};
|
|
238
238
|
}
|
|
239
239
|
function I(e) {
|
|
@@ -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-
|
|
246
|
+
let { handleAgentChat: o } = await import("../handler-CphYSZRh.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) {
|
|
@@ -251,14 +251,14 @@ function I(e) {
|
|
|
251
251
|
e && (u = e.trim());
|
|
252
252
|
}
|
|
253
253
|
if (!u) return _.json({ error: "No API key configured. Set agent.apiKey in server config or send X-Agent-Api-Key header." }, { status: 401 });
|
|
254
|
-
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,
|
|
254
|
+
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, h = m(await e.extractSecurityContext(i, a), (e) => i.headers.get(e) ?? void 0), g = n.buildSystemContext?.(h), v = new TextEncoder(), y = new ReadableStream({ async start(e) {
|
|
255
255
|
try {
|
|
256
256
|
let t = o({
|
|
257
257
|
message: s,
|
|
258
258
|
sessionId: c,
|
|
259
259
|
history: l,
|
|
260
260
|
semanticLayer: r,
|
|
261
|
-
securityContext:
|
|
261
|
+
securityContext: h,
|
|
262
262
|
agentConfig: n,
|
|
263
263
|
apiKey: u,
|
|
264
264
|
systemContext: g,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as e, M as t, k as n } from "./utils-
|
|
1
|
+
import { A as e, M as t, k as n } from "./utils-DkmShl5f.js";
|
|
2
2
|
//#region node_modules/openai/internal/tslib.mjs
|
|
3
3
|
function r(e, t, n, r, i) {
|
|
4
4
|
if (r === "m") throw TypeError("Private method is not writable");
|
|
@@ -17,7 +17,7 @@ var a = function() {
|
|
|
17
17
|
let { crypto: e } = globalThis;
|
|
18
18
|
if (e?.randomUUID) return a = e.randomUUID.bind(e), e.randomUUID();
|
|
19
19
|
let t = /* @__PURE__ */ new Uint8Array(1), n = e ? () => e.getRandomValues(t)[0] : () => Math.random() * 255 & 255;
|
|
20
|
-
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (e) => (e ^ n() & 15 >> e / 4).toString(16));
|
|
20
|
+
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (e) => (+e ^ n() & 15 >> e / 4).toString(16));
|
|
21
21
|
};
|
|
22
22
|
//#endregion
|
|
23
23
|
//#region node_modules/openai/internal/errors.mjs
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require("./utils-
|
|
1
|
+
const e=require("./utils-BY0-KFyI.cjs");function t(e,t,n,r,i){if(r===`m`)throw TypeError(`Private method is not writable`);if(r===`a`&&!i)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!i:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return r===`a`?i.call(e,n):i?i.value=n:t.set(e,n),n}function n(e,t,n,r){if(n===`a`&&!r)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!r:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?r:n===`a`?r.call(e):r?r.value:t.get(e)}var r=function(){let{crypto:e}=globalThis;if(e?.randomUUID)return r=e.randomUUID.bind(e),e.randomUUID();let t=new Uint8Array(1),n=e?()=>e.getRandomValues(t)[0]:()=>Math.random()*255&255;return`10000000-1000-4000-8000-100000000000`.replace(/[018]/g,e=>(+e^n()&15>>e/4).toString(16))};function i(e){return typeof e==`object`&&!!e&&(`name`in e&&e.name===`AbortError`||`message`in e&&String(e.message).includes(`FetchRequestCanceledException`))}var a=e=>{if(e instanceof Error)return e;if(typeof e==`object`&&e){try{if(Object.prototype.toString.call(e)===`[object Error]`){let t=Error(e.message,e.cause?{cause:e.cause}:{});return e.stack&&(t.stack=e.stack),e.cause&&!t.cause&&(t.cause=e.cause),e.name&&(t.name=e.name),t}}catch{}try{return Error(JSON.stringify(e))}catch{}}return Error(e)},o=class extends Error{},s=class e extends o{constructor(t,n,r,i){super(`${e.makeMessage(t,n,r)}`),this.status=t,this.headers=i,this.requestID=i?.get(`x-request-id`),this.error=n;let a=n;this.code=a?.code,this.param=a?.param,this.type=a?.type}static makeMessage(e,t,n){let r=t?.message?typeof t.message==`string`?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||`(no status code or body)`}static generate(t,n,r,i){if(!t||!i)return new l({message:r,cause:a(n)});let o=n?.error;return t===400?new d(t,o,r,i):t===401?new f(t,o,r,i):t===403?new p(t,o,r,i):t===404?new m(t,o,r,i):t===409?new h(t,o,r,i):t===422?new g(t,o,r,i):t===429?new _(t,o,r,i):t>=500?new v(t,o,r,i):new e(t,o,r,i)}},c=class extends s{constructor({message:e}={}){super(void 0,void 0,e||`Request was aborted.`,void 0)}},l=class extends s{constructor({message:e,cause:t}){super(void 0,void 0,e||`Connection error.`,void 0),t&&(this.cause=t)}},u=class extends l{constructor({message:e}={}){super({message:e??`Request timed out.`})}},d=class extends s{},f=class extends s{},p=class extends s{},m=class extends s{},h=class extends s{},g=class extends s{},_=class extends s{},v=class extends s{},y=class extends o{constructor(){super(`Could not parse response content as the length limit was reached`)}},b=class extends o{constructor(){super(`Could not parse response content as the request was rejected by the content filter`)}},x=class extends Error{constructor(e){super(e)}},S=class extends s{constructor(e,t,n){let r=`OAuth2 authentication error`,i;if(t&&typeof t==`object`){let e=t;i=e.error;let n=e.error_description;n&&typeof n==`string`?r=n:i&&(r=i)}super(e,t,r,n),this.error_code=i}},C=class extends o{constructor(e,t,n){super(e),this.provider=t,this.cause=n}},w=/^[a-z][a-z0-9+.-]*:/i,ee=e=>w.test(e),T=e=>(T=Array.isArray,T(e)),te=T;function ne(e){return typeof e==`object`?e??{}:{}}function re(e){if(!e)return!0;for(let t in e)return!1;return!0}function E(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ie(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ae=(e,t)=>{if(typeof t!=`number`||!Number.isInteger(t))throw new o(`${e} must be an integer`);if(t<0)throw new o(`${e} must be a positive integer`);return t},oe=e=>{try{return JSON.parse(e)}catch{return}},se=e=>new Promise(t=>setTimeout(t,e));function ce(){if(typeof fetch<`u`)return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function le(...e){let t=globalThis.ReadableStream;if(t===void 0)throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new t(...e)}function ue(e){let t=Symbol.asyncIterator in e?e[Symbol.asyncIterator]():e[Symbol.iterator]();return le({start(){},async pull(e){let{done:n,value:r}=await t.next();n?e.close():e.enqueue(r)},async cancel(){await t.return?.()}})}function de(e){if(e[Symbol.asyncIterator])return e;let t=e.getReader();return{async next(){try{let e=await t.read();return e?.done&&t.releaseLock(),e}catch(e){throw t.releaseLock(),e}},async return(){let e=t.cancel();return t.releaseLock(),await e,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function fe(e){if(typeof e!=`object`||!e)return;if(e[Symbol.asyncIterator]){await e[Symbol.asyncIterator]().return?.();return}let t=e.getReader(),n=t.cancel();t.releaseLock(),await n}var pe;function me(e){let t;return(pe??=(t=new globalThis.TextEncoder,t.encode.bind(t)))(e)}var he;function ge(e){let t;return(he??=(t=new globalThis.TextDecoder,t.decode.bind(t)))(e)}var _e,D,O,k,ve,ye,be,xe=65536,Se=class{constructor(){_e.add(this),D.set(this,void 0),O.set(this,void 0),k.set(this,void 0),ve.set(this,void 0),ye.set(this,void 0),t(this,D,new Uint8Array,`f`),t(this,O,0,`f`),t(this,k,0,`f`),t(this,ve,0,`f`),t(this,ye,!1,`f`)}decode(e){if(e==null)return[];let r;if(r=e instanceof ArrayBuffer?new Uint8Array(e):typeof e==`string`?me(e):e,r.length===0||n(this,ye,`f`)&&(t(this,ye,!1,`f`),r[0]===10&&(r=r.subarray(1)),r.length===0))return[];n(this,_e,`m`,be).call(this,r);let i=[],a;for(;(a=Ce(n(this,D,`f`),n(this,ve,`f`),n(this,k,`f`)))!=null;){let e=ge(n(this,D,`f`).subarray(n(this,O,`f`),a.preceding));i.push(e),t(this,O,a.index,`f`),a.carriage&&(n(this,O,`f`)<n(this,k,`f`)&&n(this,D,`f`)[n(this,O,`f`)]===10?t(this,O,n(this,O,`f`)+1,`f`):n(this,O,`f`)===n(this,k,`f`)&&t(this,ye,!0,`f`)),t(this,ve,n(this,O,`f`),`f`)}if(t(this,ve,n(this,k,`f`),`f`),n(this,O,`f`)===n(this,k,`f`))t(this,O,0,`f`),t(this,k,0,`f`),t(this,ve,0,`f`),n(this,D,`f`).length>xe&&t(this,D,new Uint8Array,`f`);else if(i.length>0&&n(this,D,`f`).length>xe){let e=n(this,k,`f`)-n(this,O,`f`);if(e<=xe||n(this,D,`f`).length>e*4){let r=e<=xe?Math.min(Math.max(e*2,256),xe):e*2,i=new Uint8Array(r);i.set(n(this,D,`f`).subarray(n(this,O,`f`),n(this,k,`f`))),t(this,D,i,`f`),t(this,O,0,`f`),t(this,k,e,`f`),t(this,ve,e,`f`)}}return i}flush(){return t(this,ye,!1,`f`),n(this,O,`f`)===n(this,k,`f`)?[]:this.decode(`
|
|
2
2
|
`)}};D=new WeakMap,O=new WeakMap,k=new WeakMap,ve=new WeakMap,ye=new WeakMap,_e=new WeakSet,be=function(e){if(n(this,k,`f`)+e.length>n(this,D,`f`).length){let r=n(this,k,`f`)-n(this,O,`f`);if(n(this,O,`f`)>=n(this,D,`f`).length/2&&r+e.length<=n(this,D,`f`).length)n(this,D,`f`).copyWithin(0,n(this,O,`f`),n(this,k,`f`));else{let i=Math.max(n(this,D,`f`).length*2,r+e.length,256),a=new Uint8Array(i);a.set(n(this,D,`f`).subarray(n(this,O,`f`),n(this,k,`f`))),t(this,D,a,`f`)}t(this,ve,n(this,ve,`f`)-n(this,O,`f`),`f`),t(this,k,r,`f`),t(this,O,0,`f`)}n(this,D,`f`).set(e,n(this,k,`f`)),t(this,k,n(this,k,`f`)+e.length,`f`)},Se.NEWLINE_CHARS=new Set([`
|
|
3
3
|
`,`\r`]),Se.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function Ce(e,t,n){for(let r=t;r<n;r++){if(e[r]===10)return{preceding:r,index:r+1,carriage:!1};if(e[r]===13)return{preceding:r,index:r+1,carriage:!0}}return null}function we(e){for(let t=0;t<e.length-1;t++){let n=Te(e,t);if(n>0){let r=t+n,i=Te(e,r);if(i>0)return r+i}}return-1}function Te(e,t){return e[t]===10?1:e[t]===13?e[t+1]===10?2:1:0}var Ee={off:0,error:200,warn:300,info:400,debug:500},De=(e,t,n)=>{if(e){if(E(Ee,e))return e;A(n).warn(`${t} was set to ${JSON.stringify(e)}, expected one of ${JSON.stringify(Object.keys(Ee))}`)}};function Oe(){}function ke(e,t,n){return!t||Ee[e]>Ee[n]?Oe:t[e].bind(t)}var Ae={error:Oe,warn:Oe,info:Oe,debug:Oe},je=new WeakMap;function A(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return Ae;let r=je.get(t);if(r&&r[0]===n)return r[1];let i={error:ke(`error`,t,n),warn:ke(`warn`,t,n),info:ke(`info`,t,n),debug:ke(`debug`,t,n)};return je.set(t,[n,i]),i}var Me=new Set([`apikey`,`accesstoken`,`refreshtoken`,`sessiontoken`,`sessionid`,`idtoken`,`authtoken`,`authorization`,`token`,`password`,`clientsecret`,`xamzsecuritytoken`,`xamzsignature`,`xamzcredential`]);function Ne(e){let t=e.toLowerCase().replace(/[-_]/gu,``);return Me.has(t)||Me.has(t.replace(/^x/u,``))}var Pe=new Set([`authorization`,`proxy-authorization`,`api-key`,`x-api-key`,`x-amz-security-token`,`cookie`,`set-cookie`,`x-session-token`,`x-session-id`,`x-auth-token`,`x-id-token`]);function Fe(e){return Pe.has(e.toLowerCase().replace(/_/gu,`-`))||Ne(e)}function Ie(e){let t=new URL(e);t.username=``,t.password=``,t.hash=``;for(let e of t.searchParams.keys())Ne(e)&&t.searchParams.set(e,`***`);return t.href}var Le=e=>{if(e.options){if(e.options={...e.options},delete e.options.headers,e.options.path){let t=e.options.path,n=new URL(Ie(new URL(t,`https://redacted.invalid`).href));e.options.path=n.origin===`https://redacted.invalid`?`${t.startsWith(`/`)?`/`:``}${n.pathname.slice(1)}${n.search}`:n.href}e.options.query&&(e.options.query=Object.fromEntries(Object.entries(e.options.query).map(([e,t])=>[e,Ne(e)?`***`:t])))}return e.url&&=Ie(e.url),e.headers&&=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,Fe(e)?`***`:t])),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e},Re;function ze(){let e=[],t=0;return{get length(){return e.length-t},enqueue(t){e.push(t)},dequeue(){if(t===e.length)return;let n=e[t];return e[t]=void 0,t+=1,t===e.length?(e=[],t=0):t>=1024&&t*2>=e.length&&(e=e.slice(t),t=0),n}}}var Be=class e{constructor(e,n,r){Re.set(this,void 0),this.iterator=e,this.controller=n,t(this,Re,r,`f`)}static fromSSEResponse(t,n,r,a){let c=!1,l=r?A(r):console;async function*u(){if(c)throw new o("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");c=!0;let e=!1,r=!1;try{for await(let e of He(t,n)){if(e.data===`[DONE]`){r=!0;break}if(e.event===null||!e.event.startsWith(`thread.`)){let n;try{n=JSON.parse(e.data)}catch{throw l.error(`Could not parse message into JSON:`),l.error(`From chunk:`),SyntaxError(`Error reading response: malformed server-sent event JSON.`)}if(e.event===`error`)throw new s(void 0,n?.error??n,void 0,t.headers);if(n&&n.error)throw new s(void 0,n.error,void 0,t.headers);yield a?{event:e.event,data:n}:n}else{let t;try{t=JSON.parse(e.data)}catch{throw l.error(`Could not parse message into JSON:`),l.error(`From chunk:`),SyntaxError(`Error reading response: malformed server-sent event JSON.`)}yield{event:e.event,data:t}}}e=!0}catch(e){if(r||i(e)||n.signal.aborted&&e===n.signal.reason)return;throw e}finally{e||n.abort()}}return new e(u,n,r)}static fromReadableStream(t,n,r){let a=!1;async function*s(){let e=new Se,r=t.getReader(),i=!1,a,o=()=>{a??=r.cancel(),a.catch(()=>void 0)};n.signal.addEventListener(`abort`,o,{once:!0});try{if(n.signal.aborted){o();return}for(;;){let{value:t,done:a}=await r.read();if(a){i=!0;break}if(n.signal.aborted)return;for(let r of e.decode(t)){if(n.signal.aborted)return;yield r}}if(n.signal.aborted)return;for(let t of e.flush()){if(n.signal.aborted)return;yield t}}finally{n.signal.removeEventListener(`abort`,o),i||o(),r.releaseLock()}}async function*c(){if(a)throw new o("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");a=!0;let e=!1;try{for await(let t of s())if(!e&&t){let e;try{e=JSON.parse(t)}catch(e){throw e instanceof SyntaxError?SyntaxError(`Error reading response: malformed newline-delimited JSON.`):e}yield e}e=!0}catch(e){if(n.signal.aborted||i(e))return;throw e}finally{e||n.abort()}}return new e(c,n,r)}[(Re=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let t=ze(),r=ze(),i=this.iterator(),a=e=>({next:()=>{if(e.length===0){let e=i.next();t.enqueue(e),r.enqueue(e)}return e.dequeue()}});return[new e(()=>a(t),this.controller,n(this,Re,`f`)),new e(()=>a(r),this.controller,n(this,Re,`f`))]}toReadableStream(){let e;return le({start:async()=>{e=this[Symbol.asyncIterator]()},async pull(t){try{let{value:n,done:r}=await e.next();if(r)return t.close();let i=me(JSON.stringify(n)+`
|
|
4
4
|
`);t.enqueue(i)}catch(e){t.error(e)}},async cancel(){await e.return?.()}})}};function Ve(e,t){let n=typeof e.getReader==`function`?e.getReader():void 0,r=n?{next:()=>n.read(),return:()=>n.cancel()}:de(e)[Symbol.asyncIterator](),a={value:void 0,done:!0},o=!1,s=!1,c,l,u=()=>new Promise(e=>{l=e}),d=()=>{if(s||o)return c;s=!0;try{c=Promise.resolve(r.return?.())}catch(e){c=Promise.reject(e)}return c.catch(()=>void 0),c},f=()=>{queueMicrotask(()=>{l?.(),d()})};return{iterator:{async next(){if(t.aborted)return a;let e=u().then(()=>a);try{let n=await Promise.race([r.next(),e]);return t.aborted?a:n.done?(o=!0,a):{value:n.value,done:!1}}catch(e){if(t.aborted&&(i(e)||e===t.reason))return a;throw e}finally{l=void 0}},async return(){let e=d();if(e&&!t.aborted){let n=u();try{t.aborted||await Promise.race([e,n])}finally{l=void 0}}return a},[Symbol.asyncIterator](){return this}},start(){t.addEventListener(`abort`,f,{once:!0}),t.aborted&&f()},async cleanup(e){let r;try{t.removeEventListener(`abort`,f)}catch(e){r=e}if(!o){let n=d();if(n&&!e&&!t.aborted)try{await n}catch(e){r??=e}}if(n)try{n.releaseLock()}catch(e){r??=e}if(r!==void 0&&!e&&!t.aborted)throw r}}}async function*He(e,t){if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new o(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new o(`Attempted to iterate over a response with no body`);let n=new Ge,r=new Se,{signal:a}=t,s=Ve(e.body,a),c=!1;try{s.start();for await(let e of We(s.iterator)){if(a.aborted)return;for(let t of r.decode(e)){if(a.aborted)return;let e=n.decode(t);e&&(yield e)}}if(a.aborted)return;for(let e of r.flush()){if(a.aborted)return;let t=n.decode(e);t&&(yield t)}}catch(e){if(c=!0,!a.aborted||!i(e)&&e!==a.reason)throw e}finally{await s.cleanup(c)}}var Ue=3;async function*We(e){let t=new Uint8Array,n=0,r=0,i=0;for await(let a of e){if(a==null)continue;let e;if(e=a instanceof ArrayBuffer?new Uint8Array(a):typeof a==`string`?me(a):a,r+e.length>t.length){let a=r-n;if(n>=t.length/2&&a+e.length<=t.length)t.copyWithin(0,n,r);else{let i=new Uint8Array(Math.max(t.length*2,a+e.length));i.set(t.subarray(n,r)),t=i}i-=n,n=0,r=a}t.set(e,r),r+=e.length;let o;for(;(o=we(t.subarray(i,r)))!==-1;)o+=i,yield t.slice(n,o),n=o,i=n;i=Math.max(n,r-Ue)}r>n&&(yield t.slice(n,r))}var Ge=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith(`\r`)&&(e=e.slice(0,-1)),!e){if(!this.event&&!this.data.length)return null;let e={event:this.event,data:this.data.join(`
|
|
@@ -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={};try{n.arguments&&(r=JSON.parse(n.arguments))}catch{}yield{type:`tool_use_end`,id:n.id,input:r},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-
|
|
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={};try{n.arguments&&(r=JSON.parse(n.arguments))}catch{}yield{type:`tool_use_end`,id:n.id,input:r},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-CI9vGKSf.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`}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;
|