@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
package/README.md CHANGED
@@ -172,6 +172,20 @@ renderer for `@sqlrooms/documents` block documents. Register it with a
172
172
  host-provided stateful block type such as `data-table` when a document or
173
173
  worksheet surface should embed an interactive Data Table Explorer directly.
174
174
 
175
+ Use `DataTableSelector` or `DataTableSelectorEmptyState` when another host
176
+ surface needs the same searchable table picker used by dashboards and data
177
+ table blocks.
178
+
179
+ ### Block Document AI Integrations
180
+
181
+ `createBlockDocumentChartTools`, `createAddMosaicDashboardBlockTool`, and
182
+ `createBlockDocumentDataTableExplorerTool` expose Mosaic-owned capabilities for
183
+ block-document hosts. The host provides a `BlockDocumentAiAdapter` from
184
+ `@sqlrooms/documents` plus callbacks for creating host-specific stateful block
185
+ state, then composes these tools with app-specific agent policy. The adapter may
186
+ append blocks through direct slice methods or by awaiting a command-backed
187
+ mutation supplied by the host.
188
+
175
189
  ### Mosaic Dashboard Panels
176
190
 
177
191
  `MosaicDashboard` is a compound dashboard surface backed by generic dashboard
@@ -353,55 +367,90 @@ dashboard slice.
353
367
  ### Dashboard AI Tools
354
368
 
355
369
  `@sqlrooms/mosaic` provides reusable assistant tools for dashboard authoring,
356
- including chart tools, Data Table Explorer/text panel tools, panel management tools, and an
357
- optional exploratory `dashboard_agent`. Client apps supply a small adapter that
358
- maps Mosaic's generic dashboard operations to their store, artifact model, table
359
- metadata, and AI run context. When an AI run context is present, implicit
360
- dashboard targeting should resolve only a primary dashboard context item;
361
- reference-only dashboard artifacts should require an explicit `artifactId`.
370
+ including chart tools, a Data Table Explorer panel tool, and an optional
371
+ exploratory `dashboard_agent`. Client apps supply small adapters that map
372
+ Mosaic's generic dashboard operations to their store and table metadata.
373
+ Agent tools use `intent` for the natural-language objective they should satisfy.
374
+ Mutation callbacks may return promises, so hosts can route dashboard table and
375
+ panel writes through room commands such as `dashboard.set-selected-table`,
376
+ `dashboard.add-panel`, `dashboard.update-panel`, and `dashboard.remove-panel`
377
+ while preserving the reusable Mosaic AI surface.
362
378
 
363
379
  ```ts
364
380
  import {
365
381
  createDashboardAiTools,
366
382
  MAP_TOOL_KEY,
367
383
  type DashboardAiAdapter,
384
+ type DatabaseAiAdapter,
368
385
  } from '@sqlrooms/mosaic';
369
386
 
370
- const adapter: DashboardAiAdapter<AppState> = {
371
- getTables: (state) => state.db.tables,
372
- hasRunContext: (state, context) => hasAiRunContext(context),
373
- resolveContextDashboardArtifactId: (state, context) =>
374
- getPrimaryDashboardArtifactIdFromRunContext(context, state),
375
- makeDashboardPrimaryForRun: (state, artifactId, context) =>
376
- makeArtifactPrimaryForAiRun(artifactId, context),
377
- getCurrentDashboardArtifactId: (state) =>
378
- state.dashboard.getCurrentDashboardArtifactId(),
379
- createDashboardArtifact: (state, title, layoutType) =>
380
- state.dashboard.createDashboardArtifact(title, layoutType),
381
- isDashboardArtifact: (state, artifactId) =>
382
- state.artifacts.getArtifact(artifactId)?.type === 'dashboard',
383
- setCurrentArtifact: (state, artifactId) =>
384
- state.artifacts.setCurrentArtifact(artifactId),
385
- ensureDashboard: (state, dashboardId) =>
386
- state.dashboard.ensureDashboardArtifact(dashboardId),
387
- getDashboard: (state, dashboardId) =>
388
- state.mosaicDashboard.getDashboard(dashboardId),
389
- setSelectedTable: (state, dashboardId, tableName) =>
390
- state.mosaicDashboard.setSelectedTable(dashboardId, tableName),
391
- addPanel: (state, dashboardId, panel) =>
392
- state.mosaicDashboard.addPanel(dashboardId, panel),
393
- updatePanel: (state, dashboardId, panelId, patch) =>
394
- state.mosaicDashboard.updatePanel(dashboardId, panelId, patch),
395
- removePanel: (state, dashboardId, panelId) =>
396
- state.mosaicDashboard.removePanel(dashboardId, panelId),
387
+ const dashboardId = 'dashboard-1';
388
+
389
+ const databaseAdapter: DatabaseAiAdapter = {
390
+ getTables: () => store.getState().db.tables,
391
+ findTable: (tableName) =>
392
+ store.getState().db.tables.find((table) => table.tableName === tableName),
393
+ };
394
+
395
+ const dashboardAdapter: DashboardAiAdapter = {
396
+ getSelectedTable: () =>
397
+ store.getState().mosaicDashboard.getDashboard(dashboardId)?.selectedTable,
398
+ getPanels: () =>
399
+ store.getState().mosaicDashboard.getDashboard(dashboardId)?.panels ?? [],
400
+ setSelectedTable: async (tableName) =>
401
+ store.getState().commands.invokeCommand('dashboard.set-selected-table', {
402
+ dashboardId,
403
+ tableName,
404
+ }),
405
+ addPanel: async (panel) =>
406
+ store.getState().commands.invokeCommand('dashboard.add-panel', {
407
+ dashboardId,
408
+ panel,
409
+ }),
410
+ updatePanel: async (panelId, patch) =>
411
+ store.getState().commands.invokeCommand('dashboard.update-panel', {
412
+ dashboardId,
413
+ panelId,
414
+ patch,
415
+ }),
416
+ removePanel: async (panelId) =>
417
+ store.getState().commands.invokeCommand('dashboard.remove-panel', {
418
+ dashboardId,
419
+ panelId,
420
+ }),
421
+ getPanel: (panelId) =>
422
+ store
423
+ .getState()
424
+ .mosaicDashboard.getDashboard(dashboardId)
425
+ ?.panels.find((panel) => panel.id === panelId),
426
+ getPanelIssue: (panelId) =>
427
+ store.getState().mosaicDashboard.getPanelIssue(dashboardId, panelId),
397
428
  };
398
429
 
399
- const dashboardTools = createDashboardAiTools({store, adapter});
430
+ const dashboardTools = createDashboardAiTools({
431
+ databaseAdapter,
432
+ dashboardAdapter,
433
+ });
400
434
  ```
401
435
 
436
+ Dashboard chart tools create new chart panels by default. When the user asks to
437
+ edit an existing chart, pass that panel's `panelId` to the same chart tool; the
438
+ tool validates that the target is a chart panel and updates its config in place.
439
+ If the tool call omits `title`, updates preserve the panel's existing title
440
+ instead of renaming it to the default chart title.
441
+
402
442
  Host tools can be added with `extraTools`; they must not reuse built-in
403
443
  dashboard tool keys. Register geospatial map tools under `MAP_TOOL_KEY` so the
404
- dashboard prompts and tool registration stay aligned.
444
+ dashboard prompts and tool registration stay aligned. When host tools need
445
+ specialized agent guidance, pass `additionalInstructions` to append that
446
+ guidance after the built-in agent workflow without replacing it.
447
+
448
+ Worksheet agents also accept host tools through `extraTools`. Worksheet extra
449
+ tool factories receive the active `worksheetId` alongside the worksheet and
450
+ database adapters, so host apps can add worksheet-scoped tools such as embedded
451
+ stateful blocks without guessing which worksheet the sub-agent is editing.
452
+ Worksheet block-container tools propagate optional `intent` onto the created
453
+ block when the host adapter persists block document state.
405
454
 
406
455
  ### Box Plot Chart Type
407
456
 
@@ -474,45 +523,6 @@ Available compound components:
474
523
 
475
524
  For simpler use cases, the legacy `ChartBuilderDialog` component is still available but deprecated.
476
525
 
477
- ### Combobox Component
478
-
479
- The package provides a reusable compound `Combobox` component for building searchable select dropdowns. This component is used internally by chart settings fields like `AggregationSelector`, `FieldSelectorInput`, and `TemporalGranularitySelector`.
480
-
481
- ```tsx
482
- import {Combobox} from '@sqlrooms/mosaic';
483
-
484
- function MySelector() {
485
- const [value, setValue] = useState('');
486
-
487
- return (
488
- <Combobox value={value} onChange={setValue}>
489
- <Combobox.Trigger placeholder="Select option..." />
490
- <Combobox.Content>
491
- <Combobox.Search placeholder="Search..." />
492
- <Combobox.Empty>No results found.</Combobox.Empty>
493
- <Combobox.List>
494
- <Combobox.Item value="option1">Option 1</Combobox.Item>
495
- <Combobox.Item value="option2">Option 2</Combobox.Item>
496
- <Combobox.Item value="option3">Option 3</Combobox.Item>
497
- </Combobox.List>
498
- </Combobox.Content>
499
- </Combobox>
500
- );
501
- }
502
- ```
503
-
504
- Available compound components:
505
-
506
- - `Combobox` (root) - Manages state and provides context
507
- - `Combobox.Trigger` - Button to open the dropdown
508
- - `Combobox.Content` - Popover content wrapper
509
- - `Combobox.Search` - Search input field
510
- - `Combobox.Empty` - Empty state message
511
- - `Combobox.List` - Items container
512
- - `Combobox.Item` - Individual selectable item
513
-
514
- For advanced use cases, the underlying `useCombobox` hook is also exported.
515
-
516
526
  ### Working with Selections
517
527
 
518
528
  Selections enable cross-filtering between multiple visualizations. You can get or create a named selection from the store:
@@ -0,0 +1,5 @@
1
+ import { z } from 'zod';
2
+ export declare const AgentIntentSchemaFields: {
3
+ intent: z.ZodString;
4
+ };
5
+ //# sourceMappingURL=agentIntent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentIntent.d.ts","sourceRoot":"","sources":["../../src/ai/agentIntent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,uBAAuB;;CAKnC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ export const AgentIntentSchemaFields = {
3
+ intent: z
4
+ .string()
5
+ .min(1, 'intent cannot be empty')
6
+ .describe('The natural-language objective for the agent to satisfy.'),
7
+ };
8
+ //# sourceMappingURL=agentIntent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentIntent.js","sourceRoot":"","sources":["../../src/ai/agentIntent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;SAChC,QAAQ,CAAC,0DAA0D,CAAC;CACxE,CAAC","sourcesContent":["import {z} from 'zod';\n\nexport const AgentIntentSchemaFields = {\n intent: z\n .string()\n .min(1, 'intent cannot be empty')\n .describe('The natural-language objective for the agent to satisfy.'),\n};\n"]}
@@ -0,0 +1,9 @@
1
+ export declare const BLOCK_DOCUMENT_CHART_TOOL_PREFIX = "create_block_document_chart_";
2
+ /**
3
+ * Known Mosaic block-document AI tool names.
4
+ */
5
+ export declare const KnownMosaicBlockDocumentTools: {
6
+ readonly add_dashboard_block: "add_mosaic_dashboard_block";
7
+ readonly add_data_table_explorer: "add_data_table_explorer_block";
8
+ };
9
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/ai/block-document/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,iCAAiC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;CAGhC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export const BLOCK_DOCUMENT_CHART_TOOL_PREFIX = 'create_block_document_chart_';
2
+ /**
3
+ * Known Mosaic block-document AI tool names.
4
+ */
5
+ export const KnownMosaicBlockDocumentTools = {
6
+ add_dashboard_block: 'add_mosaic_dashboard_block',
7
+ add_data_table_explorer: 'add_data_table_explorer_block',
8
+ };
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/ai/block-document/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,8BAA8B,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,mBAAmB,EAAE,4BAA4B;IACjD,uBAAuB,EAAE,+BAA+B;CAChD,CAAC","sourcesContent":["export const BLOCK_DOCUMENT_CHART_TOOL_PREFIX = 'create_block_document_chart_';\n\n/**\n * Known Mosaic block-document AI tool names.\n */\nexport const KnownMosaicBlockDocumentTools = {\n add_dashboard_block: 'add_mosaic_dashboard_block',\n add_data_table_explorer: 'add_data_table_explorer_block',\n} as const;\n"]}
@@ -0,0 +1,48 @@
1
+ import type { BlockDocumentAiAdapter, BlockDocumentStatefulBlockBlock } from '@sqlrooms/documents';
2
+ import type { ToolOutput } from '../tool-types';
3
+ type AddMosaicDashboardBlockToolOutput = ToolOutput<{
4
+ dashboardId?: string;
5
+ blockId?: string;
6
+ message?: string;
7
+ }>;
8
+ /**
9
+ * Options for creating a Mosaic dashboard block-document tool.
10
+ */
11
+ export type CreateAddMosaicDashboardBlockToolOptions = {
12
+ /** Adapter for block document operations. */
13
+ blockDocumentAdapter: BlockDocumentAiAdapter;
14
+ /** ID of the block document where dashboard blocks will be added. */
15
+ blockDocumentId: string;
16
+ /** Host callback that performs the full durable block creation. */
17
+ addDashboardBlock?: (params: {
18
+ title: string;
19
+ tableName: string;
20
+ intent?: string;
21
+ }) => Promise<{
22
+ dashboardId: string;
23
+ blockId: string;
24
+ }>;
25
+ /** Host callback that creates Mosaic dashboard state and its document block. */
26
+ createDashboardBlock: (params: {
27
+ title: string;
28
+ tableName: string;
29
+ intent?: string;
30
+ }) => {
31
+ dashboardId: string;
32
+ block: BlockDocumentStatefulBlockBlock;
33
+ } | Promise<{
34
+ dashboardId: string;
35
+ block: BlockDocumentStatefulBlockBlock;
36
+ }>;
37
+ };
38
+ /**
39
+ * Creates a tool for adding an empty Mosaic dashboard block to a block document.
40
+ */
41
+ export declare function createAddMosaicDashboardBlockTool({ blockDocumentAdapter, blockDocumentId, addDashboardBlock, createDashboardBlock, }: CreateAddMosaicDashboardBlockToolOptions): import("ai").Tool<{
42
+ reasoning: string;
43
+ dashboardTitle: string;
44
+ tableName: string;
45
+ intent?: string | undefined;
46
+ }, AddMosaicDashboardBlockToolOutput>;
47
+ export {};
48
+ //# sourceMappingURL=createAddMosaicDashboardBlockTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAddMosaicDashboardBlockTool.d.ts","sourceRoot":"","sources":["../../../src/ai/block-document/createAddMosaicDashboardBlockTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAgB9C,KAAK,iCAAiC,GAAG,UAAU,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,wCAAwC,GAAG;IACrD,6CAA6C;IAC7C,oBAAoB,EAAE,sBAAsB,CAAC;IAC7C,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACtD,gFAAgF;IAChF,oBAAoB,EAAE,CAAC,MAAM,EAAE;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KACG;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,+BAA+B,CAAA;KAAC,GAC7D,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,+BAA+B,CAAA;KAAC,CAAC,CAAC;CAC5E,CAAC;AAEF;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACrB,EAAE,wCAAwC;;;;;sCAkD1C"}
@@ -0,0 +1,59 @@
1
+ import { tool } from 'ai';
2
+ import { z } from 'zod';
3
+ const AddMosaicDashboardBlockToolInput = z.object({
4
+ reasoning: z.string().describe('Brief rationale for dashboard block choice.'),
5
+ dashboardTitle: z.string().describe('The title of the dashboard.'),
6
+ tableName: z.string().describe('The name of the table/dataset to analyze.'),
7
+ intent: z
8
+ .string()
9
+ .optional()
10
+ .describe('Optional natural-language objective for this dashboard block.'),
11
+ });
12
+ /**
13
+ * Creates a tool for adding an empty Mosaic dashboard block to a block document.
14
+ */
15
+ export function createAddMosaicDashboardBlockTool({ blockDocumentAdapter, blockDocumentId, addDashboardBlock, createDashboardBlock, }) {
16
+ return tool({
17
+ description: `Create an EMPTY Mosaic dashboard block container in the block document.
18
+
19
+ This tool ONLY creates the container structure. To populate it with charts and panels, use other tools afterward.`,
20
+ inputSchema: AddMosaicDashboardBlockToolInput,
21
+ execute: async ({ dashboardTitle, tableName, intent }) => {
22
+ try {
23
+ if (addDashboardBlock) {
24
+ const result = await addDashboardBlock({
25
+ title: dashboardTitle,
26
+ tableName,
27
+ intent,
28
+ });
29
+ return {
30
+ success: true,
31
+ dashboardId: result.dashboardId,
32
+ blockId: result.blockId,
33
+ message: 'Added Mosaic dashboard block to block document',
34
+ };
35
+ }
36
+ blockDocumentAdapter.ensureBlockDocument(blockDocumentId);
37
+ const { dashboardId, block } = await createDashboardBlock({
38
+ title: dashboardTitle,
39
+ tableName,
40
+ intent,
41
+ });
42
+ const blockId = await blockDocumentAdapter.addBlock(blockDocumentId, block);
43
+ return {
44
+ success: true,
45
+ dashboardId,
46
+ blockId,
47
+ message: 'Added Mosaic dashboard block to block document',
48
+ };
49
+ }
50
+ catch (error) {
51
+ return {
52
+ success: false,
53
+ errorMessage: error instanceof Error ? error.message : String(error),
54
+ };
55
+ }
56
+ },
57
+ });
58
+ }
59
+ //# sourceMappingURL=createAddMosaicDashboardBlockTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAddMosaicDashboardBlockTool.js","sourceRoot":"","sources":["../../../src/ai/block-document/createAddMosaicDashboardBlockTool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AACxB,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC7E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC3E,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;CAC7E,CAAC,CAAC;AAoCH;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,EAChD,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACqB;IACzC,OAAO,IAAI,CAGT;QACA,WAAW,EAAE;;kHAEiG;QAC9G,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,KAAK,EAAE,EAAC,cAAc,EAAE,SAAS,EAAE,MAAM,EAAC,EAAE,EAAE;YACrD,IAAI,CAAC;gBACH,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;wBACrC,KAAK,EAAE,cAAc;wBACrB,SAAS;wBACT,MAAM;qBACP,CAAC,CAAC;oBACH,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,OAAO,EAAE,gDAAgD;qBAC1D,CAAC;gBACJ,CAAC;gBAED,oBAAoB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;gBAC1D,MAAM,EAAC,WAAW,EAAE,KAAK,EAAC,GAAG,MAAM,oBAAoB,CAAC;oBACtD,KAAK,EAAE,cAAc;oBACrB,SAAS;oBACT,MAAM;iBACP,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CACjD,eAAe,EACf,KAAK,CACN,CAAC;gBAEF,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,WAAW;oBACX,OAAO;oBACP,OAAO,EAAE,gDAAgD;iBAC1D,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 type {\n BlockDocumentAiAdapter,\n BlockDocumentStatefulBlockBlock,\n} from '@sqlrooms/documents';\nimport {tool} from 'ai';\nimport {z} from 'zod';\nimport type {ToolOutput} from '../tool-types';\n\nconst AddMosaicDashboardBlockToolInput = z.object({\n reasoning: z.string().describe('Brief rationale for dashboard block choice.'),\n dashboardTitle: z.string().describe('The title of the dashboard.'),\n tableName: z.string().describe('The name of the table/dataset to analyze.'),\n intent: z\n .string()\n .optional()\n .describe('Optional natural-language objective for this dashboard block.'),\n});\n\ntype AddMosaicDashboardBlockToolInput = z.infer<\n typeof AddMosaicDashboardBlockToolInput\n>;\n\ntype AddMosaicDashboardBlockToolOutput = ToolOutput<{\n dashboardId?: string;\n blockId?: string;\n message?: string;\n}>;\n\n/**\n * Options for creating a Mosaic dashboard block-document tool.\n */\nexport type CreateAddMosaicDashboardBlockToolOptions = {\n /** Adapter for block document operations. */\n blockDocumentAdapter: BlockDocumentAiAdapter;\n /** ID of the block document where dashboard blocks will be added. */\n blockDocumentId: string;\n /** Host callback that performs the full durable block creation. */\n addDashboardBlock?: (params: {\n title: string;\n tableName: string;\n intent?: string;\n }) => Promise<{dashboardId: string; blockId: string}>;\n /** Host callback that creates Mosaic dashboard state and its document block. */\n createDashboardBlock: (params: {\n title: string;\n tableName: string;\n intent?: string;\n }) =>\n | {dashboardId: string; block: BlockDocumentStatefulBlockBlock}\n | Promise<{dashboardId: string; block: BlockDocumentStatefulBlockBlock}>;\n};\n\n/**\n * Creates a tool for adding an empty Mosaic dashboard block to a block document.\n */\nexport function createAddMosaicDashboardBlockTool({\n blockDocumentAdapter,\n blockDocumentId,\n addDashboardBlock,\n createDashboardBlock,\n}: CreateAddMosaicDashboardBlockToolOptions) {\n return tool<\n AddMosaicDashboardBlockToolInput,\n AddMosaicDashboardBlockToolOutput\n >({\n description: `Create an EMPTY Mosaic dashboard block container in the block document.\n\nThis tool ONLY creates the container structure. To populate it with charts and panels, use other tools afterward.`,\n inputSchema: AddMosaicDashboardBlockToolInput,\n execute: async ({dashboardTitle, tableName, intent}) => {\n try {\n if (addDashboardBlock) {\n const result = await addDashboardBlock({\n title: dashboardTitle,\n tableName,\n intent,\n });\n return {\n success: true,\n dashboardId: result.dashboardId,\n blockId: result.blockId,\n message: 'Added Mosaic dashboard block to block document',\n };\n }\n\n blockDocumentAdapter.ensureBlockDocument(blockDocumentId);\n const {dashboardId, block} = await createDashboardBlock({\n title: dashboardTitle,\n tableName,\n intent,\n });\n const blockId = await blockDocumentAdapter.addBlock(\n blockDocumentId,\n block,\n );\n\n return {\n success: true,\n dashboardId,\n blockId,\n message: 'Added Mosaic dashboard block to block document',\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,19 @@
1
+ import type { Tool } from 'ai';
2
+ import { type BlockDocumentAiAdapter } from '@sqlrooms/documents';
3
+ import type { DatabaseAiAdapter } from '../database-types';
4
+ import type { ChartToolsOptions } from '../types';
5
+ /**
6
+ * Parameters for creating Mosaic chart tools that append chart blocks to a
7
+ * block document.
8
+ */
9
+ export type CreateBlockDocumentChartToolsParams = {
10
+ databaseAdapter: DatabaseAiAdapter;
11
+ blockDocumentAdapter: BlockDocumentAiAdapter;
12
+ blockDocumentId: string;
13
+ chartToolsOptions?: ChartToolsOptions;
14
+ };
15
+ /**
16
+ * Creates AI tools for generating Mosaic chart blocks in a block document.
17
+ */
18
+ export declare function createBlockDocumentChartTools({ databaseAdapter, blockDocumentAdapter, blockDocumentId, chartToolsOptions, }: CreateBlockDocumentChartToolsParams): Record<string, Tool>;
19
+ //# sourceMappingURL=createBlockDocumentChartTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockDocumentChartTools.d.ts","sourceRoot":"","sources":["../../../src/ai/block-document/createBlockDocumentChartTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAC7B,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAMhD;;;GAGG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD,eAAe,EAAE,iBAAiB,CAAC;IACnC,oBAAoB,EAAE,sBAAsB,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,iBAAiB,GAClB,EAAE,mCAAmC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAwC5D"}
@@ -0,0 +1,37 @@
1
+ import { createDefaultBlockDocumentBlockId, } from '@sqlrooms/documents';
2
+ import { createChartTools } from '../../charts/chart-types/createChartTools';
3
+ import { DEFAULT_CHART_MAX_DATA_POINTS } from '../constants';
4
+ import { resolveChartTypes } from '../../charts/chart-types/resolveChartTypes';
5
+ import { BLOCK_DOCUMENT_CHART_TOOL_PREFIX } from './constants';
6
+ import { getMosaicTableIdentity } from '../../mosaicTableReference';
7
+ /**
8
+ * Creates AI tools for generating Mosaic chart blocks in a block document.
9
+ */
10
+ export function createBlockDocumentChartTools({ databaseAdapter, blockDocumentAdapter, blockDocumentId, chartToolsOptions, }) {
11
+ const resolvedChartTypes = resolveChartTypes(chartToolsOptions?.chartTypes);
12
+ const chartToolParams = {
13
+ maxDataPoints: chartToolsOptions?.chartMaxDataPoints ?? DEFAULT_CHART_MAX_DATA_POINTS,
14
+ databaseAdapter,
15
+ addChart: ({ config, tableName, title }) => {
16
+ if (!tableName) {
17
+ throw new Error('tableName is required for block document chart blocks but was empty or undefined');
18
+ }
19
+ const resolvedTable = databaseAdapter.findTable(tableName);
20
+ const tableIdentity = resolvedTable?.table
21
+ ? getMosaicTableIdentity(resolvedTable.table)
22
+ : getMosaicTableIdentity(tableName);
23
+ if (!tableIdentity) {
24
+ throw new Error('tableName is required for block document chart blocks but was empty or undefined');
25
+ }
26
+ return blockDocumentAdapter.addBlock(blockDocumentId, {
27
+ type: 'chart',
28
+ id: createDefaultBlockDocumentBlockId(),
29
+ config,
30
+ tableName: tableIdentity,
31
+ caption: title ?? 'Chart',
32
+ });
33
+ },
34
+ };
35
+ return createChartTools(resolvedChartTypes, chartToolParams, BLOCK_DOCUMENT_CHART_TOOL_PREFIX);
36
+ }
37
+ //# sourceMappingURL=createBlockDocumentChartTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockDocumentChartTools.js","sourceRoot":"","sources":["../../../src/ai/block-document/createBlockDocumentChartTools.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iCAAiC,GAElC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,gBAAgB,EAAC,MAAM,2CAA2C,CAAC;AAI3E,OAAO,EAAC,6BAA6B,EAAC,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAC,gCAAgC,EAAC,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAalE;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,iBAAiB,GACmB;IACpC,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,CAAC,EAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAC,EAAE,EAAE;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,aAAa,EAAE,KAAK;gBACxC,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC7C,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAEtC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;YACJ,CAAC;YAED,OAAO,oBAAoB,CAAC,QAAQ,CAAC,eAAe,EAAE;gBACpD,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,iCAAiC,EAAE;gBACvC,MAAM;gBACN,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,KAAK,IAAI,OAAO;aAC1B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IAEF,OAAO,gBAAgB,CACrB,kBAAkB,EAClB,eAAe,EACf,gCAAgC,CACjC,CAAC;AACJ,CAAC","sourcesContent":["import type {Tool} from 'ai';\nimport {\n createDefaultBlockDocumentBlockId,\n type BlockDocumentAiAdapter,\n} from '@sqlrooms/documents';\nimport {createChartTools} from '../../charts/chart-types/createChartTools';\nimport type {ChartToolParams} from '../../charts/chart-types/tool-types';\nimport type {DatabaseAiAdapter} from '../database-types';\nimport type {ChartToolsOptions} from '../types';\nimport {DEFAULT_CHART_MAX_DATA_POINTS} from '../constants';\nimport {resolveChartTypes} from '../../charts/chart-types/resolveChartTypes';\nimport {BLOCK_DOCUMENT_CHART_TOOL_PREFIX} from './constants';\nimport {getMosaicTableIdentity} from '../../mosaicTableReference';\n\n/**\n * Parameters for creating Mosaic chart tools that append chart blocks to a\n * block document.\n */\nexport type CreateBlockDocumentChartToolsParams = {\n databaseAdapter: DatabaseAiAdapter;\n blockDocumentAdapter: BlockDocumentAiAdapter;\n blockDocumentId: string;\n chartToolsOptions?: ChartToolsOptions;\n};\n\n/**\n * Creates AI tools for generating Mosaic chart blocks in a block document.\n */\nexport function createBlockDocumentChartTools({\n databaseAdapter,\n blockDocumentAdapter,\n blockDocumentId,\n chartToolsOptions,\n}: CreateBlockDocumentChartToolsParams): 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: ({config, tableName, title}) => {\n if (!tableName) {\n throw new Error(\n 'tableName is required for block document chart blocks but was empty or undefined',\n );\n }\n\n const resolvedTable = databaseAdapter.findTable(tableName);\n const tableIdentity = resolvedTable?.table\n ? getMosaicTableIdentity(resolvedTable.table)\n : getMosaicTableIdentity(tableName);\n\n if (!tableIdentity) {\n throw new Error(\n 'tableName is required for block document chart blocks but was empty or undefined',\n );\n }\n\n return blockDocumentAdapter.addBlock(blockDocumentId, {\n type: 'chart',\n id: createDefaultBlockDocumentBlockId(),\n config,\n tableName: tableIdentity,\n caption: title ?? 'Chart',\n });\n },\n };\n\n return createChartTools(\n resolvedChartTypes,\n chartToolParams,\n BLOCK_DOCUMENT_CHART_TOOL_PREFIX,\n );\n}\n"]}
@@ -0,0 +1,32 @@
1
+ import type { Tool } from 'ai';
2
+ import type { BlockDocumentAiAdapter, BlockDocumentStatefulBlockBlock } from '@sqlrooms/documents';
3
+ import type { DatabaseAiAdapter } from '../database-types';
4
+ /**
5
+ * Parameters for creating a Mosaic data-table explorer block-document tool.
6
+ */
7
+ export type CreateBlockDocumentDataTableExplorerToolParams = {
8
+ /** Database adapter for table validation and column information. */
9
+ databaseAdapter: DatabaseAiAdapter;
10
+ /** Adapter for block document operations. */
11
+ blockDocumentAdapter: BlockDocumentAiAdapter;
12
+ /** ID of the block document where data-table explorer blocks will be added. */
13
+ blockDocumentId: string;
14
+ /** Host callback that performs the full durable block creation. */
15
+ addDataTableExplorerBlock?: (params: {
16
+ title: string;
17
+ tableName: string;
18
+ intent?: string;
19
+ }) => Promise<unknown>;
20
+ /** Host callback that creates the data-table explorer stateful block. */
21
+ createDataTableExplorerBlock: (params: {
22
+ title: string;
23
+ tableName: string;
24
+ intent?: string;
25
+ }) => BlockDocumentStatefulBlockBlock | Promise<BlockDocumentStatefulBlockBlock>;
26
+ };
27
+ /**
28
+ * Creates an AI tool for adding Mosaic data-table explorer blocks to a block
29
+ * document.
30
+ */
31
+ export declare function createBlockDocumentDataTableExplorerTool({ blockDocumentAdapter, databaseAdapter, blockDocumentId, addDataTableExplorerBlock, createDataTableExplorerBlock, }: CreateBlockDocumentDataTableExplorerToolParams): Tool;
32
+ //# sourceMappingURL=createBlockDocumentDataTableExplorerTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockDocumentDataTableExplorerTool.d.ts","sourceRoot":"","sources":["../../../src/ai/block-document/createBlockDocumentDataTableExplorerTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,IAAI,CAAC;AAC7B,OAAO,KAAK,EACV,sBAAsB,EACtB,+BAA+B,EAChC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAGzD;;GAEG;AACH,MAAM,MAAM,8CAA8C,GAAG;IAC3D,oEAAoE;IACpE,eAAe,EAAE,iBAAiB,CAAC;IACnC,6CAA6C;IAC7C,oBAAoB,EAAE,sBAAsB,CAAC;IAC7C,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,yBAAyB,CAAC,EAAE,CAAC,MAAM,EAAE;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,yEAAyE;IACzE,4BAA4B,EAAE,CAAC,MAAM,EAAE;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KACG,+BAA+B,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wCAAwC,CAAC,EACvD,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,4BAA4B,GAC7B,EAAE,8CAA8C,GAAG,IAAI,CAwCvD"}
@@ -0,0 +1,37 @@
1
+ import { createDataTableExplorerTool } from '../createDataTableExplorerTool';
2
+ import { getMosaicTableIdentity } from '../../mosaicTableReference';
3
+ /**
4
+ * Creates an AI tool for adding Mosaic data-table explorer blocks to a block
5
+ * document.
6
+ */
7
+ export function createBlockDocumentDataTableExplorerTool({ blockDocumentAdapter, databaseAdapter, blockDocumentId, addDataTableExplorerBlock, createDataTableExplorerBlock, }) {
8
+ return createDataTableExplorerTool({
9
+ databaseAdapter,
10
+ addDataTable: async ({ title, tableName, intent }) => {
11
+ if (!tableName) {
12
+ throw new Error('Table name is required to add a data table explorer block');
13
+ }
14
+ blockDocumentAdapter.ensureBlockDocument(blockDocumentId);
15
+ const resolvedTable = databaseAdapter.findTable(tableName);
16
+ const tableIdentity = resolvedTable?.table
17
+ ? getMosaicTableIdentity(resolvedTable.table)
18
+ : getMosaicTableIdentity(tableName);
19
+ if (!tableIdentity) {
20
+ throw new Error('Table name is required to add a data table explorer block');
21
+ }
22
+ if (addDataTableExplorerBlock) {
23
+ return await addDataTableExplorerBlock({
24
+ title: title ?? 'Data Table Explorer',
25
+ tableName: tableIdentity,
26
+ intent,
27
+ });
28
+ }
29
+ await blockDocumentAdapter.addBlock(blockDocumentId, await createDataTableExplorerBlock({
30
+ title: title ?? 'Data Table Explorer',
31
+ tableName: tableIdentity,
32
+ intent,
33
+ }));
34
+ },
35
+ });
36
+ }
37
+ //# sourceMappingURL=createBlockDocumentDataTableExplorerTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockDocumentDataTableExplorerTool.js","sourceRoot":"","sources":["../../../src/ai/block-document/createBlockDocumentDataTableExplorerTool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AA4BlE;;;GAGG;AACH,MAAM,UAAU,wCAAwC,CAAC,EACvD,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,4BAA4B,GACmB;IAC/C,OAAO,2BAA2B,CAAC;QACjC,eAAe;QACf,YAAY,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAC,EAAE,EAAE;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;YACJ,CAAC;YAED,oBAAoB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,aAAa,EAAE,KAAK;gBACxC,CAAC,CAAC,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC7C,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAEtC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;YACJ,CAAC;YAED,IAAI,yBAAyB,EAAE,CAAC;gBAC9B,OAAO,MAAM,yBAAyB,CAAC;oBACrC,KAAK,EAAE,KAAK,IAAI,qBAAqB;oBACrC,SAAS,EAAE,aAAa;oBACxB,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YAED,MAAM,oBAAoB,CAAC,QAAQ,CACjC,eAAe,EACf,MAAM,4BAA4B,CAAC;gBACjC,KAAK,EAAE,KAAK,IAAI,qBAAqB;gBACrC,SAAS,EAAE,aAAa;gBACxB,MAAM;aACP,CAAC,CACH,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type {Tool} from 'ai';\nimport type {\n BlockDocumentAiAdapter,\n BlockDocumentStatefulBlockBlock,\n} from '@sqlrooms/documents';\nimport {createDataTableExplorerTool} from '../createDataTableExplorerTool';\nimport type {DatabaseAiAdapter} from '../database-types';\nimport {getMosaicTableIdentity} from '../../mosaicTableReference';\n\n/**\n * Parameters for creating a Mosaic data-table explorer block-document tool.\n */\nexport type CreateBlockDocumentDataTableExplorerToolParams = {\n /** Database adapter for table validation and column information. */\n databaseAdapter: DatabaseAiAdapter;\n /** Adapter for block document operations. */\n blockDocumentAdapter: BlockDocumentAiAdapter;\n /** ID of the block document where data-table explorer blocks will be added. */\n blockDocumentId: string;\n /** Host callback that performs the full durable block creation. */\n addDataTableExplorerBlock?: (params: {\n title: string;\n tableName: string;\n intent?: string;\n }) => Promise<unknown>;\n /** Host callback that creates the data-table explorer stateful block. */\n createDataTableExplorerBlock: (params: {\n title: string;\n tableName: string;\n intent?: string;\n }) =>\n | BlockDocumentStatefulBlockBlock\n | Promise<BlockDocumentStatefulBlockBlock>;\n};\n\n/**\n * Creates an AI tool for adding Mosaic data-table explorer blocks to a block\n * document.\n */\nexport function createBlockDocumentDataTableExplorerTool({\n blockDocumentAdapter,\n databaseAdapter,\n blockDocumentId,\n addDataTableExplorerBlock,\n createDataTableExplorerBlock,\n}: CreateBlockDocumentDataTableExplorerToolParams): Tool {\n return createDataTableExplorerTool({\n databaseAdapter,\n addDataTable: async ({title, tableName, intent}) => {\n if (!tableName) {\n throw new Error(\n 'Table name is required to add a data table explorer block',\n );\n }\n\n blockDocumentAdapter.ensureBlockDocument(blockDocumentId);\n const resolvedTable = databaseAdapter.findTable(tableName);\n const tableIdentity = resolvedTable?.table\n ? getMosaicTableIdentity(resolvedTable.table)\n : getMosaicTableIdentity(tableName);\n\n if (!tableIdentity) {\n throw new Error(\n 'Table name is required to add a data table explorer block',\n );\n }\n\n if (addDataTableExplorerBlock) {\n return await addDataTableExplorerBlock({\n title: title ?? 'Data Table Explorer',\n tableName: tableIdentity,\n intent,\n });\n }\n\n await blockDocumentAdapter.addBlock(\n blockDocumentId,\n await createDataTableExplorerBlock({\n title: title ?? 'Data Table Explorer',\n tableName: tableIdentity,\n intent,\n }),\n );\n },\n });\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export declare const MAP_TOOL_KEY = "create_dashboard_map";
2
+ export declare const DEFAULT_CHART_MAX_DATA_POINTS = 10000;
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/ai/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AAEnD,eAAO,MAAM,6BAA6B,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const MAP_TOOL_KEY = 'create_dashboard_map';
2
+ export const DEFAULT_CHART_MAX_DATA_POINTS = 10000;
3
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/ai/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,CAAC","sourcesContent":["export const MAP_TOOL_KEY = 'create_dashboard_map';\n\nexport const DEFAULT_CHART_MAX_DATA_POINTS = 10000;\n"]}
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ import { DatabaseAiAdapter } from './database-types';
3
+ /**
4
+ * Parameters for creating a Data Table Explorer panel.
5
+ */
6
+ export declare const DataTableExplorerParameters: z.ZodObject<{
7
+ tableName: z.ZodOptional<z.ZodString>;
8
+ title: z.ZodDefault<z.ZodOptional<z.ZodString>>;
9
+ intent: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>;
11
+ /**
12
+ * Inferred type for Data Table Explorer parameters.
13
+ */
14
+ export type DataTableExplorerParameters = z.infer<typeof DataTableExplorerParameters>;
15
+ /**
16
+ * Tool input schema including reasoning and explorer parameters.
17
+ */
18
+ export declare const DataTableExplorerToolInput: z.ZodObject<{
19
+ tableName: z.ZodOptional<z.ZodString>;
20
+ title: z.ZodDefault<z.ZodOptional<z.ZodString>>;
21
+ intent: z.ZodOptional<z.ZodString>;
22
+ reasoning: z.ZodString;
23
+ }, z.core.$strip>;
24
+ /**
25
+ * Inferred type for Data Table Explorer tool input.
26
+ */
27
+ export type DataTableExplorerToolInput = z.infer<typeof DataTableExplorerToolInput>;
28
+ /**
29
+ * Options for creating the Data Table Explorer tool.
30
+ */
31
+ export type CreateDataTableExplorerToolOptions = {
32
+ databaseAdapter: DatabaseAiAdapter;
33
+ addDataTable(params: DataTableExplorerParameters): unknown | Promise<unknown>;
34
+ };
35
+ /**
36
+ * Creates an AI tool for generating Data Table Explorer panels with schema and column statistics.
37
+ */
38
+ export declare function createDataTableExplorerTool({ databaseAdapter, addDataTable, }: CreateDataTableExplorerToolOptions): import("ai").Tool<{
39
+ title: string;
40
+ reasoning: string;
41
+ tableName?: string | undefined;
42
+ intent?: string | undefined;
43
+ }, {
44
+ llmResult: {
45
+ success: boolean;
46
+ details: string;
47
+ data: {
48
+ title: string;
49
+ reasoning: string;
50
+ tableName?: string | undefined;
51
+ intent?: string | undefined;
52
+ } | {
53
+ dataTable: {};
54
+ title: string;
55
+ reasoning: string;
56
+ tableName?: string | undefined;
57
+ intent?: string | undefined;
58
+ };
59
+ errorMessage?: undefined;
60
+ };
61
+ } | {
62
+ llmResult: {
63
+ success: boolean;
64
+ errorMessage: string;
65
+ details?: undefined;
66
+ data?: undefined;
67
+ };
68
+ }>;
69
+ //# sourceMappingURL=createDataTableExplorerTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDataTableExplorerTool.d.ts","sourceRoot":"","sources":["../../src/ai/createDataTableExplorerTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;iBAiBtC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,2BAA2B,CACnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;iBAKrC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,0BAA0B,CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG;IAC/C,eAAe,EAAE,iBAAiB,CAAC;IACnC,YAAY,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E,CAAC;AAEF;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,eAAe,EACf,YAAY,GACb,EAAE,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCpC"}