drizzle-cube 0.8.2 → 0.9.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-DfyZh3He.js +2 -0
- package/dist/adapters/ActivityGridChart.config-DgOwl51m.cjs +1 -0
- package/dist/adapters/AreaChart.config-BL_ZpMsg.js +2 -0
- package/dist/adapters/AreaChart.config-rc1phjmI.cjs +1 -0
- package/dist/adapters/BarChart.config-C6k4BxhM.cjs +1 -0
- package/dist/adapters/BarChart.config-CBACR7Z-.js +2 -0
- package/dist/adapters/BoxPlotChart.config-Bvg6yFn2.js +2 -0
- package/dist/adapters/BoxPlotChart.config-CAlLRM0v.cjs +1 -0
- package/dist/adapters/BubbleChart.config-22qXNskY.js +2 -0
- package/dist/adapters/BubbleChart.config-BkB3P6Bi.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-DuZb-y6d.cjs +1 -0
- package/dist/adapters/CandlestickChart.config-G78UbuwS.js +2 -0
- package/dist/adapters/DataTable.config-BXkpzOC2.js +2 -0
- package/dist/adapters/DataTable.config-CwPlSht6.cjs +1 -0
- package/dist/adapters/DotStripChart.config-Bw9Ww5zY.cjs +1 -0
- package/dist/adapters/DotStripChart.config-D5sbLAqA.js +2 -0
- package/dist/adapters/FunnelChart.config-CUs1rqN2.cjs +1 -0
- package/dist/adapters/FunnelChart.config-Cw9qrC2C.js +2 -0
- package/dist/adapters/GaugeChart.config-CjGtJVoO.cjs +1 -0
- package/dist/adapters/GaugeChart.config-F5SA5Oi3.js +2 -0
- package/dist/adapters/HeatMapChart.config-CvgmSiuY.cjs +1 -0
- package/dist/adapters/HeatMapChart.config-DrvQrPHT.js +2 -0
- package/dist/adapters/KpiDelta.config-B-UJWdJ5.cjs +1 -0
- package/dist/adapters/KpiDelta.config-C00mTZYy.js +2 -0
- package/dist/adapters/KpiNumber.config-CB0kTeoV.cjs +1 -0
- package/dist/adapters/KpiNumber.config-D3CogH8j.js +2 -0
- package/dist/adapters/KpiText.config-B0LbKRCf.js +2 -0
- package/dist/adapters/KpiText.config-Dv4TNprC.cjs +1 -0
- package/dist/adapters/LineChart.config-CdONxSLL.js +2 -0
- package/dist/adapters/LineChart.config-DBHsfIYG.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-AYKXdpuw.cjs +1 -0
- package/dist/adapters/MarkdownChart.config-CngxD_Lc.js +2 -0
- package/dist/adapters/MeasureProfileChart.config-B0a5sUk6.cjs +1 -0
- package/dist/adapters/MeasureProfileChart.config-ByW5F1Ey.js +2 -0
- package/dist/adapters/PieChart.config-Csx1ctk4.js +2 -0
- package/dist/adapters/PieChart.config-Dfw66Xab.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-BaeYznc1.cjs +1 -0
- package/dist/adapters/ProportionBarChart.config-DCOizSVs.js +2 -0
- package/dist/adapters/RadarChart.config-AxQh97rB.js +2 -0
- package/dist/adapters/RadarChart.config-BjP-zEGW.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-D5EwyJ0G.cjs +1 -0
- package/dist/adapters/RadialBarChart.config-DMaEJYM_.js +2 -0
- package/dist/adapters/RecordsTable.config-BdN0kZ8b.js +2 -0
- package/dist/adapters/RecordsTable.config-CWRvGDbi.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-BpciOTeX.cjs +1 -0
- package/dist/adapters/RetentionCombinedChart.config-CY8TDzuy.js +2 -0
- package/dist/adapters/RetentionHeatmap.config-BZPRoVpF.cjs +1 -0
- package/dist/adapters/RetentionHeatmap.config-YMZt-u-T.js +2 -0
- package/dist/adapters/SankeyChart.config-BdSA-Jlp.cjs +1 -0
- package/dist/adapters/SankeyChart.config-Dlgi5_DA.js +2 -0
- package/dist/adapters/ScatterChart.config-VJ0xG0Ak.cjs +1 -0
- package/dist/adapters/ScatterChart.config-oOd1Jplx.js +2 -0
- package/dist/adapters/SunburstChart.config-Cllhyjy4.js +2 -0
- package/dist/adapters/SunburstChart.config-DU11BAei.cjs +1 -0
- package/dist/adapters/TreeMapChart.config--EB8bQTo.js +2 -0
- package/dist/adapters/TreeMapChart.config-BPmMLBH1.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-E99Fl6uM.cjs +1 -0
- package/dist/adapters/WaterfallChart.config-xz3DaoMQ.js +2 -0
- package/dist/adapters/{anthropic-DG4r1LSm.cjs → anthropic-CqLkud62.cjs} +1 -1
- package/dist/adapters/{anthropic-CZh4hB-m.js → anthropic-MQlafOZv.js} +3 -0
- package/dist/adapters/compiler-BdVMQ3Xj.cjs +166 -0
- package/dist/adapters/{compiler-BFLAXV7W.js → compiler-SBDjxyQ3.js} +1231 -1231
- package/dist/adapters/core/index.cjs +1 -1
- package/dist/adapters/core/index.js +1 -1
- package/dist/adapters/{core-CrJu6vJY.cjs → core-CSt8MGbw.cjs} +1 -1
- package/dist/adapters/{core-l3KMTu9u.js → core-CXrxqh7l.js} +2 -2
- package/dist/adapters/express/index.cjs +1 -1
- package/dist/adapters/express/index.js +5 -5
- package/dist/adapters/fastify/index.cjs +1 -1
- package/dist/adapters/fastify/index.js +23 -23
- package/dist/{server/google-PsZzwedr.cjs → adapters/google-6pofxIfm.cjs} +1 -1
- package/dist/{server/google-DRY7jnOh.js → adapters/google-BBBP1Dhs.js} +3 -0
- package/dist/adapters/{handler-DESp4wPg.js → handler-Cppe-aqH.js} +569 -374
- package/dist/adapters/handler-_u5krbOj.cjs +26 -0
- package/dist/adapters/hono/index.cjs +1 -1
- package/dist/adapters/hono/index.js +4 -4
- package/dist/adapters/mcp-tools.cjs +1 -1
- package/dist/adapters/mcp-tools.js +2 -2
- package/dist/adapters/mcp-transport-CpF7usmR.js +754 -0
- package/dist/adapters/mcp-transport-DXIfb0p-.cjs +42 -0
- package/dist/adapters/nextjs/index.cjs +1 -1
- package/dist/adapters/nextjs/index.js +5 -5
- package/dist/adapters/{openai-DK_KWiI7.js → openai-62sEF0Ev.js} +10 -4
- package/dist/adapters/{openai-BJyU4kvE.js → openai-BIoIunc7.js} +2 -2
- package/dist/adapters/openai-CaxNY6TC.cjs +1 -0
- package/dist/adapters/{openai-GO3M7Hwi.cjs → openai-EBTQKJnV.cjs} +2 -2
- package/dist/adapters/{utils-BhlkVCzZ.js → utils-C_RKaP0n.js} +2 -1
- package/dist/adapters/utils-DXWQUJbD.cjs +128 -0
- package/dist/adapters/utils.cjs +1 -1
- package/dist/adapters/utils.js +2 -2
- package/dist/cjs/client/components/AgenticNotebook/chatMessageParts.d.ts +0 -2
- package/dist/cjs/client/components/PortletGroupCard.d.ts +3 -1
- package/dist/cjs/client/components/RowManagedLayout.d.ts +5 -2
- package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
- package/dist/cjs/client/components/markdownOverrides.d.ts +202 -0
- package/dist/cjs/client/components/rowManagedLayout/sections.d.ts +46 -0
- package/dist/cjs/client/hooks/agentChatStream.d.ts +3 -2
- package/dist/cjs/client/hooks/useAgentChat.d.ts +1 -0
- package/dist/cjs/server/agent/agent-prompts.d.ts +14 -0
- package/dist/cjs/server/agent/chart-validation.d.ts +14 -0
- package/dist/cjs/server/agent/data-shape.d.ts +41 -0
- package/dist/cjs/server/agent/providers/anthropic.d.ts +1 -0
- package/dist/cjs/server/agent/providers/google.d.ts +1 -0
- package/dist/cjs/server/agent/providers/openai.d.ts +1 -0
- package/dist/cjs/server/agent/providers/types.d.ts +13 -0
- package/dist/cjs/server/agent/tools.d.ts +18 -4
- package/dist/cjs/server/agent/types.d.ts +5 -1
- package/dist/cjs/server/ai/chart-schema.d.ts +37 -0
- package/dist/client/charts.js +12 -12
- package/dist/client/chunks/{DashboardEditModal-BliiIHcI.js → DashboardEditModal-DjMGNTUa.js} +878 -785
- package/dist/client/chunks/DashboardEditModal-DjMGNTUa.js.map +1 -0
- package/dist/client/chunks/{DotStripChart-ChwsVeRU.js → DotStripChart-EEtJyV1v.js} +3 -3
- package/dist/client/chunks/{DotStripChart-ChwsVeRU.js.map → DotStripChart-EEtJyV1v.js.map} +1 -1
- package/dist/client/chunks/{ProportionBarChart-D-Qt9nkF.js → ProportionBarChart-3r7ZPX-V.js} +3 -3
- package/dist/client/chunks/{ProportionBarChart-D-Qt9nkF.js.map → ProportionBarChart-3r7ZPX-V.js.map} +1 -1
- package/dist/client/chunks/{RecordsTable-aG-QYXOH.js → RecordsTable-DvMXV6F6.js} +4 -4
- package/dist/client/chunks/{RecordsTable-aG-QYXOH.js.map → RecordsTable-DvMXV6F6.js.map} +1 -1
- package/dist/client/chunks/{RetentionCombinedChart-BRZ9w7ah.js → RetentionCombinedChart-DbxB86fj.js} +3 -3
- package/dist/client/chunks/{RetentionCombinedChart-BRZ9w7ah.js.map → RetentionCombinedChart-DbxB86fj.js.map} +1 -1
- package/dist/client/chunks/{RetentionHeatmap-LkTt89pK.js → RetentionHeatmap-CE3rxhAU.js} +2 -2
- package/dist/client/chunks/{RetentionHeatmap-LkTt89pK.js.map → RetentionHeatmap-CE3rxhAU.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-C0gJ3kDD.js → analysis-builder-lQk_qJBQ.js} +9 -9
- package/dist/client/chunks/{analysis-builder-C0gJ3kDD.js.map → analysis-builder-lQk_qJBQ.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-dqcpl_WL.js → analysis-builder-shared-C_pLSXJR.js} +9 -9
- package/dist/client/chunks/{analysis-builder-shared-dqcpl_WL.js.map → analysis-builder-shared-C_pLSXJR.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-CJzxC18G.js → chart-activity-grid-UZIp9_2E.js} +3 -2
- package/dist/client/chunks/chart-activity-grid-UZIp9_2E.js.map +1 -0
- package/dist/client/chunks/{chart-area-C66dgy84.js → chart-area-CEBcvCcn.js} +2 -2
- package/dist/client/chunks/{chart-area-C66dgy84.js.map → chart-area-CEBcvCcn.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-D9kiSOCT.js → chart-bar-DGh7cpU-.js} +3 -3
- package/dist/client/chunks/{chart-bar-D9kiSOCT.js.map → chart-bar-DGh7cpU-.js.map} +1 -1
- package/dist/client/chunks/{chart-box-plot-FsLIMisc.js → chart-box-plot-CeqoKPFa.js} +2 -2
- package/dist/client/chunks/{chart-box-plot-FsLIMisc.js.map → chart-box-plot-CeqoKPFa.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-BzyvrqKs.js → chart-bubble-8uH_JKNt.js} +2 -2
- package/dist/client/chunks/{chart-bubble-BzyvrqKs.js.map → chart-bubble-8uH_JKNt.js.map} +1 -1
- package/dist/client/chunks/{chart-candlestick-6lD35bLw.js → chart-candlestick-DogklMg1.js} +2 -2
- package/dist/client/chunks/{chart-candlestick-6lD35bLw.js.map → chart-candlestick-DogklMg1.js.map} +1 -1
- package/dist/client/chunks/{chart-data-table-Cou9qOab.js → chart-data-table-CCvvgeG_.js} +2 -2
- package/dist/client/chunks/{chart-data-table-Cou9qOab.js.map → chart-data-table-CCvvgeG_.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-B0775aaT.js → chart-funnel-D2vGQhaz.js} +2 -2
- package/dist/client/chunks/{chart-funnel-B0775aaT.js.map → chart-funnel-D2vGQhaz.js.map} +1 -1
- package/dist/client/chunks/{chart-gauge-pf-2E8w9.js → chart-gauge-DbU0rxqv.js} +3 -3
- package/dist/client/chunks/{chart-gauge-pf-2E8w9.js.map → chart-gauge-DbU0rxqv.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-EzVGe6fl.js → chart-heat-map-x6aQq91x.js} +3 -3
- package/dist/client/chunks/{chart-heat-map-EzVGe6fl.js.map → chart-heat-map-x6aQq91x.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-lfskDdx4.js → chart-kpi-delta-B2-m16QC.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-lfskDdx4.js.map → chart-kpi-delta-B2-m16QC.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-BnsofbTf.js → chart-kpi-number-DggvlYT_.js} +5 -5
- package/dist/client/chunks/{chart-kpi-number-BnsofbTf.js.map → chart-kpi-number-DggvlYT_.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-U5EdmdkV.js → chart-kpi-text-BFy-m1NP.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-U5EdmdkV.js.map → chart-kpi-text-BFy-m1NP.js.map} +1 -1
- package/dist/client/chunks/{chart-line-IwXqPY80.js → chart-line-C4r44HWi.js} +3 -3
- package/dist/client/chunks/{chart-line-IwXqPY80.js.map → chart-line-C4r44HWi.js.map} +1 -1
- package/dist/client/chunks/{chart-markdown-yxN_xBP9.js → chart-markdown-b0qPZ617.js} +3 -3
- package/dist/client/chunks/chart-markdown-b0qPZ617.js.map +1 -0
- package/dist/client/chunks/{chart-measure-profile-Bs4vhBJQ.js → chart-measure-profile-Dc-d82kF.js} +3 -3
- package/dist/client/chunks/{chart-measure-profile-Bs4vhBJQ.js.map → chart-measure-profile-Dc-d82kF.js.map} +1 -1
- package/dist/client/chunks/{chart-pie-LDJfDXfX.js → chart-pie-BHrPxga2.js} +3 -3
- package/dist/client/chunks/{chart-pie-LDJfDXfX.js.map → chart-pie-BHrPxga2.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-BZY6TP9m.js → chart-radar-I9sOFbG5.js} +3 -3
- package/dist/client/chunks/{chart-radar-BZY6TP9m.js.map → chart-radar-I9sOFbG5.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-aga05X7h.js → chart-radial-bar-DeDMMf9P.js} +3 -3
- package/dist/client/chunks/{chart-radial-bar-aga05X7h.js.map → chart-radial-bar-DeDMMf9P.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-MRCoWFd4.js → chart-sankey-1qB7yWHq.js} +2 -2
- package/dist/client/chunks/{chart-sankey-MRCoWFd4.js.map → chart-sankey-1qB7yWHq.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-DP-nn9hH.js → chart-scatter-BHttSxcc.js} +3 -3
- package/dist/client/chunks/{chart-scatter-DP-nn9hH.js.map → chart-scatter-BHttSxcc.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-DE4EX7zi.js → chart-sunburst-Cmzol8kR.js} +3 -3
- package/dist/client/chunks/{chart-sunburst-DE4EX7zi.js.map → chart-sunburst-Cmzol8kR.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-C3O6uQcP.js → chart-tree-map-CdSwr_zI.js} +3 -3
- package/dist/client/chunks/{chart-tree-map-C3O6uQcP.js.map → chart-tree-map-CdSwr_zI.js.map} +1 -1
- package/dist/client/chunks/{chart-waterfall-DU2Fg_7P.js → chart-waterfall-BN3B5luW.js} +3 -3
- package/dist/client/chunks/{chart-waterfall-DU2Fg_7P.js.map → chart-waterfall-BN3B5luW.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DnirPG1F.js → charts-core-DIneMirc.js} +2 -2
- package/dist/client/chunks/{charts-core-DnirPG1F.js.map → charts-core-DIneMirc.js.map} +1 -1
- package/dist/client/chunks/charts-loader-OHpTBq8c.js +87 -0
- package/dist/client/chunks/{charts-loader-tCSbqT7H.js.map → charts-loader-OHpTBq8c.js.map} +1 -1
- package/dist/client/chunks/{nl-NL-B9VnaVAm.js → nl-NL-dk-kC0sL.js} +2 -1
- package/dist/client/chunks/nl-NL-dk-kC0sL.js.map +1 -0
- package/dist/client/chunks/{schema-visualization-o1zzuMQy.js → schema-visualization-PYa578pV.js} +3 -3
- package/dist/client/chunks/{schema-visualization-o1zzuMQy.js.map → schema-visualization-PYa578pV.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-DTYbmRBn.js → useDirtyStateTracking-BQupC3wJ.js} +4 -4
- package/dist/client/chunks/{useDirtyStateTracking-DTYbmRBn.js.map → useDirtyStateTracking-BQupC3wJ.js.map} +1 -1
- package/dist/client/chunks/{useExplainAI-MuC9jBn-.js → useExplainAI-DORnTynt.js} +4 -4
- package/dist/client/chunks/{useExplainAI-MuC9jBn-.js.map → useExplainAI-DORnTynt.js.map} +1 -1
- package/dist/client/chunks/{vendor-XQT9APIq.js → vendor-DDo8nSGP.js} +2 -2
- package/dist/client/chunks/{vendor-XQT9APIq.js.map → vendor-DDo8nSGP.js.map} +1 -1
- package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +0 -2
- package/dist/client/components/PortletGroupCard.d.ts +3 -1
- package/dist/client/components/RowManagedLayout.d.ts +5 -2
- package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
- package/dist/client/components/markdownOverrides.d.ts +202 -0
- package/dist/client/components/rowManagedLayout/sections.d.ts +46 -0
- package/dist/client/components.js +1 -1
- package/dist/client/hooks/agentChatStream.d.ts +3 -2
- package/dist/client/hooks/useAgentChat.d.ts +1 -0
- package/dist/client/hooks.js +3 -3
- package/dist/client/icons.js +1 -1
- package/dist/client/index.js +474 -471
- 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 +4 -4
- package/dist/client-bundle-stats.html +1 -1
- package/dist/mcp-app/mcp-app.html +4 -4
- package/dist/server/agent/agent-prompts.d.ts +14 -0
- package/dist/server/agent/chart-validation.d.ts +14 -0
- package/dist/server/agent/data-shape.d.ts +41 -0
- package/dist/server/agent/providers/anthropic.d.ts +1 -0
- package/dist/server/agent/providers/google.d.ts +1 -0
- package/dist/server/agent/providers/openai.d.ts +1 -0
- package/dist/server/agent/providers/types.d.ts +13 -0
- package/dist/server/agent/tools.d.ts +18 -4
- package/dist/server/agent/types.d.ts +5 -1
- package/dist/server/ai/chart-schema.d.ts +37 -0
- package/dist/server/{anthropic-DG4r1LSm.cjs → anthropic-CqLkud62.cjs} +1 -1
- package/dist/server/{anthropic-CZh4hB-m.js → anthropic-MQlafOZv.js} +3 -0
- package/dist/{adapters/google-PsZzwedr.cjs → server/google-6pofxIfm.cjs} +1 -1
- package/dist/{adapters/google-DRY7jnOh.js → server/google-BBBP1Dhs.js} +3 -0
- package/dist/server/index.cjs +44 -43
- package/dist/server/index.js +2069 -1857
- package/dist/server/{openai-6uUf7h-5.js → openai-nBhuSFd3.js} +9 -3
- package/dist/server/openai-rF50ZEiR.cjs +1 -0
- package/package.json +4 -4
- package/dist/adapters/ActivityGridChart.config-Bc7mPqcf.cjs +0 -1
- package/dist/adapters/ActivityGridChart.config-Dd2YDeaM.js +0 -2
- package/dist/adapters/AreaChart.config-BqNusnpg.js +0 -2
- package/dist/adapters/AreaChart.config-dI84V34B.cjs +0 -1
- package/dist/adapters/BarChart.config-B9MQjgLJ.cjs +0 -1
- package/dist/adapters/BarChart.config-Cq_qcxBA.js +0 -2
- package/dist/adapters/BoxPlotChart.config-XmtRN2xq.cjs +0 -1
- package/dist/adapters/BoxPlotChart.config-Zc-JGV-W.js +0 -2
- package/dist/adapters/BubbleChart.config-CU_18uxb.js +0 -2
- package/dist/adapters/BubbleChart.config-CbhOzA6-.cjs +0 -1
- package/dist/adapters/CandlestickChart.config-Bwo3uaa-.js +0 -2
- package/dist/adapters/CandlestickChart.config-CmRBlWFv.cjs +0 -1
- package/dist/adapters/DataTable.config-7JNSj6qQ.js +0 -2
- package/dist/adapters/DataTable.config-DNxm1sYk.cjs +0 -1
- package/dist/adapters/DotStripChart.config-B7Dl-T1h.js +0 -2
- package/dist/adapters/DotStripChart.config-Co4g1fpZ.cjs +0 -1
- package/dist/adapters/FunnelChart.config-D1TpuGtL.cjs +0 -1
- package/dist/adapters/FunnelChart.config-vuZScOHQ.js +0 -2
- package/dist/adapters/GaugeChart.config-BMgUHKhC.cjs +0 -1
- package/dist/adapters/GaugeChart.config-zdpFydo6.js +0 -2
- package/dist/adapters/HeatMapChart.config-4XMab1zq.js +0 -2
- package/dist/adapters/HeatMapChart.config-C-Ns6QBq.cjs +0 -1
- package/dist/adapters/KpiDelta.config-BGdqsHcc.js +0 -2
- package/dist/adapters/KpiDelta.config-DuNxrGIi.cjs +0 -1
- package/dist/adapters/KpiNumber.config-CkPWpcSz.js +0 -2
- package/dist/adapters/KpiNumber.config-DMGmuA3i.cjs +0 -1
- package/dist/adapters/KpiText.config-Bvtuv8vE.js +0 -2
- package/dist/adapters/KpiText.config-DOMLO16U.cjs +0 -1
- package/dist/adapters/LineChart.config-CJmTSmZ1.js +0 -2
- package/dist/adapters/LineChart.config-CrkGu0aa.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-BgY5Xc97.cjs +0 -1
- package/dist/adapters/MarkdownChart.config-Cm6G4Yuh.js +0 -2
- package/dist/adapters/MeasureProfileChart.config-BYwDo_ox.cjs +0 -1
- package/dist/adapters/MeasureProfileChart.config-Dt7npubZ.js +0 -2
- package/dist/adapters/PieChart.config-BRbPctBN.cjs +0 -1
- package/dist/adapters/PieChart.config-HZofeody.js +0 -2
- package/dist/adapters/ProportionBarChart.config-B_rTtGZr.cjs +0 -1
- package/dist/adapters/ProportionBarChart.config-ChCSoM0L.js +0 -2
- package/dist/adapters/RadarChart.config-B9OdMEib.js +0 -2
- package/dist/adapters/RadarChart.config-BOgPD2Kz.cjs +0 -1
- package/dist/adapters/RadialBarChart.config-CeP7jEbq.js +0 -2
- package/dist/adapters/RadialBarChart.config-sivA1Jmo.cjs +0 -1
- package/dist/adapters/RecordsTable.config-BInSgo-G.js +0 -2
- package/dist/adapters/RecordsTable.config-CVmxLdjz.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-8ry7gh6X.cjs +0 -1
- package/dist/adapters/RetentionCombinedChart.config-Bxtxnlcf.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-DCtOD8dO.js +0 -2
- package/dist/adapters/RetentionHeatmap.config-i-LgmmIT.cjs +0 -1
- package/dist/adapters/SankeyChart.config-DfpeHfNT.cjs +0 -1
- package/dist/adapters/SankeyChart.config-hfM0ACm1.js +0 -2
- package/dist/adapters/ScatterChart.config-BD2vfOZ6.js +0 -2
- package/dist/adapters/ScatterChart.config-CdpvRueF.cjs +0 -1
- package/dist/adapters/SunburstChart.config-Boyt88L_.cjs +0 -1
- package/dist/adapters/SunburstChart.config-BvrofzMv.js +0 -2
- package/dist/adapters/TreeMapChart.config-DBrqwtqT.js +0 -2
- package/dist/adapters/TreeMapChart.config-KcRLlZAG.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-CuCGaIl5.cjs +0 -1
- package/dist/adapters/WaterfallChart.config-DZ8H0V2L.js +0 -2
- package/dist/adapters/compiler-DG6dLFQU.cjs +0 -166
- package/dist/adapters/handler-CRGZ8gd2.cjs +0 -25
- package/dist/adapters/mcp-transport-BqdBHmXL.js +0 -730
- package/dist/adapters/mcp-transport-D8xZJLPD.cjs +0 -42
- package/dist/adapters/openai-DH9MtcLA.cjs +0 -1
- package/dist/adapters/utils-C1JpSDOX.cjs +0 -128
- package/dist/client/chunks/DashboardEditModal-BliiIHcI.js.map +0 -1
- package/dist/client/chunks/chart-activity-grid-CJzxC18G.js.map +0 -1
- package/dist/client/chunks/chart-markdown-yxN_xBP9.js.map +0 -1
- package/dist/client/chunks/charts-loader-tCSbqT7H.js +0 -87
- package/dist/client/chunks/nl-NL-B9VnaVAm.js.map +0 -1
- package/dist/server/openai-BBe1XbZd.cjs +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notebook-agent prompt fragments.
|
|
3
|
+
*
|
|
4
|
+
* The agent used to inline `MCP_GUIDE_PROMPT` from `../ai/mcp-prompts.js`, which
|
|
5
|
+
* documents the MCP transport's `discover` / `validate` / `load` tools. Those
|
|
6
|
+
* are real tools — over MCP. The notebook agent has a different set entirely, so
|
|
7
|
+
* the guide was naming tools it cannot call.
|
|
8
|
+
*
|
|
9
|
+
* `MCP_GUIDE_PROMPT` stays as it is: it is a public export and is served through
|
|
10
|
+
* `ALL_PROMPTS`, so real MCP clients depend on it. This is the agent's own copy.
|
|
11
|
+
* `QUERY_LANGUAGE_PROMPT` and `DATE_FILTERING_PROMPT` remain shared — they name
|
|
12
|
+
* no tools and are correct for both.
|
|
13
|
+
*/
|
|
14
|
+
export declare const AGENT_WORKFLOW_GUIDE: string;
|
|
@@ -13,6 +13,20 @@ interface ValidationResult {
|
|
|
13
13
|
* Validate chartConfig against the chart type's drop zone requirements.
|
|
14
14
|
*/
|
|
15
15
|
export declare function validateChartConfig(chartType: string, chartConfig: Record<string, unknown> | undefined, query: Record<string, unknown>): ValidationResult;
|
|
16
|
+
/**
|
|
17
|
+
* Pick a chart type that can actually render the query.
|
|
18
|
+
*
|
|
19
|
+
* A `bar` over a measures-only query has no category axis: `resolveChartAxisFields`
|
|
20
|
+
* reports `axisInvalid` and the portlet renders a config-error card. Rejecting it
|
|
21
|
+
* instead costs the model a full query+portlet rebuild, so swap to a type that
|
|
22
|
+
* shows the same numbers and tell it what happened.
|
|
23
|
+
*
|
|
24
|
+
* The note is model-facing, not user-facing, so it is deliberately not translated.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveChartTypeFallback(chartType: string, chartConfig: Record<string, unknown> | undefined, query: Record<string, unknown>): {
|
|
27
|
+
chartType: string;
|
|
28
|
+
note?: string;
|
|
29
|
+
};
|
|
16
30
|
export declare function inferChartConfig(chartType: string, chartConfig: Record<string, unknown> | undefined, query: Record<string, unknown>): Record<string, unknown>;
|
|
17
31
|
/**
|
|
18
32
|
* Build per-chart-type requirements text for the agent tool description.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data-shape summary for the agent's `execute_query` results.
|
|
3
|
+
*
|
|
4
|
+
* The agent used to receive every row and no summary, so it chose a chart type
|
|
5
|
+
* blind and then spent its context — and its output-token budget — on raw data.
|
|
6
|
+
* A per-field summary is what the chart decision actually needs: how many
|
|
7
|
+
* distinct categories there are, and whether measures share a scale.
|
|
8
|
+
*/
|
|
9
|
+
/** How many rows of the result set are handed back to the model. */
|
|
10
|
+
export declare const AGENT_RESULT_ROW_LIMIT = 25;
|
|
11
|
+
/** Per-field summary of a query result. */
|
|
12
|
+
export interface FieldShape {
|
|
13
|
+
field: string;
|
|
14
|
+
kind: 'measure' | 'dimension' | 'timeDimension';
|
|
15
|
+
type?: string;
|
|
16
|
+
/** Distinct non-null values seen. Capped at the rows inspected. */
|
|
17
|
+
distinctCount: number;
|
|
18
|
+
nullCount: number;
|
|
19
|
+
/** Numeric range, present only when every non-null value is a number. */
|
|
20
|
+
min?: number;
|
|
21
|
+
max?: number;
|
|
22
|
+
}
|
|
23
|
+
interface ResultAnnotation {
|
|
24
|
+
measures?: Record<string, {
|
|
25
|
+
type?: string;
|
|
26
|
+
}>;
|
|
27
|
+
dimensions?: Record<string, {
|
|
28
|
+
type?: string;
|
|
29
|
+
}>;
|
|
30
|
+
timeDimensions?: Record<string, {
|
|
31
|
+
type?: string;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build a per-field summary of a query result.
|
|
36
|
+
*
|
|
37
|
+
* Computed from the rows handed to the model, so `distinctCount` is a floor
|
|
38
|
+
* rather than an exact count when the result was truncated.
|
|
39
|
+
*/
|
|
40
|
+
export declare function summariseDataShape(rows: Record<string, unknown>[], annotation: ResultAnnotation | undefined): FieldShape[];
|
|
41
|
+
export {};
|
|
@@ -31,6 +31,12 @@ export interface ContentBlock {
|
|
|
31
31
|
input?: Record<string, unknown>;
|
|
32
32
|
/** Provider-specific metadata (e.g. Gemini thoughtSignature) */
|
|
33
33
|
metadata?: Record<string, unknown>;
|
|
34
|
+
/**
|
|
35
|
+
* Set when the tool-call arguments could not be parsed as JSON. The handler
|
|
36
|
+
* returns an error tool_result instead of executing the tool with an empty
|
|
37
|
+
* input — running on `{}` silently produced empty notebook blocks.
|
|
38
|
+
*/
|
|
39
|
+
inputParseError?: boolean;
|
|
34
40
|
}
|
|
35
41
|
export interface ToolResult {
|
|
36
42
|
toolUseId: string;
|
|
@@ -58,6 +64,7 @@ export type NormalizedEvent = {
|
|
|
58
64
|
type: 'tool_use_end';
|
|
59
65
|
id?: string;
|
|
60
66
|
input?: Record<string, unknown>;
|
|
67
|
+
parseError?: boolean;
|
|
61
68
|
} | {
|
|
62
69
|
type: 'message_meta';
|
|
63
70
|
inputTokens?: number;
|
|
@@ -90,6 +97,12 @@ export interface LLMProvider {
|
|
|
90
97
|
formatToolResults(results: ToolResult[]): unknown;
|
|
91
98
|
/** Return true if the stop reason means the model wants to continue (tool use). */
|
|
92
99
|
shouldContinue(stopReason: string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Return true if the stop reason means the response was cut off by the output
|
|
102
|
+
* token limit rather than finished. Without this the loop breaks silently and
|
|
103
|
+
* the notebook just stops mid-analysis.
|
|
104
|
+
*/
|
|
105
|
+
isTruncated(stopReason: string): boolean;
|
|
93
106
|
/** Format a provider-specific error into a user-friendly message. */
|
|
94
107
|
formatError(error: unknown): string;
|
|
95
108
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BuiltInChartType } from '../../client/types.js';
|
|
1
2
|
import { SemanticLayerCompiler } from '../compiler.js';
|
|
2
3
|
import { SecurityContext } from '../types/index.js';
|
|
3
4
|
import { AgentSSEEvent } from './types.js';
|
|
@@ -13,15 +14,28 @@ export interface ToolExecutionResult {
|
|
|
13
14
|
/** Optional SSE event to emit as a side effect (add_portlet, add_markdown) */
|
|
14
15
|
sideEffect?: AgentSSEEvent;
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Chart types the notebook agent may create — an explicit list, not a derived
|
|
19
|
+
* one, so widening it stays a product decision. It now covers every
|
|
20
|
+
* `BuiltInChartType`: the config each one needs is expressible through the
|
|
21
|
+
* `add_portlet` chartConfig/displayConfig schema below, and a narrower list was
|
|
22
|
+
* making the agent reach for `bar` and `table` for everything.
|
|
23
|
+
*
|
|
24
|
+
* Two carry caveats the system prompt spells out rather than the schema:
|
|
25
|
+
* `gauge` needs an explicit `maxValue` (it otherwise scales to the data and
|
|
26
|
+
* reads as 100%), and `candlestick` needs its measures in OHLC order, which
|
|
27
|
+
* JSON Schema cannot express.
|
|
28
|
+
*
|
|
29
|
+
* Typed against `BuiltInChartType` (type-only import — no runtime dependency on
|
|
30
|
+
* the client graph) so a renamed or removed chart type fails `npm run typecheck`
|
|
31
|
+
* here instead of silently offering the model a type that no longer renders.
|
|
32
|
+
*/
|
|
33
|
+
export declare const AGENT_ALLOWED_CHART_TYPES: BuiltInChartType[];
|
|
16
34
|
/**
|
|
17
35
|
* Returns the array of tool definitions for the Anthropic Messages API.
|
|
18
36
|
* Plain JSON schema — no Zod dependency.
|
|
19
37
|
*/
|
|
20
38
|
export declare function getToolDefinitions(): ToolDefinition[];
|
|
21
|
-
/**
|
|
22
|
-
* Create a tool executor map that closes over the semantic layer and security context.
|
|
23
|
-
* Returns a Map<toolName, handler> where each handler takes parsed input and returns a result.
|
|
24
|
-
*/
|
|
25
39
|
export declare function createToolExecutor(options: {
|
|
26
40
|
semanticLayer: SemanticLayerCompiler;
|
|
27
41
|
securityContext: SecurityContext;
|
|
@@ -100,7 +100,7 @@ export interface AgentConfig {
|
|
|
100
100
|
model?: string;
|
|
101
101
|
/** Maximum agentic turns per request (default: 25) */
|
|
102
102
|
maxTurns?: number;
|
|
103
|
-
/** Maximum tokens per response (default:
|
|
103
|
+
/** Maximum tokens per response (default: 8192) */
|
|
104
104
|
maxTokens?: number;
|
|
105
105
|
/** Allow X-Agent-Api-Key header to override server apiKey */
|
|
106
106
|
allowClientApiKey?: boolean;
|
|
@@ -163,12 +163,16 @@ export type AgentSSEEvent = {
|
|
|
163
163
|
data: {
|
|
164
164
|
id: string;
|
|
165
165
|
name: string;
|
|
166
|
+
input?: unknown;
|
|
166
167
|
result?: unknown;
|
|
167
168
|
isError?: boolean;
|
|
168
169
|
};
|
|
169
170
|
} | {
|
|
170
171
|
type: 'add_portlet';
|
|
171
172
|
data: PortletBlockData;
|
|
173
|
+
} | {
|
|
174
|
+
type: 'update_portlet';
|
|
175
|
+
data: PortletBlockData;
|
|
172
176
|
} | {
|
|
173
177
|
type: 'add_markdown';
|
|
174
178
|
data: MarkdownBlockData;
|
|
@@ -11,6 +11,43 @@
|
|
|
11
11
|
* never guessed from the data, so a model that cannot see this shape produces a
|
|
12
12
|
* listing of unformatted strings.
|
|
13
13
|
*/
|
|
14
|
+
/**
|
|
15
|
+
* `chartConfig` fields for the charts whose mandatory drop zones are not the
|
|
16
|
+
* usual axes. Without these the model cannot state them at all: `heatmap` needs
|
|
17
|
+
* a `valueField` to colour its cells, and `activityGrid` lays itself out from a
|
|
18
|
+
* date field plus a value field. Both were only ever filled by inference.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FIELD_ZONE_CHART_CONFIG_SCHEMA: {
|
|
21
|
+
readonly valueField: {
|
|
22
|
+
readonly type: "array";
|
|
23
|
+
readonly items: {
|
|
24
|
+
readonly type: "string";
|
|
25
|
+
};
|
|
26
|
+
readonly description: "heatmap and activityGrid: single measure driving cell colour intensity. Required for both — the chart renders empty without it.";
|
|
27
|
+
};
|
|
28
|
+
readonly dateField: {
|
|
29
|
+
readonly type: "array";
|
|
30
|
+
readonly items: {
|
|
31
|
+
readonly type: "string";
|
|
32
|
+
};
|
|
33
|
+
readonly description: "activityGrid only: single time dimension laying out the grid. Query it with day granularity over several months, or the grid has nothing to show.";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/** `displayConfig` fields for charts that need an explicit scale or template. */
|
|
37
|
+
export declare const SCALE_DISPLAY_CONFIG_SCHEMA: {
|
|
38
|
+
readonly minValue: {
|
|
39
|
+
readonly type: "number";
|
|
40
|
+
readonly description: "gauge only: scale minimum (defaults to 0).";
|
|
41
|
+
};
|
|
42
|
+
readonly maxValue: {
|
|
43
|
+
readonly type: "number";
|
|
44
|
+
readonly description: "gauge only: scale maximum. ALWAYS set this — without it the gauge scales to the data it was given, so a single value always reads as 100%.";
|
|
45
|
+
};
|
|
46
|
+
readonly template: {
|
|
47
|
+
readonly type: "string";
|
|
48
|
+
readonly description: "kpiText only: sentence template around the value, e.g. \"${fieldLabel}: ${value}\". Defaults to that if omitted.";
|
|
49
|
+
};
|
|
50
|
+
};
|
|
14
51
|
/** `chartConfig` fields specific to the records table. */
|
|
15
52
|
export declare const RECORDS_TABLE_CHART_CONFIG_SCHEMA: {
|
|
16
53
|
readonly columns: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=class{client;constructor(e){this.apiKey=e}apiKey;initialized=!1;async ensureClient(){if(this.initialized)return;let e;try{let t=await import(`@anthropic-ai/sdk`);e=t.default||t.Anthropic||t}catch{throw Error(`@anthropic-ai/sdk is required for the Anthropic provider. Install it with: npm install @anthropic-ai/sdk`)}this.client=new e({apiKey:this.apiKey}),this.initialized=!0}async createStream(e){await this.ensureClient();let{messages:t,system:n}=this.formatMessages(e.messages,e.system);return this.client.messages.create({model:e.model,max_tokens:e.maxTokens,system:n,tools:this.formatTools(e.tools),messages:t,stream:!0})}async*parseStreamEvents(e){for await(let t of e){let e=t;switch(e.type){case`content_block_start`:{let t=e.content_block;t.type===`tool_use`&&(yield{type:`tool_use_start`,id:t.id,name:t.name});break}case`content_block_delta`:{let t=e.delta;t.type===`text_delta`&&t.text?yield{type:`text_delta`,text:t.text}:t.type===`input_json_delta`&&t.partial_json&&(yield{type:`tool_input_delta`,json:t.partial_json});break}case`content_block_stop`:yield{type:`tool_use_end`};break;case`message_start`:{let t=e.message;t?.usage?.input_tokens!=null&&(yield{type:`message_meta`,inputTokens:t.usage.input_tokens,stopReason:``});break}case`message_delta`:{let t=e.usage,n=e.delta?.stop_reason||``;yield{type:`message_meta`,outputTokens:t?.output_tokens,stopReason:n};break}}}}formatTools(e){return e.map(e=>({name:e.name,description:e.description,input_schema:e.parameters}))}formatMessages(e,t){return{messages:e.map(e=>e.role===`tool_result`?{role:`user`,content:e.content}:{role:e.role,content:e.content}),system:t}}formatToolResults(e){return{role:`user`,content:e.map(e=>({type:`tool_result`,tool_use_id:e.toolUseId,content:e.content,...e.isError?{is_error:!0}:{}}))}}shouldContinue(e){return e===`tool_use`}formatError(e){if(!e||!(e instanceof Error))return`Something went wrong. Please try again.`;let t=e.message||``,n={overloaded_error:`The AI service is temporarily overloaded. Please try again in a moment.`,rate_limit_error:`Too many requests. Please wait a moment and try again.`,api_error:`The AI service encountered an error. Please try again.`,authentication_error:`Authentication failed. Please check your API key configuration.`,invalid_request_error:`There was a problem with the request. Please try again.`},r=e;if(r.status||r.type){let e=r.error?.type||r.type||``;if(n[e])return n[e]}if(t.startsWith(`{`)||t.startsWith(`Error: {`)){try{let e=JSON.parse(t.replace(/^Error:\s*/,``)),r=e.error?.type||e.type||``;if(n[r])return n[r]}catch{}return`The AI service encountered an error. Please try again.`}return t}};exports.AnthropicProvider=e;
|
|
1
|
+
var e=class{client;constructor(e){this.apiKey=e}apiKey;initialized=!1;async ensureClient(){if(this.initialized)return;let e;try{let t=await import(`@anthropic-ai/sdk`);e=t.default||t.Anthropic||t}catch{throw Error(`@anthropic-ai/sdk is required for the Anthropic provider. Install it with: npm install @anthropic-ai/sdk`)}this.client=new e({apiKey:this.apiKey}),this.initialized=!0}async createStream(e){await this.ensureClient();let{messages:t,system:n}=this.formatMessages(e.messages,e.system);return this.client.messages.create({model:e.model,max_tokens:e.maxTokens,system:n,tools:this.formatTools(e.tools),messages:t,stream:!0})}async*parseStreamEvents(e){for await(let t of e){let e=t;switch(e.type){case`content_block_start`:{let t=e.content_block;t.type===`tool_use`&&(yield{type:`tool_use_start`,id:t.id,name:t.name});break}case`content_block_delta`:{let t=e.delta;t.type===`text_delta`&&t.text?yield{type:`text_delta`,text:t.text}:t.type===`input_json_delta`&&t.partial_json&&(yield{type:`tool_input_delta`,json:t.partial_json});break}case`content_block_stop`:yield{type:`tool_use_end`};break;case`message_start`:{let t=e.message;t?.usage?.input_tokens!=null&&(yield{type:`message_meta`,inputTokens:t.usage.input_tokens,stopReason:``});break}case`message_delta`:{let t=e.usage,n=e.delta?.stop_reason||``;yield{type:`message_meta`,outputTokens:t?.output_tokens,stopReason:n};break}}}}formatTools(e){return e.map(e=>({name:e.name,description:e.description,input_schema:e.parameters}))}formatMessages(e,t){return{messages:e.map(e=>e.role===`tool_result`?{role:`user`,content:e.content}:{role:e.role,content:e.content}),system:t}}formatToolResults(e){return{role:`user`,content:e.map(e=>({type:`tool_result`,tool_use_id:e.toolUseId,content:e.content,...e.isError?{is_error:!0}:{}}))}}shouldContinue(e){return e===`tool_use`}isTruncated(e){return e===`max_tokens`}formatError(e){if(!e||!(e instanceof Error))return`Something went wrong. Please try again.`;let t=e.message||``,n={overloaded_error:`The AI service is temporarily overloaded. Please try again in a moment.`,rate_limit_error:`Too many requests. Please wait a moment and try again.`,api_error:`The AI service encountered an error. Please try again.`,authentication_error:`Authentication failed. Please check your API key configuration.`,invalid_request_error:`There was a problem with the request. Please try again.`},r=e;if(r.status||r.type){let e=r.error?.type||r.type||``;if(n[e])return n[e]}if(t.startsWith(`{`)||t.startsWith(`Error: {`)){try{let e=JSON.parse(t.replace(/^Error:\s*/,``)),r=e.error?.type||e.type||``;if(n[r])return n[r]}catch{}return`The AI service encountered an error. Please try again.`}return t}};exports.AnthropicProvider=e;
|
|
@@ -113,6 +113,9 @@ var e = class {
|
|
|
113
113
|
shouldContinue(e) {
|
|
114
114
|
return e === "tool_use";
|
|
115
115
|
}
|
|
116
|
+
isTruncated(e) {
|
|
117
|
+
return e === "max_tokens";
|
|
118
|
+
}
|
|
116
119
|
formatError(e) {
|
|
117
120
|
if (!e || !(e instanceof Error)) return "Something went wrong. Please try again.";
|
|
118
121
|
let t = e.message || "", n = {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
function e(n,r=0){if(!n||typeof n!=`object`)return`value`;let i=n,a=i.enum;if(Array.isArray(a)&&a.length>0)return a.map(e=>typeof e==`string`?`"${e}"`:String(e)).join(`|`);let o=typeof i.type==`string`?i.type.toLowerCase():`value`;if(o===`array`)return r>=t?`array`:`array of ${e(i.items,r+1)}`;if(o===`object`){let n=i.properties;if(!n||r>=t)return`object`;let a=new Set(Array.isArray(i.required)?i.required:[]);return`{ ${Object.entries(n).map(([t,n])=>{let i=a.has(t)?` (required)`:``;return`${t}: ${e(n,r+1)}${i}`}).join(`, `)} }`}return o}var t=3;function n(t){let r={},i=[];for(let[a,o]of Object.entries(t))if(a===`type`&&typeof o==`string`)r[a]=o.toUpperCase();else if(a===`properties`&&typeof o==`object`&&o){let e={};for(let[t,r]of Object.entries(o))e[t]=typeof r==`object`&&r?n(r):r;r[a]=e}else a===`items`&&typeof o==`object`&&o?r[a]=n(o):(a===`anyOf`||a===`oneOf`||a===`allOf`)&&Array.isArray(o)?r[a]=o.map(e=>e&&typeof e==`object`?n(e):e):a===`additionalProperties`?o&&typeof o==`object`&&i.push(`Each value is: ${e(o)}.`):a===`enum`&&Array.isArray(o)&&o.some(e=>typeof e!=`string`)?i.push(`Allowed values: ${o.join(`, `)}.`):r[a]=o;return i.length>0&&(r.description=[typeof r.description==`string`?r.description:``,...i].filter(Boolean).join(` `)),r}function r(e){return e===`STOP`?`stop`:e===`MAX_TOKENS`?`max_tokens`:e}function*i(e){if(e.text&&!e.thought&&(yield{type:`text_delta`,text:e.text}),e.functionCall){let t=`gemini-tc-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,n=e.thoughtSignature?{thoughtSignature:e.thoughtSignature}:void 0;yield{type:`tool_use_start`,id:t,name:e.functionCall.name,...n?{metadata:n}:{}},yield{type:`tool_input_delta`,json:JSON.stringify(e.functionCall.args||{})},yield{type:`tool_use_end`}}}function a(e){let t=e._toolResults;if(t&&t.length>0)return{role:`user`,parts:t.map(e=>({functionResponse:{name:e.toolName||e.toolUseId,response:{content:e.content,isError:e.isError||!1}}}))};let n=typeof e.content==`string`?e.content:JSON.stringify(e.content);return n?{role:`user`,parts:[{text:n}]}:null}function o(e){let t=[];for(let n of e)if(n.type===`text`&&n.text)t.push({text:n.text});else if(n.type===`tool_use`){let e={functionCall:{name:n.name,args:n.input||{}}};n.metadata?.thoughtSignature&&(e.thoughtSignature=n.metadata.thoughtSignature),t.push(e)}return t}function s(e){if(e.role===`tool_result`)return a(e);if(e.role===`user`)return{role:`user`,parts:[{text:typeof e.content==`string`?e.content:JSON.stringify(e.content)}]};if(e.role===`assistant`){if(typeof e.content==`string`)return{role:`model`,parts:[{text:e.content}]};let t=o(e.content);return t.length>0?{role:`model`,parts:t}:null}return null}var c=class{apiKey;sdk;initialized=!1;constructor(e){this.apiKey=e}async ensureSDK(){if(!this.initialized){try{this.sdk=await Promise.resolve().then(()=>require("./dist-CohrBmKe.cjs"))}catch{throw Error(`@google/generative-ai is required for the Google provider. Install it with: npm install @google/generative-ai`)}this.initialized=!0}}async createStream(e){await this.ensureSDK();let{GoogleGenerativeAI:t}=this.sdk,n=new t(this.apiKey).getGenerativeModel({model:e.model,systemInstruction:e.system,generationConfig:{maxOutputTokens:e.maxTokens}}),{messages:r}=this.formatMessages(e.messages,e.system),i=this.formatTools(e.tools);return(await n.generateContentStream({contents:r,tools:i.length>0?[{functionDeclarations:i}]:void 0})).stream}async*parseStreamEvents(e){let t=`stop`,n=!1;for await(let a of e){let e=a;e.usageMetadata&&(yield{type:`message_meta`,inputTokens:e.usageMetadata.promptTokenCount,outputTokens:e.usageMetadata.candidatesTokenCount,stopReason:``});let o=e.candidates?.[0];if(!o)continue;o.finishReason&&(t=r(o.finishReason));let s=o.content?.parts;if(s)for(let e of s)for(let t of i(e))t.type===`tool_use_start`&&(n=!0),yield t}yield{type:`message_meta`,stopReason:n?`tool_use`:t}}formatTools(e){return e.map(e=>({name:e.name,description:e.description,parameters:n(e.parameters)}))}formatMessages(e,t){let n=[];for(let t of e){let e=s(t);e&&n.push(e)}return{messages:n}}formatToolResults(e){return{role:`tool_result`,content:e.map(e=>`${e.toolName||e.toolUseId}: ${e.content}`).join(`
|
|
2
|
-
`),_toolResults:e}}shouldContinue(e){return e===`tool_use`}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===403||n.status===401?`Authentication failed. Please check your API key configuration.`:n.status===503||n.status===500?`The AI service is temporarily unavailable. Please try again in a moment.`:t.includes(`SAFETY`)?`The request was blocked by safety filters. Please rephrase your request.`:t.includes(`RECITATION`)?`The response was blocked due to recitation concerns. Please try a different query.`:t.startsWith(`{`)||t.startsWith(`[`)?`The AI service encountered an error. Please try again.`:t}};exports.GoogleProvider=c;
|
|
2
|
+
`),_toolResults:e}}shouldContinue(e){return e===`tool_use`}isTruncated(e){return e===`max_tokens`}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===403||n.status===401?`Authentication failed. Please check your API key configuration.`:n.status===503||n.status===500?`The AI service is temporarily unavailable. Please try again in a moment.`:t.includes(`SAFETY`)?`The request was blocked by safety filters. Please rephrase your request.`:t.includes(`RECITATION`)?`The response was blocked due to recitation concerns. Please try a different query.`:t.startsWith(`{`)||t.startsWith(`[`)?`The AI service encountered an error. Please try again.`:t}};exports.GoogleProvider=c;
|
|
@@ -174,6 +174,9 @@ var c = class {
|
|
|
174
174
|
shouldContinue(e) {
|
|
175
175
|
return e === "tool_use";
|
|
176
176
|
}
|
|
177
|
+
isTruncated(e) {
|
|
178
|
+
return e === "max_tokens";
|
|
179
|
+
}
|
|
177
180
|
formatError(e) {
|
|
178
181
|
if (!e || !(e instanceof Error)) return "Something went wrong. Please try again.";
|
|
179
182
|
let t = e.message || "", n = e;
|