@sqlrooms/mosaic 0.29.0-rc.8 → 0.29.0-rc.9

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 (363) hide show
  1. package/README.md +84 -74
  2. package/dist/ai/agentIntent.d.ts +5 -0
  3. package/dist/ai/agentIntent.d.ts.map +1 -0
  4. package/dist/ai/agentIntent.js +8 -0
  5. package/dist/ai/agentIntent.js.map +1 -0
  6. package/dist/ai/block-document/constants.d.ts +9 -0
  7. package/dist/ai/block-document/constants.d.ts.map +1 -0
  8. package/dist/ai/block-document/constants.js +9 -0
  9. package/dist/ai/block-document/constants.js.map +1 -0
  10. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts +48 -0
  11. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts.map +1 -0
  12. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js +59 -0
  13. package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js.map +1 -0
  14. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts +19 -0
  15. package/dist/ai/block-document/createBlockDocumentChartTools.d.ts.map +1 -0
  16. package/dist/ai/block-document/createBlockDocumentChartTools.js +37 -0
  17. package/dist/ai/block-document/createBlockDocumentChartTools.js.map +1 -0
  18. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts +32 -0
  19. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts.map +1 -0
  20. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js +37 -0
  21. package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js.map +1 -0
  22. package/dist/ai/constants.d.ts +3 -0
  23. package/dist/ai/constants.d.ts.map +1 -0
  24. package/dist/ai/constants.js +3 -0
  25. package/dist/ai/constants.js.map +1 -0
  26. package/dist/ai/createDataTableExplorerTool.d.ts +69 -0
  27. package/dist/ai/createDataTableExplorerTool.d.ts.map +1 -0
  28. package/dist/ai/createDataTableExplorerTool.js +68 -0
  29. package/dist/ai/createDataTableExplorerTool.js.map +1 -0
  30. package/dist/ai/dashboard/constants.d.ts +6 -0
  31. package/dist/ai/dashboard/constants.d.ts.map +1 -0
  32. package/dist/ai/dashboard/constants.js +6 -0
  33. package/dist/ai/dashboard/constants.js.map +1 -0
  34. package/dist/ai/dashboard/createDashboardAgentTool.d.ts +17 -0
  35. package/dist/ai/dashboard/createDashboardAgentTool.d.ts.map +1 -0
  36. package/dist/ai/dashboard/createDashboardAgentTool.js +205 -0
  37. package/dist/ai/dashboard/createDashboardAgentTool.js.map +1 -0
  38. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts +14 -0
  39. package/dist/ai/dashboard/createDashboardAiAdapter.d.ts.map +1 -0
  40. package/dist/ai/dashboard/createDashboardAiAdapter.js +75 -0
  41. package/dist/ai/dashboard/createDashboardAiAdapter.js.map +1 -0
  42. package/dist/ai/dashboard/createDashboardAiTools.d.ts +26 -0
  43. package/dist/ai/dashboard/createDashboardAiTools.d.ts.map +1 -0
  44. package/dist/ai/dashboard/createDashboardAiTools.js +40 -0
  45. package/dist/ai/dashboard/createDashboardAiTools.js.map +1 -0
  46. package/dist/ai/dashboard/createDashboardChartTools.d.ts +27 -0
  47. package/dist/ai/dashboard/createDashboardChartTools.d.ts.map +1 -0
  48. package/dist/ai/dashboard/createDashboardChartTools.js +55 -0
  49. package/dist/ai/dashboard/createDashboardChartTools.js.map +1 -0
  50. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts +23 -0
  51. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts.map +1 -0
  52. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js +29 -0
  53. package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js.map +1 -0
  54. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts +28 -0
  55. package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts.map +1 -0
  56. package/dist/ai/dashboard/createListDashboardPanelsTool.js +54 -0
  57. package/dist/ai/dashboard/createListDashboardPanelsTool.js.map +1 -0
  58. package/dist/ai/dashboard/dashboard-types.d.ts +59 -0
  59. package/dist/ai/dashboard/dashboard-types.d.ts.map +1 -0
  60. package/dist/ai/dashboard/dashboard-types.js +2 -0
  61. package/dist/ai/dashboard/dashboard-types.js.map +1 -0
  62. package/dist/ai/database-types.d.ts +12 -0
  63. package/dist/ai/database-types.d.ts.map +1 -0
  64. package/dist/ai/database-types.js +2 -0
  65. package/dist/ai/database-types.js.map +1 -0
  66. package/dist/ai/errors.d.ts +8 -0
  67. package/dist/ai/errors.d.ts.map +1 -0
  68. package/dist/ai/errors.js +11 -0
  69. package/dist/ai/errors.js.map +1 -0
  70. package/dist/ai/tool-helpers.d.ts +28 -29
  71. package/dist/ai/tool-helpers.d.ts.map +1 -1
  72. package/dist/ai/tool-helpers.js +38 -76
  73. package/dist/ai/tool-helpers.js.map +1 -1
  74. package/dist/ai/tool-schemas.d.ts +9 -4
  75. package/dist/ai/tool-schemas.d.ts.map +1 -1
  76. package/dist/ai/tool-schemas.js +12 -12
  77. package/dist/ai/tool-schemas.js.map +1 -1
  78. package/dist/ai/tool-types.d.ts +19 -1
  79. package/dist/ai/tool-types.d.ts.map +1 -1
  80. package/dist/ai/tool-types.js.map +1 -1
  81. package/dist/ai/types.d.ts +64 -0
  82. package/dist/ai/types.d.ts.map +1 -0
  83. package/dist/ai/types.js +2 -0
  84. package/dist/ai/types.js.map +1 -0
  85. package/dist/ai.d.ts +16 -2
  86. package/dist/ai.d.ts.map +1 -1
  87. package/dist/ai.js +14 -5
  88. package/dist/ai.js.map +1 -1
  89. package/dist/charts/MosaicChart.js +1 -1
  90. package/dist/charts/MosaicChart.js.map +1 -1
  91. package/dist/charts/MosaicChartView.d.ts.map +1 -1
  92. package/dist/charts/MosaicChartView.js +1 -2
  93. package/dist/charts/MosaicChartView.js.map +1 -1
  94. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -1
  95. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +2 -1
  96. package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -1
  97. package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
  98. package/dist/charts/chart-settings/MosaicChartTypeSelector.js +4 -11
  99. package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
  100. package/dist/charts/chart-types/base-types.d.ts +27 -23
  101. package/dist/charts/chart-types/base-types.d.ts.map +1 -1
  102. package/dist/charts/chart-types/base-types.js +3 -1
  103. package/dist/charts/chart-types/base-types.js.map +1 -1
  104. package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -1
  105. package/dist/charts/chart-types/box-plot/definition.js +1 -0
  106. package/dist/charts/chart-types/box-plot/definition.js.map +1 -1
  107. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +37 -3
  108. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
  109. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +26 -6
  110. package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
  111. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +2 -2
  112. package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -1
  113. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +12 -1
  114. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -1
  115. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +13 -3
  116. package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -1
  117. package/dist/charts/chart-types/box-plot/tool.d.ts +20 -24
  118. package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -1
  119. package/dist/charts/chart-types/box-plot/tool.js +25 -33
  120. package/dist/charts/chart-types/box-plot/tool.js.map +1 -1
  121. package/dist/charts/chart-types/box-plot/validation.d.ts +9 -0
  122. package/dist/charts/chart-types/box-plot/validation.d.ts.map +1 -0
  123. package/dist/charts/chart-types/box-plot/validation.js +32 -0
  124. package/dist/charts/chart-types/box-plot/validation.js.map +1 -0
  125. package/dist/charts/chart-types/column-types.d.ts +8 -0
  126. package/dist/charts/chart-types/column-types.d.ts.map +1 -0
  127. package/dist/charts/chart-types/column-types.js +2 -0
  128. package/dist/charts/chart-types/column-types.js.map +1 -0
  129. package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -1
  130. package/dist/charts/chart-types/count-plot/definition.js +1 -0
  131. package/dist/charts/chart-types/count-plot/definition.js.map +1 -1
  132. package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
  133. package/dist/charts/chart-types/count-plot/spec.js +1 -19
  134. package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
  135. package/dist/charts/chart-types/count-plot/tool.d.ts +19 -24
  136. package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -1
  137. package/dist/charts/chart-types/count-plot/tool.js +25 -32
  138. package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
  139. package/dist/charts/chart-types/count-plot/validation.d.ts +8 -0
  140. package/dist/charts/chart-types/count-plot/validation.d.ts.map +1 -0
  141. package/dist/charts/chart-types/count-plot/validation.js +20 -0
  142. package/dist/charts/chart-types/count-plot/validation.js.map +1 -0
  143. package/dist/charts/chart-types/createChartInstructions.d.ts +3 -0
  144. package/dist/charts/chart-types/createChartInstructions.d.ts.map +1 -0
  145. package/dist/charts/chart-types/createChartInstructions.js +12 -0
  146. package/dist/charts/chart-types/createChartInstructions.js.map +1 -0
  147. package/dist/charts/chart-types/createChartTools.d.ts +15 -9
  148. package/dist/charts/chart-types/createChartTools.d.ts.map +1 -1
  149. package/dist/charts/chart-types/createChartTools.js +16 -10
  150. package/dist/charts/chart-types/createChartTools.js.map +1 -1
  151. package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -1
  152. package/dist/charts/chart-types/custom-spec/definition.js +1 -0
  153. package/dist/charts/chart-types/custom-spec/definition.js.map +1 -1
  154. package/dist/charts/chart-types/errors.d.ts +10 -0
  155. package/dist/charts/chart-types/errors.d.ts.map +1 -1
  156. package/dist/charts/chart-types/errors.js +18 -0
  157. package/dist/charts/chart-types/errors.js.map +1 -1
  158. package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -1
  159. package/dist/charts/chart-types/heatmap/definition.js +1 -0
  160. package/dist/charts/chart-types/heatmap/definition.js.map +1 -1
  161. package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
  162. package/dist/charts/chart-types/heatmap/spec.js +1 -33
  163. package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
  164. package/dist/charts/chart-types/heatmap/tool.d.ts +20 -24
  165. package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -1
  166. package/dist/charts/chart-types/heatmap/tool.js +26 -36
  167. package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
  168. package/dist/charts/chart-types/heatmap/validation.d.ts +9 -0
  169. package/dist/charts/chart-types/heatmap/validation.d.ts.map +1 -0
  170. package/dist/charts/chart-types/heatmap/validation.js +34 -0
  171. package/dist/charts/chart-types/heatmap/validation.js.map +1 -0
  172. package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -1
  173. package/dist/charts/chart-types/histogram/definition.js +1 -0
  174. package/dist/charts/chart-types/histogram/definition.js.map +1 -1
  175. package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
  176. package/dist/charts/chart-types/histogram/spec.js +1 -21
  177. package/dist/charts/chart-types/histogram/spec.js.map +1 -1
  178. package/dist/charts/chart-types/histogram/tool.d.ts +37 -24
  179. package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
  180. package/dist/charts/chart-types/histogram/tool.js +38 -32
  181. package/dist/charts/chart-types/histogram/tool.js.map +1 -1
  182. package/dist/charts/chart-types/histogram/validation.d.ts +9 -0
  183. package/dist/charts/chart-types/histogram/validation.d.ts.map +1 -0
  184. package/dist/charts/chart-types/histogram/validation.js +22 -0
  185. package/dist/charts/chart-types/histogram/validation.js.map +1 -0
  186. package/dist/charts/chart-types/index.d.ts +1 -7
  187. package/dist/charts/chart-types/index.d.ts.map +1 -1
  188. package/dist/charts/chart-types/index.js +2 -8
  189. package/dist/charts/chart-types/index.js.map +1 -1
  190. package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -1
  191. package/dist/charts/chart-types/line-chart/definition.js +1 -0
  192. package/dist/charts/chart-types/line-chart/definition.js.map +1 -1
  193. package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
  194. package/dist/charts/chart-types/line-chart/spec.js +5 -46
  195. package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
  196. package/dist/charts/chart-types/line-chart/tool.d.ts +26 -24
  197. package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
  198. package/dist/charts/chart-types/line-chart/tool.js +26 -38
  199. package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
  200. package/dist/charts/chart-types/line-chart/validation.d.ts +16 -0
  201. package/dist/charts/chart-types/line-chart/validation.d.ts.map +1 -0
  202. package/dist/charts/chart-types/line-chart/validation.js +43 -0
  203. package/dist/charts/chart-types/line-chart/validation.js.map +1 -0
  204. package/dist/charts/chart-types/resolveChartTypes.d.ts +3 -0
  205. package/dist/charts/chart-types/resolveChartTypes.d.ts.map +1 -0
  206. package/dist/charts/chart-types/resolveChartTypes.js +8 -0
  207. package/dist/charts/chart-types/resolveChartTypes.js.map +1 -0
  208. package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -1
  209. package/dist/charts/chart-types/scatter-plot/definition.js +1 -0
  210. package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -1
  211. package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -1
  212. package/dist/charts/chart-types/scatter-plot/spec.js +1 -45
  213. package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -1
  214. package/dist/charts/chart-types/scatter-plot/tool.d.ts +21 -24
  215. package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -1
  216. package/dist/charts/chart-types/scatter-plot/tool.js +28 -41
  217. package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -1
  218. package/dist/charts/chart-types/scatter-plot/validation.d.ts +13 -0
  219. package/dist/charts/chart-types/scatter-plot/validation.d.ts.map +1 -0
  220. package/dist/charts/chart-types/scatter-plot/validation.js +52 -0
  221. package/dist/charts/chart-types/scatter-plot/validation.js.map +1 -0
  222. package/dist/charts/chart-types/tool-types.d.ts +43 -0
  223. package/dist/charts/chart-types/tool-types.d.ts.map +1 -0
  224. package/dist/charts/chart-types/tool-types.js +2 -0
  225. package/dist/charts/chart-types/tool-types.js.map +1 -0
  226. package/dist/charts/chart-types/utils.d.ts +3 -0
  227. package/dist/charts/chart-types/utils.d.ts.map +1 -0
  228. package/dist/charts/chart-types/utils.js +4 -0
  229. package/dist/charts/chart-types/utils.js.map +1 -0
  230. package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
  231. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +5 -3
  232. package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
  233. package/dist/charts/useChartDataPolicy.js +2 -2
  234. package/dist/charts/useChartDataPolicy.js.map +1 -1
  235. package/dist/components/AggregationSelector.d.ts.map +1 -1
  236. package/dist/components/AggregationSelector.js +1 -1
  237. package/dist/components/AggregationSelector.js.map +1 -1
  238. package/dist/components/ColorSelector.d.ts.map +1 -1
  239. package/dist/components/ColorSelector.js +1 -2
  240. package/dist/components/ColorSelector.js.map +1 -1
  241. package/dist/components/FieldSelectorInput.d.ts.map +1 -1
  242. package/dist/components/FieldSelectorInput.js +3 -3
  243. package/dist/components/FieldSelectorInput.js.map +1 -1
  244. package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
  245. package/dist/components/TemporalGranularitySelector.js +1 -1
  246. package/dist/components/TemporalGranularitySelector.js.map +1 -1
  247. package/dist/dashboard/MosaicDashboardCommands.d.ts +19 -0
  248. package/dist/dashboard/MosaicDashboardCommands.d.ts.map +1 -0
  249. package/dist/dashboard/MosaicDashboardCommands.js +226 -0
  250. package/dist/dashboard/MosaicDashboardCommands.js.map +1 -0
  251. package/dist/dashboard/dashboard-types.d.ts.map +1 -1
  252. package/dist/dashboard/dashboard-types.js.map +1 -1
  253. package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -1
  254. package/dist/dashboard/panel/MosaicDashboardPanel.js +1 -1
  255. package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -1
  256. package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -1
  257. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js +3 -3
  258. package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -1
  259. package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -1
  260. package/dist/dashboard/panel/MosaicDashboardPanels.js +4 -2
  261. package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -1
  262. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -1
  263. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +4 -4
  264. package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -1
  265. package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
  266. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +5 -3
  267. package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
  268. package/dist/dashboard/useSelectedOrFirstTable.d.ts +1 -1
  269. package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -1
  270. package/dist/dashboard/useSelectedOrFirstTable.js +10 -8
  271. package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -1
  272. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +3 -2
  273. package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
  274. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +3 -3
  275. package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
  276. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +3 -1
  277. package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -1
  278. package/dist/data-table-explorer/DataTableExplorerCountClient.js +3 -3
  279. package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -1
  280. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +3 -2
  281. package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -1
  282. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +4 -4
  283. package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -1
  284. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +3 -1
  285. package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -1
  286. package/dist/data-table-explorer/DataTableExplorerPageClient.js +3 -1
  287. package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -1
  288. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +3 -2
  289. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -1
  290. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +3 -3
  291. package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -1
  292. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
  293. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +7 -4
  294. package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
  295. package/dist/data-table-explorer/dataTableExplorerController.d.ts +58 -2
  296. package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
  297. package/dist/data-table-explorer/dataTableExplorerController.js +68 -8
  298. package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
  299. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +23 -1
  300. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -1
  301. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +46 -13
  302. package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -1
  303. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +17 -3
  304. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -1
  305. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +9 -6
  306. package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -1
  307. package/dist/data-table-explorer/types.d.ts +10 -0
  308. package/dist/data-table-explorer/types.d.ts.map +1 -1
  309. package/dist/data-table-explorer/types.js.map +1 -1
  310. package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
  311. package/dist/data-table-explorer/useDataTableExplorer.js +10 -6
  312. package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
  313. package/dist/data-table-explorer/utils.d.ts +64 -6
  314. package/dist/data-table-explorer/utils.d.ts.map +1 -1
  315. package/dist/data-table-explorer/utils.js +58 -0
  316. package/dist/data-table-explorer/utils.js.map +1 -1
  317. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
  318. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +2 -2
  319. package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
  320. package/dist/index.d.ts +49 -29
  321. package/dist/index.d.ts.map +1 -1
  322. package/dist/index.js +81 -25
  323. package/dist/index.js.map +1 -1
  324. package/dist/mosaicTableReference.d.ts +59 -0
  325. package/dist/mosaicTableReference.d.ts.map +1 -0
  326. package/dist/mosaicTableReference.js +68 -0
  327. package/dist/mosaicTableReference.js.map +1 -0
  328. package/dist/useVgPlotChartRender.d.ts.map +1 -1
  329. package/dist/useVgPlotChartRender.js +26 -1
  330. package/dist/useVgPlotChartRender.js.map +1 -1
  331. package/dist/utils/table-lookup.d.ts +7 -0
  332. package/dist/utils/table-lookup.d.ts.map +1 -0
  333. package/dist/utils/table-lookup.js +10 -0
  334. package/dist/utils/table-lookup.js.map +1 -0
  335. package/package.json +14 -14
  336. package/dist/ai/ai.d.ts +0 -108
  337. package/dist/ai/ai.d.ts.map +0 -1
  338. package/dist/ai/ai.js +0 -461
  339. package/dist/ai/ai.js.map +0 -1
  340. package/dist/ai/data-table-explorer-tool.d.ts +0 -40
  341. package/dist/ai/data-table-explorer-tool.d.ts.map +0 -1
  342. package/dist/ai/data-table-explorer-tool.js +0 -75
  343. package/dist/ai/data-table-explorer-tool.js.map +0 -1
  344. package/dist/ai/list-panels-tool.d.ts +0 -35
  345. package/dist/ai/list-panels-tool.d.ts.map +0 -1
  346. package/dist/ai/list-panels-tool.js +0 -66
  347. package/dist/ai/list-panels-tool.js.map +0 -1
  348. package/dist/ai/remove-panel-tool.d.ts +0 -31
  349. package/dist/ai/remove-panel-tool.d.ts.map +0 -1
  350. package/dist/ai/remove-panel-tool.js +0 -55
  351. package/dist/ai/remove-panel-tool.js.map +0 -1
  352. package/dist/ai/tool-validation.d.ts +0 -3
  353. package/dist/ai/tool-validation.d.ts.map +0 -1
  354. package/dist/ai/tool-validation.js +0 -11
  355. package/dist/ai/tool-validation.js.map +0 -1
  356. package/dist/components/Combobox.d.ts +0 -45
  357. package/dist/components/Combobox.d.ts.map +0 -1
  358. package/dist/components/Combobox.js +0 -58
  359. package/dist/components/Combobox.js.map +0 -1
  360. package/dist/components/useCombobox.d.ts +0 -23
  361. package/dist/components/useCombobox.d.ts.map +0 -1
  362. package/dist/components/useCombobox.js +0 -26
  363. package/dist/components/useCombobox.js.map +0 -1
@@ -0,0 +1,55 @@
1
+ import { createChartTools } from '../../charts/chart-types';
2
+ import { createMosaicDashboardChartPanelConfig } from '../../dashboard/MosaicDashboardSlice';
3
+ import { DEFAULT_CHART_MAX_DATA_POINTS } from '../../chart-runtime';
4
+ import { resolveChartTypes } from '../../charts/chart-types/resolveChartTypes';
5
+ import { DASHBOARD_CHART_TOOL_PREFIX } from './constants';
6
+ import { MOSAIC_DASHBOARD_CHART_PANEL_TYPE } from '../../dashboard/dashboard-types';
7
+ import { getMosaicTableIdentity } from '../../mosaicTableReference';
8
+ /**
9
+ * Creates AI tools for generating chart panels in dashboards.
10
+ *
11
+ * @param params - Configuration parameters for chart tool creation
12
+ * @param params.databaseAdapter - Adapter for database operations
13
+ * @param params.dashboardAdapter - Adapter for dashboard panel management
14
+ * @param params.chartToolsOptions - Optional chart configuration options
15
+ * @returns Record of chart tool names to Tool instances, prefixed with dashboard-specific identifiers
16
+ */
17
+ export function createDashboardChartTools({ databaseAdapter, dashboardAdapter, chartToolsOptions, }) {
18
+ const resolvedChartTypes = resolveChartTypes(chartToolsOptions?.chartTypes);
19
+ const chartToolParams = {
20
+ maxDataPoints: chartToolsOptions?.chartMaxDataPoints ?? DEFAULT_CHART_MAX_DATA_POINTS,
21
+ databaseAdapter,
22
+ addChart: async ({ config, tableName, title, panelId }) => {
23
+ let panelTitle;
24
+ if (panelId) {
25
+ const panel = dashboardAdapter.getPanel(panelId);
26
+ if (!panel) {
27
+ throw new Error(`Panel "${panelId}" not found.`);
28
+ }
29
+ if (panel.type !== MOSAIC_DASHBOARD_CHART_PANEL_TYPE) {
30
+ throw new Error(`Panel "${panelId}" is not a chart panel. Cannot update it with a chart tool.`);
31
+ }
32
+ panelTitle = panel.title;
33
+ }
34
+ const resolvedTable = tableName
35
+ ? databaseAdapter.findTable(tableName)
36
+ : undefined;
37
+ const selectedTableIdentity = resolvedTable?.table
38
+ ? getMosaicTableIdentity(resolvedTable.table)
39
+ : undefined;
40
+ if (selectedTableIdentity) {
41
+ await dashboardAdapter.setSelectedTable(selectedTableIdentity);
42
+ }
43
+ if (panelId) {
44
+ await dashboardAdapter.updatePanel(panelId, {
45
+ title: title ?? panelTitle,
46
+ config,
47
+ });
48
+ return panelId;
49
+ }
50
+ return await dashboardAdapter.addPanel(createMosaicDashboardChartPanelConfig(title ?? 'Chart', config));
51
+ },
52
+ };
53
+ return createChartTools(resolvedChartTypes, chartToolParams, DASHBOARD_CHART_TOOL_PREFIX);
54
+ }
55
+ //# sourceMappingURL=createDashboardChartTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDashboardChartTools.js","sourceRoot":"","sources":["../../../src/ai/dashboard/createDashboardChartTools.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAkB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAC,qCAAqC,EAAC,MAAM,sCAAsC,CAAC;AAI3F,OAAO,EAAC,6BAA6B,EAAC,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAC,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAC,2BAA2B,EAAC,MAAM,aAAa,CAAC;AACxD,OAAO,EAAC,iCAAiC,EAAC,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAelE;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GACe;IAChC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAE5E,MAAM,eAAe,GAAoB;QACvC,aAAa,EACX,iBAAiB,EAAE,kBAAkB,IAAI,6BAA6B;QACxE,eAAe;QACf,QAAQ,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAC,EAAE,EAAE;YACtD,IAAI,UAA8B,CAAC;YACnC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,cAAc,CAAC,CAAC;gBACnD,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,iCAAiC,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,6DAA6D,CAC/E,CAAC;gBACJ,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAC3B,CAAC;YAED,MAAM,aAAa,GAAG,SAAS;gBAC7B,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC;gBACtC,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,qBAAqB,GAAG,aAAa,EAAE,KAAK;gBAChD,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC7C,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE;oBAC1C,KAAK,EAAE,KAAK,IAAI,UAAU;oBAC1B,MAAM;iBACP,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,OAAO,MAAM,gBAAgB,CAAC,QAAQ,CACpC,qCAAqC,CAAC,KAAK,IAAI,OAAO,EAAE,MAAM,CAAC,CAChE,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,OAAO,gBAAgB,CACrB,kBAAkB,EAClB,eAAe,EACf,2BAA2B,CAC5B,CAAC;AACJ,CAAC","sourcesContent":["import type {Tool} from 'ai';\nimport {createChartTools, ChartToolParams} from '../../charts/chart-types';\n\nimport {createMosaicDashboardChartPanelConfig} from '../../dashboard/MosaicDashboardSlice';\nimport {DatabaseAiAdapter} from '../database-types';\nimport {DashboardAiAdapter} from './dashboard-types';\nimport {ChartToolsOptions} from '../types';\nimport {DEFAULT_CHART_MAX_DATA_POINTS} from '../../chart-runtime';\nimport {resolveChartTypes} from '../../charts/chart-types/resolveChartTypes';\nimport {DASHBOARD_CHART_TOOL_PREFIX} from './constants';\nimport {MOSAIC_DASHBOARD_CHART_PANEL_TYPE} from '../../dashboard/dashboard-types';\nimport {getMosaicTableIdentity} from '../../mosaicTableReference';\n\n/**\n * Parameters for creating dashboard chart tools.\n *\n * @property databaseAdapter - Adapter for database operations and table queries\n * @property dashboardAdapter - Adapter for adding panels to the dashboard\n * @property chartToolsOptions - Optional configuration for chart types and data point limits\n */\nexport type CreateDashboardChartToolsParams = {\n databaseAdapter: DatabaseAiAdapter;\n dashboardAdapter: DashboardAiAdapter;\n chartToolsOptions?: ChartToolsOptions;\n};\n\n/**\n * Creates AI tools for generating chart panels in dashboards.\n *\n * @param params - Configuration parameters for chart tool creation\n * @param params.databaseAdapter - Adapter for database operations\n * @param params.dashboardAdapter - Adapter for dashboard panel management\n * @param params.chartToolsOptions - Optional chart configuration options\n * @returns Record of chart tool names to Tool instances, prefixed with dashboard-specific identifiers\n */\nexport function createDashboardChartTools({\n databaseAdapter,\n dashboardAdapter,\n chartToolsOptions,\n}: CreateDashboardChartToolsParams): Record<string, Tool> {\n const resolvedChartTypes = resolveChartTypes(chartToolsOptions?.chartTypes);\n\n const chartToolParams: ChartToolParams = {\n maxDataPoints:\n chartToolsOptions?.chartMaxDataPoints ?? DEFAULT_CHART_MAX_DATA_POINTS,\n databaseAdapter,\n addChart: async ({config, tableName, title, panelId}) => {\n let panelTitle: string | undefined;\n if (panelId) {\n const panel = dashboardAdapter.getPanel(panelId);\n if (!panel) {\n throw new Error(`Panel \"${panelId}\" not found.`);\n }\n if (panel.type !== MOSAIC_DASHBOARD_CHART_PANEL_TYPE) {\n throw new Error(\n `Panel \"${panelId}\" is not a chart panel. Cannot update it with a chart tool.`,\n );\n }\n panelTitle = panel.title;\n }\n\n const resolvedTable = tableName\n ? databaseAdapter.findTable(tableName)\n : undefined;\n const selectedTableIdentity = resolvedTable?.table\n ? getMosaicTableIdentity(resolvedTable.table)\n : undefined;\n\n if (selectedTableIdentity) {\n await dashboardAdapter.setSelectedTable(selectedTableIdentity);\n }\n\n if (panelId) {\n await dashboardAdapter.updatePanel(panelId, {\n title: title ?? panelTitle,\n config,\n });\n return panelId;\n }\n\n return await dashboardAdapter.addPanel(\n createMosaicDashboardChartPanelConfig(title ?? 'Chart', config),\n );\n },\n };\n\n return createChartTools(\n resolvedChartTypes,\n chartToolParams,\n DASHBOARD_CHART_TOOL_PREFIX,\n );\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import type { Tool } from 'ai';
2
+ import { DatabaseAiAdapter } from '../database-types';
3
+ import { DashboardAiAdapter } from './dashboard-types';
4
+ /**
5
+ * Parameters for creating a dashboard data table explorer tool.
6
+ *
7
+ * @property databaseAdapter - Adapter for database operations and table queries
8
+ * @property dashboardAdapter - Adapter for adding panels to the dashboard
9
+ */
10
+ export type CreateDashboardDataTableExplorerToolParams = {
11
+ databaseAdapter: DatabaseAiAdapter;
12
+ dashboardAdapter: DashboardAiAdapter;
13
+ };
14
+ /**
15
+ * Creates an AI tool for generating Data Table Explorer panels in dashboards.
16
+ *
17
+ * @param params - Configuration parameters
18
+ * @param params.databaseAdapter - Adapter for database operations
19
+ * @param params.dashboardAdapter - Adapter for dashboard panel management
20
+ * @returns Tool instance for creating data table explorer panels with schema and statistics
21
+ */
22
+ export declare function createDashboardDataTableExplorerTool({ dashboardAdapter, databaseAdapter, }: CreateDashboardDataTableExplorerToolParams): Tool;
23
+ //# sourceMappingURL=createDashboardDataTableExplorerTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDashboardDataTableExplorerTool.d.ts","sourceRoot":"","sources":["../../../src/ai/dashboard/createDashboardDataTableExplorerTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAI7B,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAIrD;;;;;GAKG;AACH,MAAM,MAAM,0CAA0C,GAAG;IACvD,eAAe,EAAE,iBAAiB,CAAC;IACnC,gBAAgB,EAAE,kBAAkB,CAAC;CACtC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAAC,EACnD,gBAAgB,EAChB,eAAe,GAChB,EAAE,0CAA0C,GAAG,IAAI,CAoBnD"}
@@ -0,0 +1,29 @@
1
+ import { createDataTableExplorerTool } from '../createDataTableExplorerTool';
2
+ import { createMosaicDashboardDataTableExplorerPanelConfig } from '../../dashboard/MosaicDashboardSlice';
3
+ import { getMosaicTableIdentity } from '../../mosaicTableReference';
4
+ import { ensureTable } from '../tool-helpers';
5
+ /**
6
+ * Creates an AI tool for generating Data Table Explorer panels in dashboards.
7
+ *
8
+ * @param params - Configuration parameters
9
+ * @param params.databaseAdapter - Adapter for database operations
10
+ * @param params.dashboardAdapter - Adapter for dashboard panel management
11
+ * @returns Tool instance for creating data table explorer panels with schema and statistics
12
+ */
13
+ export function createDashboardDataTableExplorerTool({ dashboardAdapter, databaseAdapter, }) {
14
+ return createDataTableExplorerTool({
15
+ databaseAdapter,
16
+ addDataTable: async ({ tableName, title }) => {
17
+ const resolvedTable = tableName
18
+ ? ensureTable(databaseAdapter, tableName)
19
+ : undefined;
20
+ if (resolvedTable?.table) {
21
+ await dashboardAdapter.setSelectedTable(getMosaicTableIdentity(resolvedTable.table));
22
+ }
23
+ return dashboardAdapter.addPanel(createMosaicDashboardDataTableExplorerPanelConfig({
24
+ title,
25
+ }));
26
+ },
27
+ });
28
+ }
29
+ //# sourceMappingURL=createDashboardDataTableExplorerTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDashboardDataTableExplorerTool.js","sourceRoot":"","sources":["../../../src/ai/dashboard/createDashboardDataTableExplorerTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAC,iDAAiD,EAAC,MAAM,sCAAsC,CAAC;AAGvG,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAa5C;;;;;;;GAOG;AACH,MAAM,UAAU,oCAAoC,CAAC,EACnD,gBAAgB,EAChB,eAAe,GAC4B;IAC3C,OAAO,2BAA2B,CAAC;QACjC,eAAe;QACf,YAAY,EAAE,KAAK,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,EAAE,EAAE;YACzC,MAAM,aAAa,GAAG,SAAS;gBAC7B,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC;YACd,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;gBACzB,MAAM,gBAAgB,CAAC,gBAAgB,CACrC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,CAC5C,CAAC;YACJ,CAAC;YAED,OAAO,gBAAgB,CAAC,QAAQ,CAC9B,iDAAiD,CAAC;gBAChD,KAAK;aACN,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type {Tool} from 'ai';\nimport {createDataTableExplorerTool} from '../createDataTableExplorerTool';\n\nimport {createMosaicDashboardDataTableExplorerPanelConfig} from '../../dashboard/MosaicDashboardSlice';\nimport {DatabaseAiAdapter} from '../database-types';\nimport {DashboardAiAdapter} from './dashboard-types';\nimport {getMosaicTableIdentity} from '../../mosaicTableReference';\nimport {ensureTable} from '../tool-helpers';\n\n/**\n * Parameters for creating a dashboard data table explorer tool.\n *\n * @property databaseAdapter - Adapter for database operations and table queries\n * @property dashboardAdapter - Adapter for adding panels to the dashboard\n */\nexport type CreateDashboardDataTableExplorerToolParams = {\n databaseAdapter: DatabaseAiAdapter;\n dashboardAdapter: DashboardAiAdapter;\n};\n\n/**\n * Creates an AI tool for generating Data Table Explorer panels in dashboards.\n *\n * @param params - Configuration parameters\n * @param params.databaseAdapter - Adapter for database operations\n * @param params.dashboardAdapter - Adapter for dashboard panel management\n * @returns Tool instance for creating data table explorer panels with schema and statistics\n */\nexport function createDashboardDataTableExplorerTool({\n dashboardAdapter,\n databaseAdapter,\n}: CreateDashboardDataTableExplorerToolParams): Tool {\n return createDataTableExplorerTool({\n databaseAdapter,\n addDataTable: async ({tableName, title}) => {\n const resolvedTable = tableName\n ? ensureTable(databaseAdapter, tableName)\n : undefined;\n if (resolvedTable?.table) {\n await dashboardAdapter.setSelectedTable(\n getMosaicTableIdentity(resolvedTable.table),\n );\n }\n\n return dashboardAdapter.addPanel(\n createMosaicDashboardDataTableExplorerPanelConfig({\n title,\n }),\n );\n },\n });\n}\n"]}
@@ -0,0 +1,28 @@
1
+ import type { MosaicDashboardPanelConfig } from '../../dashboard/dashboard-types';
2
+ import type { ChartRuntimeIssue } from '../../chart-runtime';
3
+ import type { ToolOutput } from '../tool-types';
4
+ import type { DashboardAiAdapter } from './dashboard-types';
5
+ type DashboardPanelSummary = {
6
+ id: string;
7
+ type: string;
8
+ title: string;
9
+ config: MosaicDashboardPanelConfig['config'];
10
+ issue?: ChartRuntimeIssue;
11
+ };
12
+ type ListDashboardPanelsToolOutput = ToolOutput<{
13
+ selectedTable?: string;
14
+ panels?: DashboardPanelSummary[];
15
+ }>;
16
+ export type CreateListDashboardPanelsToolOptions = {
17
+ /** Adapter for dashboard operations */
18
+ dashboardAdapter: DashboardAiAdapter;
19
+ };
20
+ /**
21
+ * Creates a tool for inspecting the current dashboard's selected table,
22
+ * panels, and panel runtime issues.
23
+ */
24
+ export declare function createListDashboardPanelsTool({ dashboardAdapter, }: CreateListDashboardPanelsToolOptions): import("ai").Tool<{
25
+ reasoning?: string | undefined;
26
+ }, ListDashboardPanelsToolOutput>;
27
+ export {};
28
+ //# sourceMappingURL=createListDashboardPanelsTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createListDashboardPanelsTool.d.ts","sourceRoot":"","sources":["../../../src/ai/dashboard/createListDashboardPanelsTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAa1D,KAAK,qBAAqB,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B,CAAC;AAEF,KAAK,6BAA6B,GAAG,UAAU,CAAC;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,MAAM,oCAAoC,GAAG;IACjD,uCAAuC;IACvC,gBAAgB,EAAE,kBAAkB,CAAC;CACtC,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,gBAAgB,GACjB,EAAE,oCAAoC;;kCAkCtC"}
@@ -0,0 +1,54 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ const ListDashboardPanelsToolInput = z.object({
4
+ reasoning: z
5
+ .string()
6
+ .optional()
7
+ .describe('Brief rationale for inspecting dashboard panels.'),
8
+ });
9
+ function summarizePanel(panel, getPanelIssue) {
10
+ const issue = getPanelIssue?.(panel.id);
11
+ return {
12
+ id: panel.id,
13
+ type: panel.type,
14
+ title: panel.title,
15
+ config: panel.config,
16
+ ...(issue !== undefined ? { issue } : {}),
17
+ };
18
+ }
19
+ /**
20
+ * Creates a tool for inspecting the current dashboard's selected table,
21
+ * panels, and panel runtime issues.
22
+ */
23
+ export function createListDashboardPanelsTool({ dashboardAdapter, }) {
24
+ return tool({
25
+ description: `List panels in the current dashboard, including the selected table and any panel runtime issues.
26
+
27
+ Use this before updating existing dashboard panels, when deciding which table the dashboard currently targets, and after creating map panels to check for render issues.`,
28
+ inputSchema: ListDashboardPanelsToolInput,
29
+ execute: async () => {
30
+ try {
31
+ const panels = dashboardAdapter.getPanels?.();
32
+ if (!panels) {
33
+ return {
34
+ success: false,
35
+ errorMessage: 'Dashboard adapter does not support listing panels.',
36
+ };
37
+ }
38
+ const selectedTable = dashboardAdapter.getSelectedTable?.();
39
+ return {
40
+ success: true,
41
+ ...(selectedTable !== undefined ? { selectedTable } : {}),
42
+ panels: panels.map((panel) => summarizePanel(panel, dashboardAdapter.getPanelIssue)),
43
+ };
44
+ }
45
+ catch (error) {
46
+ return {
47
+ success: false,
48
+ errorMessage: error instanceof Error ? error.message : String(error),
49
+ };
50
+ }
51
+ },
52
+ });
53
+ }
54
+ //# sourceMappingURL=createListDashboardPanelsTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createListDashboardPanelsTool.js","sourceRoot":"","sources":["../../../src/ai/dashboard/createListDashboardPanelsTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AACxB,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAMtB,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;CAChE,CAAC,CAAC;AAwBH,SAAS,cAAc,CACrB,KAAiC,EACjC,aAAmD;IAEnD,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAExC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,gBAAgB,GACqB;IACrC,OAAO,IAAI,CAA8D;QACvE,WAAW,EAAE;;yKAEwJ;QACrK,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;gBAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,YAAY,EAAE,oDAAoD;qBACnE,CAAC;gBACJ,CAAC;gBAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,CAAC;gBAE5D,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,CAAC,CACtD;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACrE,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {tool} from 'ai';\nimport {z} from 'zod';\nimport type {MosaicDashboardPanelConfig} from '../../dashboard/dashboard-types';\nimport type {ChartRuntimeIssue} from '../../chart-runtime';\nimport type {ToolOutput} from '../tool-types';\nimport type {DashboardAiAdapter} from './dashboard-types';\n\nconst ListDashboardPanelsToolInput = z.object({\n reasoning: z\n .string()\n .optional()\n .describe('Brief rationale for inspecting dashboard panels.'),\n});\n\ntype ListDashboardPanelsToolInput = z.infer<\n typeof ListDashboardPanelsToolInput\n>;\n\ntype DashboardPanelSummary = {\n id: string;\n type: string;\n title: string;\n config: MosaicDashboardPanelConfig['config'];\n issue?: ChartRuntimeIssue;\n};\n\ntype ListDashboardPanelsToolOutput = ToolOutput<{\n selectedTable?: string;\n panels?: DashboardPanelSummary[];\n}>;\n\nexport type CreateListDashboardPanelsToolOptions = {\n /** Adapter for dashboard operations */\n dashboardAdapter: DashboardAiAdapter;\n};\n\nfunction summarizePanel(\n panel: MosaicDashboardPanelConfig,\n getPanelIssue?: DashboardAiAdapter['getPanelIssue'],\n): DashboardPanelSummary {\n const issue = getPanelIssue?.(panel.id);\n\n return {\n id: panel.id,\n type: panel.type,\n title: panel.title,\n config: panel.config,\n ...(issue !== undefined ? {issue} : {}),\n };\n}\n\n/**\n * Creates a tool for inspecting the current dashboard's selected table,\n * panels, and panel runtime issues.\n */\nexport function createListDashboardPanelsTool({\n dashboardAdapter,\n}: CreateListDashboardPanelsToolOptions) {\n return tool<ListDashboardPanelsToolInput, ListDashboardPanelsToolOutput>({\n description: `List panels in the current dashboard, including the selected table and any panel runtime issues.\n\nUse this before updating existing dashboard panels, when deciding which table the dashboard currently targets, and after creating map panels to check for render issues.`,\n inputSchema: ListDashboardPanelsToolInput,\n execute: async () => {\n try {\n const panels = dashboardAdapter.getPanels?.();\n\n if (!panels) {\n return {\n success: false,\n errorMessage: 'Dashboard adapter does not support listing panels.',\n };\n }\n\n const selectedTable = dashboardAdapter.getSelectedTable?.();\n\n return {\n success: true,\n ...(selectedTable !== undefined ? {selectedTable} : {}),\n panels: panels.map((panel) =>\n summarizePanel(panel, dashboardAdapter.getPanelIssue),\n ),\n };\n } catch (error) {\n return {\n success: false,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n },\n });\n}\n"]}
@@ -0,0 +1,59 @@
1
+ import type { PanelPatch } from '../../charts/chart-types/base-types';
2
+ import type { MosaicDashboardPanelConfig } from '../../dashboard/dashboard-types';
3
+ import type { ChartRuntimeIssue } from '../../chart-runtime';
4
+ import type { BaseAgentToolOptions } from '../types';
5
+ import { DatabaseAiAdapter } from '../database-types';
6
+ import { Tool } from 'ai';
7
+ import { AgentResultMetadata } from '../tool-types';
8
+ /**
9
+ * Dashboard adapter with full dashboard panel management capabilities.
10
+ * Extends BaseAiAdapter with dashboard-specific operations.
11
+ */
12
+ export type DashboardAiAdapter = {
13
+ getPanelIssue?: (panelId: string) => ChartRuntimeIssue | undefined;
14
+ getSelectedTable?: () => string | undefined;
15
+ getPanels?: () => MosaicDashboardPanelConfig[];
16
+ setSelectedTable: (tableName: string) => void | Promise<void>;
17
+ getPanel(panelId: string): MosaicDashboardPanelConfig | undefined;
18
+ updatePanel(panelId: string, patch: Partial<PanelPatch>): void | Promise<void>;
19
+ removePanel(panelId: string): void | Promise<void>;
20
+ addPanel(panel: MosaicDashboardPanelConfig): string | Promise<string>;
21
+ };
22
+ /**
23
+ * Result returned by the dashboard agent after completing a task.
24
+ * Contains execution status, final output, and optional metadata about the run.
25
+ */
26
+ export type DashboardAgentResult = {
27
+ success: boolean;
28
+ finalOutput: string;
29
+ dashboardId: string;
30
+ error?: string;
31
+ metadata?: AgentResultMetadata;
32
+ };
33
+ /**
34
+ * Parameters passed to extra dashboard AI tools factory.
35
+ * Provides adapters for dashboard and database operations.
36
+ */
37
+ export type ExtraDashboardAiToolsParams = {
38
+ dashboardAdapter: DashboardAiAdapter;
39
+ databaseAdapter: DatabaseAiAdapter;
40
+ };
41
+ /**
42
+ * Factory function for creating additional dashboard AI tools.
43
+ * Allows hosts to register custom tools that extend the dashboard agent's capabilities.
44
+ */
45
+ export type ExtraDashboardAiToolsFactory = (params: ExtraDashboardAiToolsParams) => Record<string, Tool>;
46
+ /**
47
+ * Options for creating a dashboard agent tool.
48
+ * Extends base agent options with dashboard-specific database adapter and optional extra tools.
49
+ */
50
+ export type CreateDashboardAgentToolOptions<TState> = BaseAgentToolOptions<TState> & {
51
+ databaseAdapter: DatabaseAiAdapter;
52
+ /**
53
+ * Host-provided dashboard tools keyed by their registered tool name.
54
+ * Register geospatial map tools under MAP_TOOL_KEY so prompts and tools
55
+ * stay in sync.
56
+ */
57
+ extraTools?: ExtraDashboardAiToolsFactory;
58
+ };
59
+ //# sourceMappingURL=dashboard-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-types.d.ts","sourceRoot":"","sources":["../../../src/ai/dashboard/dashboard-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,UAAU,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AACxB,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IACnE,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,0BAA0B,EAAE,CAAC;IAC/C,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS,CAAC;IAClE,WAAW,CACT,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,gBAAgB,EAAE,kBAAkB,CAAC;IACrC,eAAe,EAAE,iBAAiB,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,CACzC,MAAM,EAAE,2BAA2B,KAChC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE1B;;;GAGG;AACH,MAAM,MAAM,+BAA+B,CAAC,MAAM,IAChD,oBAAoB,CAAC,MAAM,CAAC,GAAG;IAC7B,eAAe,EAAE,iBAAiB,CAAC;IACnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,4BAA4B,CAAC;CAC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dashboard-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-types.js","sourceRoot":"","sources":["../../../src/ai/dashboard/dashboard-types.ts"],"names":[],"mappings":"","sourcesContent":["import type {PanelPatch} from '../../charts/chart-types/base-types';\nimport type {MosaicDashboardPanelConfig} from '../../dashboard/dashboard-types';\nimport type {ChartRuntimeIssue} from '../../chart-runtime';\nimport type {BaseAgentToolOptions} from '../types';\nimport {DatabaseAiAdapter} from '../database-types';\nimport {Tool} from 'ai';\nimport {AgentResultMetadata} from '../tool-types';\n\n/**\n * Dashboard adapter with full dashboard panel management capabilities.\n * Extends BaseAiAdapter with dashboard-specific operations.\n */\nexport type DashboardAiAdapter = {\n getPanelIssue?: (panelId: string) => ChartRuntimeIssue | undefined;\n getSelectedTable?: () => string | undefined;\n getPanels?: () => MosaicDashboardPanelConfig[];\n setSelectedTable: (tableName: string) => void | Promise<void>;\n getPanel(panelId: string): MosaicDashboardPanelConfig | undefined;\n updatePanel(\n panelId: string,\n patch: Partial<PanelPatch>,\n ): void | Promise<void>;\n removePanel(panelId: string): void | Promise<void>;\n addPanel(panel: MosaicDashboardPanelConfig): string | Promise<string>;\n};\n\n/**\n * Result returned by the dashboard agent after completing a task.\n * Contains execution status, final output, and optional metadata about the run.\n */\nexport type DashboardAgentResult = {\n success: boolean;\n finalOutput: string;\n dashboardId: string;\n error?: string;\n metadata?: AgentResultMetadata;\n};\n\n/**\n * Parameters passed to extra dashboard AI tools factory.\n * Provides adapters for dashboard and database operations.\n */\nexport type ExtraDashboardAiToolsParams = {\n dashboardAdapter: DashboardAiAdapter;\n databaseAdapter: DatabaseAiAdapter;\n};\n\n/**\n * Factory function for creating additional dashboard AI tools.\n * Allows hosts to register custom tools that extend the dashboard agent's capabilities.\n */\nexport type ExtraDashboardAiToolsFactory = (\n params: ExtraDashboardAiToolsParams,\n) => Record<string, Tool>;\n\n/**\n * Options for creating a dashboard agent tool.\n * Extends base agent options with dashboard-specific database adapter and optional extra tools.\n */\nexport type CreateDashboardAgentToolOptions<TState> =\n BaseAgentToolOptions<TState> & {\n databaseAdapter: DatabaseAiAdapter;\n /**\n * Host-provided dashboard tools keyed by their registered tool name.\n * Register geospatial map tools under MAP_TOOL_KEY so prompts and tools\n * stay in sync.\n */\n extraTools?: ExtraDashboardAiToolsFactory;\n };\n"]}
@@ -0,0 +1,12 @@
1
+ import type { DataTable, QualifiedTableName } from '@sqlrooms/db';
2
+ /**
3
+ * Database-specific AI adapter interface.
4
+ * Provides access to tables and database queries for AI tools.
5
+ */
6
+ export type DatabaseAiAdapter = {
7
+ /** Get all available tables */
8
+ getTables: () => DataTable[];
9
+ /** Find table by name, returns undefined if not found */
10
+ findTable(tableName: string | QualifiedTableName): DataTable | undefined;
11
+ };
12
+ //# sourceMappingURL=database-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-types.d.ts","sourceRoot":"","sources":["../../src/ai/database-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,SAAS,EAAE,CAAC;IAE7B,yDAAyD;IACzD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,GAAG,SAAS,CAAC;CAC1E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=database-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-types.js","sourceRoot":"","sources":["../../src/ai/database-types.ts"],"names":[],"mappings":"","sourcesContent":["import type {DataTable, QualifiedTableName} from '@sqlrooms/db';\n\n/**\n * Database-specific AI adapter interface.\n * Provides access to tables and database queries for AI tools.\n */\nexport type DatabaseAiAdapter = {\n /** Get all available tables */\n getTables: () => DataTable[];\n\n /** Find table by name, returns undefined if not found */\n findTable(tableName: string | QualifiedTableName): DataTable | undefined;\n};\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Error thrown by AI agents when validation or execution fails.
3
+ * Used for reporting issues like missing tables, invalid columns, or constraint violations.
4
+ */
5
+ export declare class AiAgentError extends Error {
6
+ constructor(message: string);
7
+ }
8
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Error thrown by AI agents when validation or execution fails.
3
+ * Used for reporting issues like missing tables, invalid columns, or constraint violations.
4
+ */
5
+ export class AiAgentError extends Error {
6
+ constructor(message) {
7
+ super(message);
8
+ this.name = 'AiAgentError';
9
+ }
10
+ }
11
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF","sourcesContent":["/**\n * Error thrown by AI agents when validation or execution fails.\n * Used for reporting issues like missing tables, invalid columns, or constraint violations.\n */\nexport class AiAgentError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'AiAgentError';\n }\n}\n"]}
@@ -1,34 +1,33 @@
1
- import type { DashboardToolDeps } from '../charts/chart-types/base-types';
2
- import type { DataTableExplorerPanelConfig } from '../dashboard/core-types';
3
- import type { ChartConfig } from '../charts/chart-types/chart-config';
4
- export interface PanelResult {
5
- panelId: string;
6
- artifactId: string;
7
- title: string;
8
- config: ChartConfig | DataTableExplorerPanelConfig;
9
- }
10
- export interface CreateOrUpdateChartPanelParams {
11
- panelId?: string;
12
- dashboardId: string;
13
- tableName: string;
14
- title: string;
15
- config: ChartConfig;
16
- }
17
- export interface CreateOrUpdateDataTableExplorerPanelParams {
18
- panelId?: string;
19
- dashboardId: string;
20
- tableName: string;
21
- title: string;
22
- config: DataTableExplorerPanelConfig;
23
- }
1
+ import { MosaicDashboardPanelConfig } from '../dashboard/dashboard-types';
2
+ import { DashboardAiAdapter } from './dashboard/dashboard-types';
3
+ import { DataTable } from '@sqlrooms/duckdb';
4
+ import { Tool } from 'ai';
5
+ import { DatabaseAiAdapter } from './database-types';
6
+ import { AgentResultMetadata } from './tool-types';
7
+ import { AgentToolCall } from './types';
24
8
  /**
25
- * Universal helper to create or update a chart panel.
26
- * Handles everything: panel config creation, add/update logic, artifact switching.
27
- * When updating, both source and config are updated to allow changing the data source.
9
+ * Validates that a table exists. Throws if not found.
28
10
  */
29
- export declare function createOrUpdateChartPanel(deps: DashboardToolDeps, params: CreateOrUpdateChartPanelParams): PanelResult;
11
+ export declare function ensureTable(adapter: DatabaseAiAdapter, tableName: string): DataTable;
30
12
  /**
31
- * Universal helper to create or update a dataTableExplorer panel.
13
+ * Validates that a panel exists in a dashboard. Throws if not found.
32
14
  */
33
- export declare function createOrUpdateDataTableExplorerPanel(deps: DashboardToolDeps, params: CreateOrUpdateDataTableExplorerPanelParams): PanelResult;
15
+ export declare function ensurePanel(adapter: DashboardAiAdapter, panelId: string, type?: string): MosaicDashboardPanelConfig;
16
+ /**
17
+ * Validates that extra tools do not override built-in tools.
18
+ * Prevents accidental shadowing of core functionality by custom tools.
19
+ *
20
+ * @param builtInTools - Record of built-in tool names to tools
21
+ * @param extraTools - Record of extra tool names to tools being registered
22
+ * @throws {AiAgentError} When a key from extraTools exists in builtInTools
23
+ */
24
+ export declare function ensureNoOverride(builtInTools: Record<string, Tool>, extraTools: Record<string, Tool>): void;
25
+ /**
26
+ * Calculate metadata about agent execution results.
27
+ *
28
+ * @param tableName - Optional table name associated with the agent execution
29
+ * @param agentToolCalls - Array of tool calls made during agent execution
30
+ * @returns Metadata including steps executed and queries run
31
+ */
32
+ export declare function calculateAgentResultMetadata(tableName: string | undefined, agentToolCalls?: AgentToolCall[]): AgentResultMetadata;
34
33
  //# sourceMappingURL=tool-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../src/ai/tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AAMxE,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oCAAoC,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,4BAA4B,CAAC;CACpD;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,0CAA0C;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,4BAA4B,CAAC;CACtC;AAkCD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,8BAA8B,GACrC,WAAW,CAoCb;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,0CAA0C,GACjD,WAAW,CAmCb"}
1
+ {"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../src/ai/tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAC,kBAAkB,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AACxB,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,GAChB,SAAS,CAQX;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GACZ,0BAA0B,CAc5B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,QASjC;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,cAAc,GAAE,aAAa,EAAO,GACnC,mBAAmB,CAOrB"}
@@ -1,93 +1,55 @@
1
- import { createMosaicDashboardChartPanelConfig, createMosaicDashboardDataTableExplorerPanelConfig, } from '../dashboard/MosaicDashboardSlice';
1
+ import { AiAgentError } from './errors';
2
2
  /**
3
- * Validates that a dashboard exists. Throws if not found.
3
+ * Validates that a table exists. Throws if not found.
4
4
  */
5
- function ensureDashboard(deps, dashboardId) {
6
- const dashboard = deps.getDashboard(dashboardId);
7
- if (!dashboard) {
8
- throw new Error(`Dashboard "${dashboardId}" not found. Cannot update panel.`);
5
+ export function ensureTable(adapter, tableName) {
6
+ const table = adapter.findTable(tableName);
7
+ if (!table) {
8
+ throw new AiAgentError(`Table "${tableName}" not found.`);
9
9
  }
10
- return dashboard;
10
+ return table;
11
11
  }
12
12
  /**
13
13
  * Validates that a panel exists in a dashboard. Throws if not found.
14
14
  */
15
- function ensurePanel(dashboard, dashboardId, panelId) {
16
- const panelExists = dashboard.panels.some((p) => p.id === panelId);
17
- if (!panelExists) {
18
- throw new Error(`Panel "${panelId}" not found in dashboard "${dashboardId}". Cannot update.`);
15
+ export function ensurePanel(adapter, panelId, type) {
16
+ const panel = adapter.getPanel(panelId);
17
+ if (!panel) {
18
+ throw new AiAgentError(`Panel not found.`);
19
19
  }
20
+ if (type !== undefined && panel.type !== type) {
21
+ throw new AiAgentError(`Panel is of type "${panel.type}", expected type "${type}".`);
22
+ }
23
+ return panel;
20
24
  }
21
25
  /**
22
- * Universal helper to create or update a chart panel.
23
- * Handles everything: panel config creation, add/update logic, artifact switching.
24
- * When updating, both source and config are updated to allow changing the data source.
26
+ * Validates that extra tools do not override built-in tools.
27
+ * Prevents accidental shadowing of core functionality by custom tools.
28
+ *
29
+ * @param builtInTools - Record of built-in tool names to tools
30
+ * @param extraTools - Record of extra tool names to tools being registered
31
+ * @throws {AiAgentError} When a key from extraTools exists in builtInTools
25
32
  */
26
- export function createOrUpdateChartPanel(deps, params) {
27
- if (params.panelId) {
28
- // Validate panel exists before attempting update
29
- const dashboard = ensureDashboard(deps, params.dashboardId);
30
- ensurePanel(dashboard, params.dashboardId, params.panelId);
31
- // Update existing panel - update both source and config
32
- deps.updatePanel(params.dashboardId, params.panelId, {
33
- title: params.title,
34
- source: { tableName: params.tableName },
35
- config: params.config,
36
- });
37
- return {
38
- panelId: params.panelId,
39
- artifactId: params.dashboardId,
40
- title: params.title,
41
- config: params.config,
42
- };
43
- }
44
- else {
45
- // Create new panel - create config and add to dashboard
46
- const panel = createMosaicDashboardChartPanelConfig(params.title, params.config);
47
- const panelId = deps.addPanel(params.dashboardId, panel);
48
- deps.setCurrentArtifact(params.dashboardId);
49
- return {
50
- panelId,
51
- artifactId: params.dashboardId,
52
- title: params.title,
53
- config: params.config,
54
- };
33
+ export function ensureNoOverride(builtInTools, extraTools) {
34
+ for (const key of Object.keys(extraTools)) {
35
+ if (key in builtInTools) {
36
+ throw new AiAgentError(`Dashboard extraTools cannot override built-in tool "${key}". Register the host tool under a unique key.`);
37
+ }
55
38
  }
56
39
  }
57
40
  /**
58
- * Universal helper to create or update a dataTableExplorer panel.
41
+ * Calculate metadata about agent execution results.
42
+ *
43
+ * @param tableName - Optional table name associated with the agent execution
44
+ * @param agentToolCalls - Array of tool calls made during agent execution
45
+ * @returns Metadata including steps executed and queries run
59
46
  */
60
- export function createOrUpdateDataTableExplorerPanel(deps, params) {
61
- if (params.panelId) {
62
- // Validate panel exists before attempting update
63
- const dashboard = ensureDashboard(deps, params.dashboardId);
64
- ensurePanel(dashboard, params.dashboardId, params.panelId);
65
- deps.updatePanel(params.dashboardId, params.panelId, {
66
- config: params.config,
67
- source: { tableName: params.tableName },
68
- title: params.title,
69
- });
70
- return {
71
- panelId: params.panelId,
72
- artifactId: params.dashboardId,
73
- title: params.title,
74
- config: params.config,
75
- };
76
- }
77
- else {
78
- // Create new panel - create full panel config
79
- const panel = createMosaicDashboardDataTableExplorerPanelConfig({
80
- title: params.title,
81
- config: params.config,
82
- });
83
- const panelId = deps.addPanel(params.dashboardId, panel);
84
- deps.setCurrentArtifact(params.dashboardId);
85
- return {
86
- panelId,
87
- artifactId: params.dashboardId,
88
- title: panel.title,
89
- config: panel.config,
90
- };
91
- }
47
+ export function calculateAgentResultMetadata(tableName, agentToolCalls = []) {
48
+ return {
49
+ tableName,
50
+ stepsExecuted: agentToolCalls.length,
51
+ queriesRun: agentToolCalls.filter((call) => call.toolName === 'query')
52
+ .length,
53
+ };
92
54
  }
93
55
  //# sourceMappingURL=tool-helpers.js.map