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.
Files changed (295) hide show
  1. package/dist/adapters/ActivityGridChart.config-DfyZh3He.js +2 -0
  2. package/dist/adapters/ActivityGridChart.config-DgOwl51m.cjs +1 -0
  3. package/dist/adapters/AreaChart.config-BL_ZpMsg.js +2 -0
  4. package/dist/adapters/AreaChart.config-rc1phjmI.cjs +1 -0
  5. package/dist/adapters/BarChart.config-C6k4BxhM.cjs +1 -0
  6. package/dist/adapters/BarChart.config-CBACR7Z-.js +2 -0
  7. package/dist/adapters/BoxPlotChart.config-Bvg6yFn2.js +2 -0
  8. package/dist/adapters/BoxPlotChart.config-CAlLRM0v.cjs +1 -0
  9. package/dist/adapters/BubbleChart.config-22qXNskY.js +2 -0
  10. package/dist/adapters/BubbleChart.config-BkB3P6Bi.cjs +1 -0
  11. package/dist/adapters/CandlestickChart.config-DuZb-y6d.cjs +1 -0
  12. package/dist/adapters/CandlestickChart.config-G78UbuwS.js +2 -0
  13. package/dist/adapters/DataTable.config-BXkpzOC2.js +2 -0
  14. package/dist/adapters/DataTable.config-CwPlSht6.cjs +1 -0
  15. package/dist/adapters/DotStripChart.config-Bw9Ww5zY.cjs +1 -0
  16. package/dist/adapters/DotStripChart.config-D5sbLAqA.js +2 -0
  17. package/dist/adapters/FunnelChart.config-CUs1rqN2.cjs +1 -0
  18. package/dist/adapters/FunnelChart.config-Cw9qrC2C.js +2 -0
  19. package/dist/adapters/GaugeChart.config-CjGtJVoO.cjs +1 -0
  20. package/dist/adapters/GaugeChart.config-F5SA5Oi3.js +2 -0
  21. package/dist/adapters/HeatMapChart.config-CvgmSiuY.cjs +1 -0
  22. package/dist/adapters/HeatMapChart.config-DrvQrPHT.js +2 -0
  23. package/dist/adapters/KpiDelta.config-B-UJWdJ5.cjs +1 -0
  24. package/dist/adapters/KpiDelta.config-C00mTZYy.js +2 -0
  25. package/dist/adapters/KpiNumber.config-CB0kTeoV.cjs +1 -0
  26. package/dist/adapters/KpiNumber.config-D3CogH8j.js +2 -0
  27. package/dist/adapters/KpiText.config-B0LbKRCf.js +2 -0
  28. package/dist/adapters/KpiText.config-Dv4TNprC.cjs +1 -0
  29. package/dist/adapters/LineChart.config-CdONxSLL.js +2 -0
  30. package/dist/adapters/LineChart.config-DBHsfIYG.cjs +1 -0
  31. package/dist/adapters/MarkdownChart.config-AYKXdpuw.cjs +1 -0
  32. package/dist/adapters/MarkdownChart.config-CngxD_Lc.js +2 -0
  33. package/dist/adapters/MeasureProfileChart.config-B0a5sUk6.cjs +1 -0
  34. package/dist/adapters/MeasureProfileChart.config-ByW5F1Ey.js +2 -0
  35. package/dist/adapters/PieChart.config-Csx1ctk4.js +2 -0
  36. package/dist/adapters/PieChart.config-Dfw66Xab.cjs +1 -0
  37. package/dist/adapters/ProportionBarChart.config-BaeYznc1.cjs +1 -0
  38. package/dist/adapters/ProportionBarChart.config-DCOizSVs.js +2 -0
  39. package/dist/adapters/RadarChart.config-AxQh97rB.js +2 -0
  40. package/dist/adapters/RadarChart.config-BjP-zEGW.cjs +1 -0
  41. package/dist/adapters/RadialBarChart.config-D5EwyJ0G.cjs +1 -0
  42. package/dist/adapters/RadialBarChart.config-DMaEJYM_.js +2 -0
  43. package/dist/adapters/RecordsTable.config-BdN0kZ8b.js +2 -0
  44. package/dist/adapters/RecordsTable.config-CWRvGDbi.cjs +1 -0
  45. package/dist/adapters/RetentionCombinedChart.config-BpciOTeX.cjs +1 -0
  46. package/dist/adapters/RetentionCombinedChart.config-CY8TDzuy.js +2 -0
  47. package/dist/adapters/RetentionHeatmap.config-BZPRoVpF.cjs +1 -0
  48. package/dist/adapters/RetentionHeatmap.config-YMZt-u-T.js +2 -0
  49. package/dist/adapters/SankeyChart.config-BdSA-Jlp.cjs +1 -0
  50. package/dist/adapters/SankeyChart.config-Dlgi5_DA.js +2 -0
  51. package/dist/adapters/ScatterChart.config-VJ0xG0Ak.cjs +1 -0
  52. package/dist/adapters/ScatterChart.config-oOd1Jplx.js +2 -0
  53. package/dist/adapters/SunburstChart.config-Cllhyjy4.js +2 -0
  54. package/dist/adapters/SunburstChart.config-DU11BAei.cjs +1 -0
  55. package/dist/adapters/TreeMapChart.config--EB8bQTo.js +2 -0
  56. package/dist/adapters/TreeMapChart.config-BPmMLBH1.cjs +1 -0
  57. package/dist/adapters/WaterfallChart.config-E99Fl6uM.cjs +1 -0
  58. package/dist/adapters/WaterfallChart.config-xz3DaoMQ.js +2 -0
  59. package/dist/adapters/{anthropic-DG4r1LSm.cjs → anthropic-CqLkud62.cjs} +1 -1
  60. package/dist/adapters/{anthropic-CZh4hB-m.js → anthropic-MQlafOZv.js} +3 -0
  61. package/dist/adapters/compiler-BdVMQ3Xj.cjs +166 -0
  62. package/dist/adapters/{compiler-BFLAXV7W.js → compiler-SBDjxyQ3.js} +1231 -1231
  63. package/dist/adapters/core/index.cjs +1 -1
  64. package/dist/adapters/core/index.js +1 -1
  65. package/dist/adapters/{core-CrJu6vJY.cjs → core-CSt8MGbw.cjs} +1 -1
  66. package/dist/adapters/{core-l3KMTu9u.js → core-CXrxqh7l.js} +2 -2
  67. package/dist/adapters/express/index.cjs +1 -1
  68. package/dist/adapters/express/index.js +5 -5
  69. package/dist/adapters/fastify/index.cjs +1 -1
  70. package/dist/adapters/fastify/index.js +23 -23
  71. package/dist/{server/google-PsZzwedr.cjs → adapters/google-6pofxIfm.cjs} +1 -1
  72. package/dist/{server/google-DRY7jnOh.js → adapters/google-BBBP1Dhs.js} +3 -0
  73. package/dist/adapters/{handler-DESp4wPg.js → handler-Cppe-aqH.js} +569 -374
  74. package/dist/adapters/handler-_u5krbOj.cjs +26 -0
  75. package/dist/adapters/hono/index.cjs +1 -1
  76. package/dist/adapters/hono/index.js +4 -4
  77. package/dist/adapters/mcp-tools.cjs +1 -1
  78. package/dist/adapters/mcp-tools.js +2 -2
  79. package/dist/adapters/mcp-transport-CpF7usmR.js +754 -0
  80. package/dist/adapters/mcp-transport-DXIfb0p-.cjs +42 -0
  81. package/dist/adapters/nextjs/index.cjs +1 -1
  82. package/dist/adapters/nextjs/index.js +5 -5
  83. package/dist/adapters/{openai-DK_KWiI7.js → openai-62sEF0Ev.js} +10 -4
  84. package/dist/adapters/{openai-BJyU4kvE.js → openai-BIoIunc7.js} +2 -2
  85. package/dist/adapters/openai-CaxNY6TC.cjs +1 -0
  86. package/dist/adapters/{openai-GO3M7Hwi.cjs → openai-EBTQKJnV.cjs} +2 -2
  87. package/dist/adapters/{utils-BhlkVCzZ.js → utils-C_RKaP0n.js} +2 -1
  88. package/dist/adapters/utils-DXWQUJbD.cjs +128 -0
  89. package/dist/adapters/utils.cjs +1 -1
  90. package/dist/adapters/utils.js +2 -2
  91. package/dist/cjs/client/components/AgenticNotebook/chatMessageParts.d.ts +0 -2
  92. package/dist/cjs/client/components/PortletGroupCard.d.ts +3 -1
  93. package/dist/cjs/client/components/RowManagedLayout.d.ts +5 -2
  94. package/dist/cjs/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
  95. package/dist/cjs/client/components/markdownOverrides.d.ts +202 -0
  96. package/dist/cjs/client/components/rowManagedLayout/sections.d.ts +46 -0
  97. package/dist/cjs/client/hooks/agentChatStream.d.ts +3 -2
  98. package/dist/cjs/client/hooks/useAgentChat.d.ts +1 -0
  99. package/dist/cjs/server/agent/agent-prompts.d.ts +14 -0
  100. package/dist/cjs/server/agent/chart-validation.d.ts +14 -0
  101. package/dist/cjs/server/agent/data-shape.d.ts +41 -0
  102. package/dist/cjs/server/agent/providers/anthropic.d.ts +1 -0
  103. package/dist/cjs/server/agent/providers/google.d.ts +1 -0
  104. package/dist/cjs/server/agent/providers/openai.d.ts +1 -0
  105. package/dist/cjs/server/agent/providers/types.d.ts +13 -0
  106. package/dist/cjs/server/agent/tools.d.ts +18 -4
  107. package/dist/cjs/server/agent/types.d.ts +5 -1
  108. package/dist/cjs/server/ai/chart-schema.d.ts +37 -0
  109. package/dist/client/charts.js +12 -12
  110. package/dist/client/chunks/{DashboardEditModal-BliiIHcI.js → DashboardEditModal-DjMGNTUa.js} +878 -785
  111. package/dist/client/chunks/DashboardEditModal-DjMGNTUa.js.map +1 -0
  112. package/dist/client/chunks/{DotStripChart-ChwsVeRU.js → DotStripChart-EEtJyV1v.js} +3 -3
  113. package/dist/client/chunks/{DotStripChart-ChwsVeRU.js.map → DotStripChart-EEtJyV1v.js.map} +1 -1
  114. package/dist/client/chunks/{ProportionBarChart-D-Qt9nkF.js → ProportionBarChart-3r7ZPX-V.js} +3 -3
  115. package/dist/client/chunks/{ProportionBarChart-D-Qt9nkF.js.map → ProportionBarChart-3r7ZPX-V.js.map} +1 -1
  116. package/dist/client/chunks/{RecordsTable-aG-QYXOH.js → RecordsTable-DvMXV6F6.js} +4 -4
  117. package/dist/client/chunks/{RecordsTable-aG-QYXOH.js.map → RecordsTable-DvMXV6F6.js.map} +1 -1
  118. package/dist/client/chunks/{RetentionCombinedChart-BRZ9w7ah.js → RetentionCombinedChart-DbxB86fj.js} +3 -3
  119. package/dist/client/chunks/{RetentionCombinedChart-BRZ9w7ah.js.map → RetentionCombinedChart-DbxB86fj.js.map} +1 -1
  120. package/dist/client/chunks/{RetentionHeatmap-LkTt89pK.js → RetentionHeatmap-CE3rxhAU.js} +2 -2
  121. package/dist/client/chunks/{RetentionHeatmap-LkTt89pK.js.map → RetentionHeatmap-CE3rxhAU.js.map} +1 -1
  122. package/dist/client/chunks/{analysis-builder-C0gJ3kDD.js → analysis-builder-lQk_qJBQ.js} +9 -9
  123. package/dist/client/chunks/{analysis-builder-C0gJ3kDD.js.map → analysis-builder-lQk_qJBQ.js.map} +1 -1
  124. package/dist/client/chunks/{analysis-builder-shared-dqcpl_WL.js → analysis-builder-shared-C_pLSXJR.js} +9 -9
  125. package/dist/client/chunks/{analysis-builder-shared-dqcpl_WL.js.map → analysis-builder-shared-C_pLSXJR.js.map} +1 -1
  126. package/dist/client/chunks/{chart-activity-grid-CJzxC18G.js → chart-activity-grid-UZIp9_2E.js} +3 -2
  127. package/dist/client/chunks/chart-activity-grid-UZIp9_2E.js.map +1 -0
  128. package/dist/client/chunks/{chart-area-C66dgy84.js → chart-area-CEBcvCcn.js} +2 -2
  129. package/dist/client/chunks/{chart-area-C66dgy84.js.map → chart-area-CEBcvCcn.js.map} +1 -1
  130. package/dist/client/chunks/{chart-bar-D9kiSOCT.js → chart-bar-DGh7cpU-.js} +3 -3
  131. package/dist/client/chunks/{chart-bar-D9kiSOCT.js.map → chart-bar-DGh7cpU-.js.map} +1 -1
  132. package/dist/client/chunks/{chart-box-plot-FsLIMisc.js → chart-box-plot-CeqoKPFa.js} +2 -2
  133. package/dist/client/chunks/{chart-box-plot-FsLIMisc.js.map → chart-box-plot-CeqoKPFa.js.map} +1 -1
  134. package/dist/client/chunks/{chart-bubble-BzyvrqKs.js → chart-bubble-8uH_JKNt.js} +2 -2
  135. package/dist/client/chunks/{chart-bubble-BzyvrqKs.js.map → chart-bubble-8uH_JKNt.js.map} +1 -1
  136. package/dist/client/chunks/{chart-candlestick-6lD35bLw.js → chart-candlestick-DogklMg1.js} +2 -2
  137. package/dist/client/chunks/{chart-candlestick-6lD35bLw.js.map → chart-candlestick-DogklMg1.js.map} +1 -1
  138. package/dist/client/chunks/{chart-data-table-Cou9qOab.js → chart-data-table-CCvvgeG_.js} +2 -2
  139. package/dist/client/chunks/{chart-data-table-Cou9qOab.js.map → chart-data-table-CCvvgeG_.js.map} +1 -1
  140. package/dist/client/chunks/{chart-funnel-B0775aaT.js → chart-funnel-D2vGQhaz.js} +2 -2
  141. package/dist/client/chunks/{chart-funnel-B0775aaT.js.map → chart-funnel-D2vGQhaz.js.map} +1 -1
  142. package/dist/client/chunks/{chart-gauge-pf-2E8w9.js → chart-gauge-DbU0rxqv.js} +3 -3
  143. package/dist/client/chunks/{chart-gauge-pf-2E8w9.js.map → chart-gauge-DbU0rxqv.js.map} +1 -1
  144. package/dist/client/chunks/{chart-heat-map-EzVGe6fl.js → chart-heat-map-x6aQq91x.js} +3 -3
  145. package/dist/client/chunks/{chart-heat-map-EzVGe6fl.js.map → chart-heat-map-x6aQq91x.js.map} +1 -1
  146. package/dist/client/chunks/{chart-kpi-delta-lfskDdx4.js → chart-kpi-delta-B2-m16QC.js} +3 -3
  147. package/dist/client/chunks/{chart-kpi-delta-lfskDdx4.js.map → chart-kpi-delta-B2-m16QC.js.map} +1 -1
  148. package/dist/client/chunks/{chart-kpi-number-BnsofbTf.js → chart-kpi-number-DggvlYT_.js} +5 -5
  149. package/dist/client/chunks/{chart-kpi-number-BnsofbTf.js.map → chart-kpi-number-DggvlYT_.js.map} +1 -1
  150. package/dist/client/chunks/{chart-kpi-text-U5EdmdkV.js → chart-kpi-text-BFy-m1NP.js} +3 -3
  151. package/dist/client/chunks/{chart-kpi-text-U5EdmdkV.js.map → chart-kpi-text-BFy-m1NP.js.map} +1 -1
  152. package/dist/client/chunks/{chart-line-IwXqPY80.js → chart-line-C4r44HWi.js} +3 -3
  153. package/dist/client/chunks/{chart-line-IwXqPY80.js.map → chart-line-C4r44HWi.js.map} +1 -1
  154. package/dist/client/chunks/{chart-markdown-yxN_xBP9.js → chart-markdown-b0qPZ617.js} +3 -3
  155. package/dist/client/chunks/chart-markdown-b0qPZ617.js.map +1 -0
  156. package/dist/client/chunks/{chart-measure-profile-Bs4vhBJQ.js → chart-measure-profile-Dc-d82kF.js} +3 -3
  157. package/dist/client/chunks/{chart-measure-profile-Bs4vhBJQ.js.map → chart-measure-profile-Dc-d82kF.js.map} +1 -1
  158. package/dist/client/chunks/{chart-pie-LDJfDXfX.js → chart-pie-BHrPxga2.js} +3 -3
  159. package/dist/client/chunks/{chart-pie-LDJfDXfX.js.map → chart-pie-BHrPxga2.js.map} +1 -1
  160. package/dist/client/chunks/{chart-radar-BZY6TP9m.js → chart-radar-I9sOFbG5.js} +3 -3
  161. package/dist/client/chunks/{chart-radar-BZY6TP9m.js.map → chart-radar-I9sOFbG5.js.map} +1 -1
  162. package/dist/client/chunks/{chart-radial-bar-aga05X7h.js → chart-radial-bar-DeDMMf9P.js} +3 -3
  163. package/dist/client/chunks/{chart-radial-bar-aga05X7h.js.map → chart-radial-bar-DeDMMf9P.js.map} +1 -1
  164. package/dist/client/chunks/{chart-sankey-MRCoWFd4.js → chart-sankey-1qB7yWHq.js} +2 -2
  165. package/dist/client/chunks/{chart-sankey-MRCoWFd4.js.map → chart-sankey-1qB7yWHq.js.map} +1 -1
  166. package/dist/client/chunks/{chart-scatter-DP-nn9hH.js → chart-scatter-BHttSxcc.js} +3 -3
  167. package/dist/client/chunks/{chart-scatter-DP-nn9hH.js.map → chart-scatter-BHttSxcc.js.map} +1 -1
  168. package/dist/client/chunks/{chart-sunburst-DE4EX7zi.js → chart-sunburst-Cmzol8kR.js} +3 -3
  169. package/dist/client/chunks/{chart-sunburst-DE4EX7zi.js.map → chart-sunburst-Cmzol8kR.js.map} +1 -1
  170. package/dist/client/chunks/{chart-tree-map-C3O6uQcP.js → chart-tree-map-CdSwr_zI.js} +3 -3
  171. package/dist/client/chunks/{chart-tree-map-C3O6uQcP.js.map → chart-tree-map-CdSwr_zI.js.map} +1 -1
  172. package/dist/client/chunks/{chart-waterfall-DU2Fg_7P.js → chart-waterfall-BN3B5luW.js} +3 -3
  173. package/dist/client/chunks/{chart-waterfall-DU2Fg_7P.js.map → chart-waterfall-BN3B5luW.js.map} +1 -1
  174. package/dist/client/chunks/{charts-core-DnirPG1F.js → charts-core-DIneMirc.js} +2 -2
  175. package/dist/client/chunks/{charts-core-DnirPG1F.js.map → charts-core-DIneMirc.js.map} +1 -1
  176. package/dist/client/chunks/charts-loader-OHpTBq8c.js +87 -0
  177. package/dist/client/chunks/{charts-loader-tCSbqT7H.js.map → charts-loader-OHpTBq8c.js.map} +1 -1
  178. package/dist/client/chunks/{nl-NL-B9VnaVAm.js → nl-NL-dk-kC0sL.js} +2 -1
  179. package/dist/client/chunks/nl-NL-dk-kC0sL.js.map +1 -0
  180. package/dist/client/chunks/{schema-visualization-o1zzuMQy.js → schema-visualization-PYa578pV.js} +3 -3
  181. package/dist/client/chunks/{schema-visualization-o1zzuMQy.js.map → schema-visualization-PYa578pV.js.map} +1 -1
  182. package/dist/client/chunks/{useDirtyStateTracking-DTYbmRBn.js → useDirtyStateTracking-BQupC3wJ.js} +4 -4
  183. package/dist/client/chunks/{useDirtyStateTracking-DTYbmRBn.js.map → useDirtyStateTracking-BQupC3wJ.js.map} +1 -1
  184. package/dist/client/chunks/{useExplainAI-MuC9jBn-.js → useExplainAI-DORnTynt.js} +4 -4
  185. package/dist/client/chunks/{useExplainAI-MuC9jBn-.js.map → useExplainAI-DORnTynt.js.map} +1 -1
  186. package/dist/client/chunks/{vendor-XQT9APIq.js → vendor-DDo8nSGP.js} +2 -2
  187. package/dist/client/chunks/{vendor-XQT9APIq.js.map → vendor-DDo8nSGP.js.map} +1 -1
  188. package/dist/client/components/AgenticNotebook/chatMessageParts.d.ts +0 -2
  189. package/dist/client/components/PortletGroupCard.d.ts +3 -1
  190. package/dist/client/components/RowManagedLayout.d.ts +5 -2
  191. package/dist/client/components/dashboardPortletCard/cardStyles.d.ts +7 -3
  192. package/dist/client/components/markdownOverrides.d.ts +202 -0
  193. package/dist/client/components/rowManagedLayout/sections.d.ts +46 -0
  194. package/dist/client/components.js +1 -1
  195. package/dist/client/hooks/agentChatStream.d.ts +3 -2
  196. package/dist/client/hooks/useAgentChat.d.ts +1 -0
  197. package/dist/client/hooks.js +3 -3
  198. package/dist/client/icons.js +1 -1
  199. package/dist/client/index.js +474 -471
  200. package/dist/client/index.js.map +1 -1
  201. package/dist/client/providers.js +1 -1
  202. package/dist/client/schema.js +1 -1
  203. package/dist/client/styles.css +1 -1
  204. package/dist/client/utils.js +4 -4
  205. package/dist/client-bundle-stats.html +1 -1
  206. package/dist/mcp-app/mcp-app.html +4 -4
  207. package/dist/server/agent/agent-prompts.d.ts +14 -0
  208. package/dist/server/agent/chart-validation.d.ts +14 -0
  209. package/dist/server/agent/data-shape.d.ts +41 -0
  210. package/dist/server/agent/providers/anthropic.d.ts +1 -0
  211. package/dist/server/agent/providers/google.d.ts +1 -0
  212. package/dist/server/agent/providers/openai.d.ts +1 -0
  213. package/dist/server/agent/providers/types.d.ts +13 -0
  214. package/dist/server/agent/tools.d.ts +18 -4
  215. package/dist/server/agent/types.d.ts +5 -1
  216. package/dist/server/ai/chart-schema.d.ts +37 -0
  217. package/dist/server/{anthropic-DG4r1LSm.cjs → anthropic-CqLkud62.cjs} +1 -1
  218. package/dist/server/{anthropic-CZh4hB-m.js → anthropic-MQlafOZv.js} +3 -0
  219. package/dist/{adapters/google-PsZzwedr.cjs → server/google-6pofxIfm.cjs} +1 -1
  220. package/dist/{adapters/google-DRY7jnOh.js → server/google-BBBP1Dhs.js} +3 -0
  221. package/dist/server/index.cjs +44 -43
  222. package/dist/server/index.js +2069 -1857
  223. package/dist/server/{openai-6uUf7h-5.js → openai-nBhuSFd3.js} +9 -3
  224. package/dist/server/openai-rF50ZEiR.cjs +1 -0
  225. package/package.json +4 -4
  226. package/dist/adapters/ActivityGridChart.config-Bc7mPqcf.cjs +0 -1
  227. package/dist/adapters/ActivityGridChart.config-Dd2YDeaM.js +0 -2
  228. package/dist/adapters/AreaChart.config-BqNusnpg.js +0 -2
  229. package/dist/adapters/AreaChart.config-dI84V34B.cjs +0 -1
  230. package/dist/adapters/BarChart.config-B9MQjgLJ.cjs +0 -1
  231. package/dist/adapters/BarChart.config-Cq_qcxBA.js +0 -2
  232. package/dist/adapters/BoxPlotChart.config-XmtRN2xq.cjs +0 -1
  233. package/dist/adapters/BoxPlotChart.config-Zc-JGV-W.js +0 -2
  234. package/dist/adapters/BubbleChart.config-CU_18uxb.js +0 -2
  235. package/dist/adapters/BubbleChart.config-CbhOzA6-.cjs +0 -1
  236. package/dist/adapters/CandlestickChart.config-Bwo3uaa-.js +0 -2
  237. package/dist/adapters/CandlestickChart.config-CmRBlWFv.cjs +0 -1
  238. package/dist/adapters/DataTable.config-7JNSj6qQ.js +0 -2
  239. package/dist/adapters/DataTable.config-DNxm1sYk.cjs +0 -1
  240. package/dist/adapters/DotStripChart.config-B7Dl-T1h.js +0 -2
  241. package/dist/adapters/DotStripChart.config-Co4g1fpZ.cjs +0 -1
  242. package/dist/adapters/FunnelChart.config-D1TpuGtL.cjs +0 -1
  243. package/dist/adapters/FunnelChart.config-vuZScOHQ.js +0 -2
  244. package/dist/adapters/GaugeChart.config-BMgUHKhC.cjs +0 -1
  245. package/dist/adapters/GaugeChart.config-zdpFydo6.js +0 -2
  246. package/dist/adapters/HeatMapChart.config-4XMab1zq.js +0 -2
  247. package/dist/adapters/HeatMapChart.config-C-Ns6QBq.cjs +0 -1
  248. package/dist/adapters/KpiDelta.config-BGdqsHcc.js +0 -2
  249. package/dist/adapters/KpiDelta.config-DuNxrGIi.cjs +0 -1
  250. package/dist/adapters/KpiNumber.config-CkPWpcSz.js +0 -2
  251. package/dist/adapters/KpiNumber.config-DMGmuA3i.cjs +0 -1
  252. package/dist/adapters/KpiText.config-Bvtuv8vE.js +0 -2
  253. package/dist/adapters/KpiText.config-DOMLO16U.cjs +0 -1
  254. package/dist/adapters/LineChart.config-CJmTSmZ1.js +0 -2
  255. package/dist/adapters/LineChart.config-CrkGu0aa.cjs +0 -1
  256. package/dist/adapters/MarkdownChart.config-BgY5Xc97.cjs +0 -1
  257. package/dist/adapters/MarkdownChart.config-Cm6G4Yuh.js +0 -2
  258. package/dist/adapters/MeasureProfileChart.config-BYwDo_ox.cjs +0 -1
  259. package/dist/adapters/MeasureProfileChart.config-Dt7npubZ.js +0 -2
  260. package/dist/adapters/PieChart.config-BRbPctBN.cjs +0 -1
  261. package/dist/adapters/PieChart.config-HZofeody.js +0 -2
  262. package/dist/adapters/ProportionBarChart.config-B_rTtGZr.cjs +0 -1
  263. package/dist/adapters/ProportionBarChart.config-ChCSoM0L.js +0 -2
  264. package/dist/adapters/RadarChart.config-B9OdMEib.js +0 -2
  265. package/dist/adapters/RadarChart.config-BOgPD2Kz.cjs +0 -1
  266. package/dist/adapters/RadialBarChart.config-CeP7jEbq.js +0 -2
  267. package/dist/adapters/RadialBarChart.config-sivA1Jmo.cjs +0 -1
  268. package/dist/adapters/RecordsTable.config-BInSgo-G.js +0 -2
  269. package/dist/adapters/RecordsTable.config-CVmxLdjz.cjs +0 -1
  270. package/dist/adapters/RetentionCombinedChart.config-8ry7gh6X.cjs +0 -1
  271. package/dist/adapters/RetentionCombinedChart.config-Bxtxnlcf.js +0 -2
  272. package/dist/adapters/RetentionHeatmap.config-DCtOD8dO.js +0 -2
  273. package/dist/adapters/RetentionHeatmap.config-i-LgmmIT.cjs +0 -1
  274. package/dist/adapters/SankeyChart.config-DfpeHfNT.cjs +0 -1
  275. package/dist/adapters/SankeyChart.config-hfM0ACm1.js +0 -2
  276. package/dist/adapters/ScatterChart.config-BD2vfOZ6.js +0 -2
  277. package/dist/adapters/ScatterChart.config-CdpvRueF.cjs +0 -1
  278. package/dist/adapters/SunburstChart.config-Boyt88L_.cjs +0 -1
  279. package/dist/adapters/SunburstChart.config-BvrofzMv.js +0 -2
  280. package/dist/adapters/TreeMapChart.config-DBrqwtqT.js +0 -2
  281. package/dist/adapters/TreeMapChart.config-KcRLlZAG.cjs +0 -1
  282. package/dist/adapters/WaterfallChart.config-CuCGaIl5.cjs +0 -1
  283. package/dist/adapters/WaterfallChart.config-DZ8H0V2L.js +0 -2
  284. package/dist/adapters/compiler-DG6dLFQU.cjs +0 -166
  285. package/dist/adapters/handler-CRGZ8gd2.cjs +0 -25
  286. package/dist/adapters/mcp-transport-BqdBHmXL.js +0 -730
  287. package/dist/adapters/mcp-transport-D8xZJLPD.cjs +0 -42
  288. package/dist/adapters/openai-DH9MtcLA.cjs +0 -1
  289. package/dist/adapters/utils-C1JpSDOX.cjs +0 -128
  290. package/dist/client/chunks/DashboardEditModal-BliiIHcI.js.map +0 -1
  291. package/dist/client/chunks/chart-activity-grid-CJzxC18G.js.map +0 -1
  292. package/dist/client/chunks/chart-markdown-yxN_xBP9.js.map +0 -1
  293. package/dist/client/chunks/charts-loader-tCSbqT7H.js +0 -87
  294. package/dist/client/chunks/nl-NL-B9VnaVAm.js.map +0 -1
  295. package/dist/server/openai-BBe1XbZd.cjs +0 -1
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-C1JpSDOX.cjs");exports.buildTransformedQuery=e.t,exports.calculateQueryComplexity=e.n,exports.formatCubeResponse=e.r,exports.formatErrorResponse=e.i,exports.formatMetaResponse=e.a,exports.formatSqlResponse=e.o,exports.formatSqlString=e.S,exports.generateRequestId=e.s,exports.getDatabaseType=e.c,exports.handleBatchRequest=e.l,exports.handleDiscover=e.p,exports.handleDryRun=e.u,exports.handleLoad=e.m,exports.handleSuggest=e.d,exports.handleValidate=e.f,exports.normalizeQueryFields=e.h;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./utils-DXWQUJbD.cjs");exports.buildTransformedQuery=e.t,exports.calculateQueryComplexity=e.n,exports.formatCubeResponse=e.r,exports.formatErrorResponse=e.i,exports.formatMetaResponse=e.a,exports.formatSqlResponse=e.o,exports.formatSqlString=e.x,exports.generateRequestId=e.s,exports.getDatabaseType=e.c,exports.handleBatchRequest=e.l,exports.handleDiscover=e.p,exports.handleDryRun=e.u,exports.handleLoad=e.m,exports.handleSuggest=e.d,exports.handleValidate=e.f,exports.normalizeQueryFields=e.h;
@@ -1,2 +1,2 @@
1
- import { S as e, a as t, c as n, d as r, f as i, h as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m, u as h } from "./utils-BhlkVCzZ.js";
2
- export { m as buildTransformedQuery, l as calculateQueryComplexity, f as formatCubeResponse, o as formatErrorResponse, t as formatMetaResponse, u as formatSqlResponse, e as formatSqlString, p as generateRequestId, n as getDatabaseType, s as handleBatchRequest, d as handleDiscover, h as handleDryRun, c as handleLoad, r as handleSuggest, i as handleValidate, a as normalizeQueryFields };
1
+ import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m, x as h } from "./utils-C_RKaP0n.js";
2
+ export { p as buildTransformedQuery, c as calculateQueryComplexity, d as formatCubeResponse, a as formatErrorResponse, e as formatMetaResponse, l as formatSqlResponse, h as formatSqlString, f as generateRequestId, t as getDatabaseType, o as handleBatchRequest, u as handleDiscover, m as handleDryRun, s as handleLoad, n as handleSuggest, r as handleValidate, i as normalizeQueryFields };
@@ -1,7 +1,5 @@
1
1
  import { default as React } from 'react';
2
2
  import { ChatMessage as ChatMessageType, ToolCallRecord } from '../../stores/notebookStore.js';
3
- /** Simple inline markdown parser for bold, italic, and code in chat text */
4
- export declare function renderInlineMarkdown(text: string): React.ReactNode[];
5
3
  /** Compute the bubble background/text classes for a message. */
6
4
  export declare function getBubbleClass(isUser: boolean, hasError: boolean, hasContent: boolean): string;
7
5
  export declare function ToolCallIndicator({ toolCall, loadingComponent, }: {
@@ -14,5 +14,7 @@ export interface PortletGroupCardProps {
14
14
  onChildDragEnd: () => void;
15
15
  /** Snap bands rendered inside each child; supplied by the row layout. */
16
16
  renderSnapBands?: (portletId: string) => ReactNode;
17
+ /** Set inside a section card, which draws the only frame for the whole band. */
18
+ frameless?: boolean;
17
19
  }
18
- export default function PortletGroupCard({ group, portlets, canEdit, renderChild, onRename, onUngroup, onDelete, onChildDragStart, onChildDragEnd, renderSnapBands }: PortletGroupCardProps): import("react").JSX.Element;
20
+ export default function PortletGroupCard({ group, portlets, canEdit, renderChild, onRename, onUngroup, onDelete, onChildDragStart, onChildDragEnd, renderSnapBands, frameless }: PortletGroupCardProps): import("react").JSX.Element;
@@ -1,6 +1,7 @@
1
1
  import { HTMLAttributes, ReactNode, MouseEvent, DragEvent } from 'react';
2
2
  import { DashboardGridSettings, PortletConfig, PortletGroup, RowLayout } from '../types.js';
3
3
  import { SnapEdge } from '../hooks/dashboard/groupUtils.js';
4
+ import { PortletCardVariant } from './dashboardPortletCard/cardStyles.js';
4
5
  interface RowManagedLayoutProps {
5
6
  rows: RowLayout[];
6
7
  portlets: PortletConfig[];
@@ -23,9 +24,11 @@ interface RowManagedLayoutProps {
23
24
  draggingPortletId?: string | null;
24
25
  /** Id of the group currently being dragged, so its members ignore their bands. */
25
26
  draggingGroupId?: string | null;
26
- renderPortlet: (portlet: PortletConfig, containerProps?: HTMLAttributes<HTMLDivElement>, headerProps?: HTMLAttributes<HTMLDivElement>) => ReactNode;
27
+ renderPortlet: (portlet: PortletConfig, containerProps?: HTMLAttributes<HTMLDivElement>, headerProps?: HTMLAttributes<HTMLDivElement>, variant?: PortletCardVariant) => ReactNode;
27
28
  /** Renders a group column. Omitted in contexts that have no groups. */
28
- renderGroup?: (group: PortletGroup, renderSnapBands: (portletId: string) => ReactNode) => ReactNode;
29
+ renderGroup?: (group: PortletGroup, renderSnapBands: (portletId: string) => ReactNode,
30
+ /** Set inside a section, where the section card draws the only frame. */
31
+ frameless?: boolean) => ReactNode;
29
32
  }
30
33
  export default function RowManagedLayout({ rows, portlets, groups, gridSettings, gridWidth, canEdit, isDragging, onRowResize, onColumnResize, onPortletDragStart, onPortletDragEnd, onRowDrop, onNewRowDrop, onSnapDrop, draggingPortletId, draggingGroupId, renderPortlet, renderGroup }: RowManagedLayoutProps): import("react").JSX.Element;
31
34
  export {};
@@ -1,7 +1,11 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { ChartType, ChartDisplayConfig } from '../../types.js';
3
- /** How much chrome a card draws. Group children are frameless and headerless. */
4
- export type PortletCardVariant = 'standalone' | 'groupChild';
3
+ /**
4
+ * How much chrome a card draws. Group children are frameless and headerless;
5
+ * section children are frameless but otherwise behave like standalone cards,
6
+ * because the section card around them supplies the only frame.
7
+ */
8
+ export type PortletCardVariant = 'standalone' | 'groupChild' | 'sectionChild';
5
9
  export interface PortletDisplayModes {
6
10
  isMarkdownAutoHeight: boolean;
7
11
  isTransparentContent: boolean;
@@ -28,7 +32,7 @@ export declare function buildContainerClassName(params: {
28
32
  extraClassName?: string;
29
33
  variant?: PortletCardVariant;
30
34
  }): string;
31
- export declare function buildHeaderClassName(isEditMode: boolean, extraClassName?: string): string;
35
+ export declare function buildHeaderClassName(isEditMode: boolean, extraClassName?: string, variant?: PortletCardVariant): string;
32
36
  export declare function buildContainerStyle(params: {
33
37
  isTransparent: boolean;
34
38
  isInSelectionMode: boolean;
@@ -0,0 +1,202 @@
1
+ import { default as React } from 'react';
2
+ /** Scrollable table wrapper so wide tables don't overflow their container */
3
+ export declare function ScrollableTable({ children, ...props }: React.HTMLAttributes<HTMLTableElement>): React.JSX.Element;
4
+ /** Notebook canvas blocks — roomy, distinct heading sizes. */
5
+ export declare const NOTEBOOK_MARKDOWN_OPTIONS: {
6
+ overrides: {
7
+ code: {
8
+ props: {
9
+ className: string;
10
+ };
11
+ };
12
+ pre: {
13
+ props: {
14
+ className: string;
15
+ };
16
+ };
17
+ a: {
18
+ props: {
19
+ className: string;
20
+ target: string;
21
+ rel: string;
22
+ };
23
+ };
24
+ table: {
25
+ component: typeof ScrollableTable;
26
+ props: {
27
+ className: string;
28
+ };
29
+ };
30
+ thead: {
31
+ props: {
32
+ className: string;
33
+ };
34
+ };
35
+ th: {
36
+ props: {
37
+ className: string;
38
+ };
39
+ };
40
+ td: {
41
+ props: {
42
+ className: string;
43
+ };
44
+ };
45
+ tr: {
46
+ props: {
47
+ className: string;
48
+ };
49
+ };
50
+ h1: {
51
+ props: {
52
+ className: string;
53
+ };
54
+ };
55
+ h2: {
56
+ props: {
57
+ className: string;
58
+ };
59
+ };
60
+ h3: {
61
+ props: {
62
+ className: string;
63
+ };
64
+ };
65
+ p: {
66
+ props: {
67
+ className: string;
68
+ };
69
+ };
70
+ strong: {
71
+ props: {
72
+ className: string;
73
+ };
74
+ };
75
+ ul: {
76
+ props: {
77
+ className: string;
78
+ };
79
+ };
80
+ ol: {
81
+ props: {
82
+ className: string;
83
+ };
84
+ };
85
+ li: {
86
+ props: {
87
+ className: string;
88
+ };
89
+ };
90
+ hr: {
91
+ props: {
92
+ className: string;
93
+ };
94
+ };
95
+ blockquote: {
96
+ props: {
97
+ className: string;
98
+ };
99
+ };
100
+ };
101
+ };
102
+ /**
103
+ * Chat bubbles — the bubble already sets the font size, so headings only carry
104
+ * weight, and every block margin is tighter to suit an ~85%-width bubble.
105
+ */
106
+ export declare const CHAT_MARKDOWN_OPTIONS: {
107
+ overrides: {
108
+ code: {
109
+ props: {
110
+ className: string;
111
+ };
112
+ };
113
+ pre: {
114
+ props: {
115
+ className: string;
116
+ };
117
+ };
118
+ a: {
119
+ props: {
120
+ className: string;
121
+ target: string;
122
+ rel: string;
123
+ };
124
+ };
125
+ table: {
126
+ component: typeof ScrollableTable;
127
+ props: {
128
+ className: string;
129
+ };
130
+ };
131
+ thead: {
132
+ props: {
133
+ className: string;
134
+ };
135
+ };
136
+ th: {
137
+ props: {
138
+ className: string;
139
+ };
140
+ };
141
+ td: {
142
+ props: {
143
+ className: string;
144
+ };
145
+ };
146
+ tr: {
147
+ props: {
148
+ className: string;
149
+ };
150
+ };
151
+ h1: {
152
+ props: {
153
+ className: string;
154
+ };
155
+ };
156
+ h2: {
157
+ props: {
158
+ className: string;
159
+ };
160
+ };
161
+ h3: {
162
+ props: {
163
+ className: string;
164
+ };
165
+ };
166
+ p: {
167
+ props: {
168
+ className: string;
169
+ };
170
+ };
171
+ strong: {
172
+ props: {
173
+ className: string;
174
+ };
175
+ };
176
+ ul: {
177
+ props: {
178
+ className: string;
179
+ };
180
+ };
181
+ ol: {
182
+ props: {
183
+ className: string;
184
+ };
185
+ };
186
+ li: {
187
+ props: {
188
+ className: string;
189
+ };
190
+ };
191
+ hr: {
192
+ props: {
193
+ className: string;
194
+ };
195
+ };
196
+ blockquote: {
197
+ props: {
198
+ className: string;
199
+ };
200
+ };
201
+ };
202
+ };
@@ -0,0 +1,46 @@
1
+ import { PortletConfig, RowLayout } from '../../types.js';
2
+ /** A markdown portlet that sizes itself to its content - the shape of a header. */
3
+ export declare function isAutoHeightMarkdownPortlet(portlet: PortletConfig): boolean;
4
+ /**
5
+ * A row sizes itself to its content only when every column is a markdown
6
+ * portlet asking for it. A group column has an explicit height, so it never
7
+ * auto-heights.
8
+ */
9
+ export declare function isAutoHeightRow(row: RowLayout, portletMap: Map<string, PortletConfig>): boolean;
10
+ /**
11
+ * A section header is a lone full-width auto-height markdown row.
12
+ *
13
+ * The width test matters: a single column is not automatically full width, and
14
+ * one narrower than `cols` renders as a partial-width card that shouldn't
15
+ * capture the rows below it. `normalizeRows` -> `adjustRowWidths` guarantees a
16
+ * row's columns sum to exactly `cols`, so a lone column does reach it.
17
+ */
18
+ export declare function isSectionHeaderRow(row: RowLayout, portletMap: Map<string, PortletConfig>, cols: number): boolean;
19
+ /**
20
+ * True when the header already draws its own line along its bottom edge -
21
+ * either the `accentBorder: 'bottom'` display option, or markdown content
22
+ * ending in a horizontal rule.
23
+ *
24
+ * Such a header separates itself from the section body, so the section must not
25
+ * draw its own divider underneath as well: two parallel lines a few pixels
26
+ * apart is the thing this whole feature exists to avoid.
27
+ */
28
+ export declare function headerHasBottomRule(portlet: PortletConfig): boolean;
29
+ export type RowBand =
30
+ /** A row that belongs to no section, drawn exactly as it always has been. */
31
+ {
32
+ kind: 'loose';
33
+ rowIndex: number;
34
+ } | {
35
+ kind: 'section';
36
+ headerRowIndex: number;
37
+ bodyRowIndices: number[];
38
+ };
39
+ /**
40
+ * Split `rows` into bands top-down. Rows before the first header stay loose,
41
+ * and a header with nothing beneath it stays loose too - a trailing markdown
42
+ * note is a note, not an empty section card.
43
+ */
44
+ export declare function computeRowBands(rows: RowLayout[], portletMap: Map<string, PortletConfig>, cols: number): RowBand[];
45
+ /** True when at least one section would be drawn - lets callers skip the wrapper entirely. */
46
+ export declare function hasSection(bands: RowBand[]): boolean;
@@ -2,12 +2,13 @@ import { PortletBlock, MarkdownBlock } from '../stores/notebookStore.js';
2
2
  /** Clean up raw API errors into user-friendly messages */
3
3
  export declare function formatUserFacingError(message: string): string;
4
4
  export interface AgentSSEEvent {
5
- type: 'text_delta' | 'tool_use_start' | 'tool_use_result' | 'add_portlet' | 'add_markdown' | 'dashboard_saved' | 'turn_complete' | 'done' | 'error';
5
+ type: 'text_delta' | 'tool_use_start' | 'tool_use_result' | 'add_portlet' | 'update_portlet' | 'add_markdown' | 'dashboard_saved' | 'turn_complete' | 'done' | 'error';
6
6
  data: any;
7
7
  }
8
8
  /** Subset of the hook options that handleAgentEvent dispatches to. */
9
9
  export interface AgentEventCallbacks {
10
10
  onAddPortlet: (data: PortletBlock) => void;
11
+ onUpdatePortlet?: (data: PortletBlock) => void;
11
12
  onAddMarkdown: (data: MarkdownBlock) => void;
12
13
  onDashboardSaved?: (data: {
13
14
  title: string;
@@ -16,7 +17,7 @@ export interface AgentEventCallbacks {
16
17
  }) => void;
17
18
  onTextDelta: (text: string) => void;
18
19
  onToolStart: (id: string, name: string, input?: unknown) => void;
19
- onToolResult: (id: string, name: string, result?: unknown, isError?: boolean) => void;
20
+ onToolResult: (id: string, name: string, result?: unknown, isError?: boolean, input?: unknown) => void;
20
21
  onDone: (sessionId: string, traceId?: string) => void;
21
22
  onTurnComplete?: () => void;
22
23
  onError: (message: string) => void;
@@ -12,6 +12,7 @@ export interface UseAgentChatOptions {
12
12
  agentProviderEndpoint?: string;
13
13
  /** Called when agent adds a portlet to the notebook */
14
14
  onAddPortlet: (data: PortletBlock) => void;
15
+ onUpdatePortlet?: (data: PortletBlock) => void;
15
16
  /** Called when agent adds a markdown block to the notebook */
16
17
  onAddMarkdown: (data: MarkdownBlock) => void;
17
18
  /** Called when the agent saves a dashboard configuration */
@@ -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 {};
@@ -20,5 +20,6 @@ export declare class AnthropicProvider implements LLMProvider {
20
20
  };
21
21
  formatToolResults(results: ToolResult[]): unknown;
22
22
  shouldContinue(stopReason: string): boolean;
23
+ isTruncated(stopReason: string): boolean;
23
24
  formatError(error: unknown): string;
24
25
  }
@@ -19,5 +19,6 @@ export declare class GoogleProvider implements LLMProvider {
19
19
  };
20
20
  formatToolResults(results: ToolResult[]): unknown;
21
21
  shouldContinue(stopReason: string): boolean;
22
+ isTruncated(stopReason: string): boolean;
22
23
  formatError(error: unknown): string;
23
24
  }
@@ -22,5 +22,6 @@ export declare class OpenAIProvider implements LLMProvider {
22
22
  };
23
23
  formatToolResults(results: ToolResult[]): unknown[];
24
24
  shouldContinue(stopReason: string): boolean;
25
+ isTruncated(stopReason: string): boolean;
25
26
  formatError(error: unknown): string;
26
27
  }
@@ -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: 4096) */
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,14 +1,14 @@
1
- import { dt as e, ft as t, gt as n, ht as r, lt as i, mt as a, pt as o, t as s, ut as c } from "./chunks/chart-data-table-Cou9qOab.js";
2
- import { d as l, l as u, s as d, u as f } from "./chunks/chart-activity-grid-CJzxC18G.js";
3
- import { t as p } from "./chunks/chart-funnel-B0775aaT.js";
4
- import { a as m, i as h, n as g, o as _, r as v, s as y, t as b } from "./chunks/charts-loader-tCSbqT7H.js";
5
- import { t as x } from "./chunks/chart-area-C66dgy84.js";
1
+ import { dt as e, ft as t, gt as n, ht as r, lt as i, mt as a, pt as o, t as s, ut as c } from "./chunks/chart-data-table-CCvvgeG_.js";
2
+ import { d as l, l as u, s as d, u as f } from "./chunks/chart-activity-grid-UZIp9_2E.js";
3
+ import { t as p } from "./chunks/chart-funnel-D2vGQhaz.js";
4
+ import { a as m, i as h, n as g, o as _, r as v, s as y, t as b } from "./chunks/charts-loader-OHpTBq8c.js";
5
+ import { t as x } from "./chunks/chart-area-CEBcvCcn.js";
6
6
  import { i as S } from "./chunks/utils-CToHkuhU.js";
7
- import { t as C } from "./chunks/chart-bar-D9kiSOCT.js";
8
- import { t as w } from "./chunks/chart-line-IwXqPY80.js";
9
- import { t as T } from "./chunks/chart-pie-LDJfDXfX.js";
10
- import { t as E } from "./chunks/chart-scatter-DP-nn9hH.js";
11
- import { t as D } from "./chunks/chart-radar-BZY6TP9m.js";
12
- import { t as O } from "./chunks/chart-radial-bar-aga05X7h.js";
13
- import { t as k } from "./chunks/chart-tree-map-C3O6uQcP.js";
7
+ import { t as C } from "./chunks/chart-bar-DGh7cpU-.js";
8
+ import { t as w } from "./chunks/chart-line-C4r44HWi.js";
9
+ import { t as T } from "./chunks/chart-pie-BHrPxga2.js";
10
+ import { t as E } from "./chunks/chart-scatter-BHttSxcc.js";
11
+ import { t as D } from "./chunks/chart-radar-I9sOFbG5.js";
12
+ import { t as O } from "./chunks/chart-radial-bar-DeDMMf9P.js";
13
+ import { t as k } from "./chunks/chart-tree-map-CdSwr_zI.js";
14
14
  export { d as CHART_COLORS, u as CHART_MARGINS, s as DataTable, p as FunnelChart, b as LazyChart, f as NEGATIVE_COLOR, l as POSITIVE_COLOR, x as RechartsAreaChart, C as RechartsBarChart, w as RechartsLineChart, T as RechartsPieChart, D as RechartsRadarChart, O as RechartsRadialBarChart, E as RechartsScatterChart, k as RechartsTreeMapChart, i as clearChartConfigCache, S as formatChartData, g as getAvailableChartTypes, c as getChartConfigAsync, e as getChartConfigSync, v as getUnavailableChartTypes, t as isChartConfigLoaded, h as isChartTypeAvailable, m as isValidChartType, o as loadAllChartConfigs, _ as preloadChart, a as preloadChartConfig, r as preloadChartConfigs, y as preloadCharts, n as useChartConfig };