@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.
- package/README.md +84 -74
- package/dist/ai/agentIntent.d.ts +5 -0
- package/dist/ai/agentIntent.d.ts.map +1 -0
- package/dist/ai/agentIntent.js +8 -0
- package/dist/ai/agentIntent.js.map +1 -0
- package/dist/ai/block-document/constants.d.ts +9 -0
- package/dist/ai/block-document/constants.d.ts.map +1 -0
- package/dist/ai/block-document/constants.js +9 -0
- package/dist/ai/block-document/constants.js.map +1 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts +48 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.d.ts.map +1 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js +59 -0
- package/dist/ai/block-document/createAddMosaicDashboardBlockTool.js.map +1 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.d.ts +19 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.d.ts.map +1 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.js +37 -0
- package/dist/ai/block-document/createBlockDocumentChartTools.js.map +1 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts +32 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js +37 -0
- package/dist/ai/block-document/createBlockDocumentDataTableExplorerTool.js.map +1 -0
- package/dist/ai/constants.d.ts +3 -0
- package/dist/ai/constants.d.ts.map +1 -0
- package/dist/ai/constants.js +3 -0
- package/dist/ai/constants.js.map +1 -0
- package/dist/ai/createDataTableExplorerTool.d.ts +69 -0
- package/dist/ai/createDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/createDataTableExplorerTool.js +68 -0
- package/dist/ai/createDataTableExplorerTool.js.map +1 -0
- package/dist/ai/dashboard/constants.d.ts +6 -0
- package/dist/ai/dashboard/constants.d.ts.map +1 -0
- package/dist/ai/dashboard/constants.js +6 -0
- package/dist/ai/dashboard/constants.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAgentTool.d.ts +17 -0
- package/dist/ai/dashboard/createDashboardAgentTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAgentTool.js +205 -0
- package/dist/ai/dashboard/createDashboardAgentTool.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.d.ts +14 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.js +75 -0
- package/dist/ai/dashboard/createDashboardAiAdapter.js.map +1 -0
- package/dist/ai/dashboard/createDashboardAiTools.d.ts +26 -0
- package/dist/ai/dashboard/createDashboardAiTools.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardAiTools.js +40 -0
- package/dist/ai/dashboard/createDashboardAiTools.js.map +1 -0
- package/dist/ai/dashboard/createDashboardChartTools.d.ts +27 -0
- package/dist/ai/dashboard/createDashboardChartTools.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardChartTools.js +55 -0
- package/dist/ai/dashboard/createDashboardChartTools.js.map +1 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts +23 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js +29 -0
- package/dist/ai/dashboard/createDashboardDataTableExplorerTool.js.map +1 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts +28 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.d.ts.map +1 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.js +54 -0
- package/dist/ai/dashboard/createListDashboardPanelsTool.js.map +1 -0
- package/dist/ai/dashboard/dashboard-types.d.ts +59 -0
- package/dist/ai/dashboard/dashboard-types.d.ts.map +1 -0
- package/dist/ai/dashboard/dashboard-types.js +2 -0
- package/dist/ai/dashboard/dashboard-types.js.map +1 -0
- package/dist/ai/database-types.d.ts +12 -0
- package/dist/ai/database-types.d.ts.map +1 -0
- package/dist/ai/database-types.js +2 -0
- package/dist/ai/database-types.js.map +1 -0
- package/dist/ai/errors.d.ts +8 -0
- package/dist/ai/errors.d.ts.map +1 -0
- package/dist/ai/errors.js +11 -0
- package/dist/ai/errors.js.map +1 -0
- package/dist/ai/tool-helpers.d.ts +28 -29
- package/dist/ai/tool-helpers.d.ts.map +1 -1
- package/dist/ai/tool-helpers.js +38 -76
- package/dist/ai/tool-helpers.js.map +1 -1
- package/dist/ai/tool-schemas.d.ts +9 -4
- package/dist/ai/tool-schemas.d.ts.map +1 -1
- package/dist/ai/tool-schemas.js +12 -12
- package/dist/ai/tool-schemas.js.map +1 -1
- package/dist/ai/tool-types.d.ts +19 -1
- package/dist/ai/tool-types.d.ts.map +1 -1
- package/dist/ai/tool-types.js.map +1 -1
- package/dist/ai/types.d.ts +64 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai.d.ts +16 -2
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +14 -5
- package/dist/ai.js.map +1 -1
- package/dist/charts/MosaicChart.js +1 -1
- package/dist/charts/MosaicChart.js.map +1 -1
- package/dist/charts/MosaicChartView.d.ts.map +1 -1
- package/dist/charts/MosaicChartView.js +1 -2
- package/dist/charts/MosaicChartView.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js +2 -1
- package/dist/charts/chart-settings/MosaicChartSpecViewerPanel.js.map +1 -1
- package/dist/charts/chart-settings/MosaicChartTypeSelector.d.ts.map +1 -1
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js +4 -11
- package/dist/charts/chart-settings/MosaicChartTypeSelector.js.map +1 -1
- package/dist/charts/chart-types/base-types.d.ts +27 -23
- package/dist/charts/chart-types/base-types.d.ts.map +1 -1
- package/dist/charts/chart-types/base-types.js +3 -1
- package/dist/charts/chart-types/base-types.js.map +1 -1
- package/dist/charts/chart-types/box-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/definition.js +1 -0
- package/dist/charts/chart-types/box-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts +37 -3
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js +26 -6
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotClient.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js +2 -2
- package/dist/charts/chart-types/box-plot/renderer/BoxPlotPanelRenderer.js.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts +12 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js +13 -3
- package/dist/charts/chart-types/box-plot/renderer/useBoxPlotClient.js.map +1 -1
- package/dist/charts/chart-types/box-plot/tool.d.ts +20 -24
- package/dist/charts/chart-types/box-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/box-plot/tool.js +25 -33
- package/dist/charts/chart-types/box-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/box-plot/validation.d.ts +9 -0
- package/dist/charts/chart-types/box-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/box-plot/validation.js +32 -0
- package/dist/charts/chart-types/box-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/column-types.d.ts +8 -0
- package/dist/charts/chart-types/column-types.d.ts.map +1 -0
- package/dist/charts/chart-types/column-types.js +2 -0
- package/dist/charts/chart-types/column-types.js.map +1 -0
- package/dist/charts/chart-types/count-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/definition.js +1 -0
- package/dist/charts/chart-types/count-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/count-plot/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/spec.js +1 -19
- package/dist/charts/chart-types/count-plot/spec.js.map +1 -1
- package/dist/charts/chart-types/count-plot/tool.d.ts +19 -24
- package/dist/charts/chart-types/count-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/count-plot/tool.js +25 -32
- package/dist/charts/chart-types/count-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/count-plot/validation.d.ts +8 -0
- package/dist/charts/chart-types/count-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/count-plot/validation.js +20 -0
- package/dist/charts/chart-types/count-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/createChartInstructions.d.ts +3 -0
- package/dist/charts/chart-types/createChartInstructions.d.ts.map +1 -0
- package/dist/charts/chart-types/createChartInstructions.js +12 -0
- package/dist/charts/chart-types/createChartInstructions.js.map +1 -0
- package/dist/charts/chart-types/createChartTools.d.ts +15 -9
- package/dist/charts/chart-types/createChartTools.d.ts.map +1 -1
- package/dist/charts/chart-types/createChartTools.js +16 -10
- package/dist/charts/chart-types/createChartTools.js.map +1 -1
- package/dist/charts/chart-types/custom-spec/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/custom-spec/definition.js +1 -0
- package/dist/charts/chart-types/custom-spec/definition.js.map +1 -1
- package/dist/charts/chart-types/errors.d.ts +10 -0
- package/dist/charts/chart-types/errors.d.ts.map +1 -1
- package/dist/charts/chart-types/errors.js +18 -0
- package/dist/charts/chart-types/errors.js.map +1 -1
- package/dist/charts/chart-types/heatmap/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/definition.js +1 -0
- package/dist/charts/chart-types/heatmap/definition.js.map +1 -1
- package/dist/charts/chart-types/heatmap/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/spec.js +1 -33
- package/dist/charts/chart-types/heatmap/spec.js.map +1 -1
- package/dist/charts/chart-types/heatmap/tool.d.ts +20 -24
- package/dist/charts/chart-types/heatmap/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/heatmap/tool.js +26 -36
- package/dist/charts/chart-types/heatmap/tool.js.map +1 -1
- package/dist/charts/chart-types/heatmap/validation.d.ts +9 -0
- package/dist/charts/chart-types/heatmap/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/heatmap/validation.js +34 -0
- package/dist/charts/chart-types/heatmap/validation.js.map +1 -0
- package/dist/charts/chart-types/histogram/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/definition.js +1 -0
- package/dist/charts/chart-types/histogram/definition.js.map +1 -1
- package/dist/charts/chart-types/histogram/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/spec.js +1 -21
- package/dist/charts/chart-types/histogram/spec.js.map +1 -1
- package/dist/charts/chart-types/histogram/tool.d.ts +37 -24
- package/dist/charts/chart-types/histogram/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/histogram/tool.js +38 -32
- package/dist/charts/chart-types/histogram/tool.js.map +1 -1
- package/dist/charts/chart-types/histogram/validation.d.ts +9 -0
- package/dist/charts/chart-types/histogram/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/histogram/validation.js +22 -0
- package/dist/charts/chart-types/histogram/validation.js.map +1 -0
- package/dist/charts/chart-types/index.d.ts +1 -7
- package/dist/charts/chart-types/index.d.ts.map +1 -1
- package/dist/charts/chart-types/index.js +2 -8
- package/dist/charts/chart-types/index.js.map +1 -1
- package/dist/charts/chart-types/line-chart/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/definition.js +1 -0
- package/dist/charts/chart-types/line-chart/definition.js.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/spec.js +5 -46
- package/dist/charts/chart-types/line-chart/spec.js.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.d.ts +26 -24
- package/dist/charts/chart-types/line-chart/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/line-chart/tool.js +26 -38
- package/dist/charts/chart-types/line-chart/tool.js.map +1 -1
- package/dist/charts/chart-types/line-chart/validation.d.ts +16 -0
- package/dist/charts/chart-types/line-chart/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/line-chart/validation.js +43 -0
- package/dist/charts/chart-types/line-chart/validation.js.map +1 -0
- package/dist/charts/chart-types/resolveChartTypes.d.ts +3 -0
- package/dist/charts/chart-types/resolveChartTypes.d.ts.map +1 -0
- package/dist/charts/chart-types/resolveChartTypes.js +8 -0
- package/dist/charts/chart-types/resolveChartTypes.js.map +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.d.ts.map +1 -1
- package/dist/charts/chart-types/scatter-plot/definition.js +1 -0
- package/dist/charts/chart-types/scatter-plot/definition.js.map +1 -1
- package/dist/charts/chart-types/scatter-plot/spec.d.ts.map +1 -1
- package/dist/charts/chart-types/scatter-plot/spec.js +1 -45
- package/dist/charts/chart-types/scatter-plot/spec.js.map +1 -1
- package/dist/charts/chart-types/scatter-plot/tool.d.ts +21 -24
- package/dist/charts/chart-types/scatter-plot/tool.d.ts.map +1 -1
- package/dist/charts/chart-types/scatter-plot/tool.js +28 -41
- package/dist/charts/chart-types/scatter-plot/tool.js.map +1 -1
- package/dist/charts/chart-types/scatter-plot/validation.d.ts +13 -0
- package/dist/charts/chart-types/scatter-plot/validation.d.ts.map +1 -0
- package/dist/charts/chart-types/scatter-plot/validation.js +52 -0
- package/dist/charts/chart-types/scatter-plot/validation.js.map +1 -0
- package/dist/charts/chart-types/tool-types.d.ts +43 -0
- package/dist/charts/chart-types/tool-types.d.ts.map +1 -0
- package/dist/charts/chart-types/tool-types.js +2 -0
- package/dist/charts/chart-types/tool-types.js.map +1 -0
- package/dist/charts/chart-types/utils.d.ts +3 -0
- package/dist/charts/chart-types/utils.d.ts.map +1 -0
- package/dist/charts/chart-types/utils.js +4 -0
- package/dist/charts/chart-types/utils.js.map +1 -0
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.d.ts.map +1 -1
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js +5 -3
- package/dist/charts/dashboard/MosaicDashboardChartRenderer.js.map +1 -1
- package/dist/charts/useChartDataPolicy.js +2 -2
- package/dist/charts/useChartDataPolicy.js.map +1 -1
- package/dist/components/AggregationSelector.d.ts.map +1 -1
- package/dist/components/AggregationSelector.js +1 -1
- package/dist/components/AggregationSelector.js.map +1 -1
- package/dist/components/ColorSelector.d.ts.map +1 -1
- package/dist/components/ColorSelector.js +1 -2
- package/dist/components/ColorSelector.js.map +1 -1
- package/dist/components/FieldSelectorInput.d.ts.map +1 -1
- package/dist/components/FieldSelectorInput.js +3 -3
- package/dist/components/FieldSelectorInput.js.map +1 -1
- package/dist/components/TemporalGranularitySelector.d.ts.map +1 -1
- package/dist/components/TemporalGranularitySelector.js +1 -1
- package/dist/components/TemporalGranularitySelector.js.map +1 -1
- package/dist/dashboard/MosaicDashboardCommands.d.ts +19 -0
- package/dist/dashboard/MosaicDashboardCommands.d.ts.map +1 -0
- package/dist/dashboard/MosaicDashboardCommands.js +226 -0
- package/dist/dashboard/MosaicDashboardCommands.js.map +1 -0
- package/dist/dashboard/dashboard-types.d.ts.map +1 -1
- package/dist/dashboard/dashboard-types.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.js +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanel.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.js +3 -3
- package/dist/dashboard/panel/MosaicDashboardPanelLayout.js.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanels.d.ts.map +1 -1
- package/dist/dashboard/panel/MosaicDashboardPanels.js +4 -2
- package/dist/dashboard/panel/MosaicDashboardPanels.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js +4 -4
- package/dist/dashboard/toolbar/MosaicDashboardDataTableSelector.js.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.d.ts.map +1 -1
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js +5 -3
- package/dist/dashboard/toolbar/MosaicDashboardToolbar.js.map +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.d.ts +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.d.ts.map +1 -1
- package/dist/dashboard/useSelectedOrFirstTable.js +10 -8
- package/dist/dashboard/useSelectedOrFirstTable.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerCategoryClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts +3 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerCountClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerCountClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.js +4 -4
- package/dist/data-table-explorer/DataTableExplorerHistogramClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts +3 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.js +3 -1
- package/dist/data-table-explorer/DataTableExplorerPageClient.js.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts +3 -2
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.d.ts.map +1 -1
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js +3 -3
- package/dist/data-table-explorer/DataTableExplorerUnsupportedSummaryClient.js.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js +7 -4
- package/dist/data-table-explorer/dashboard/MosaicDashboardDataTableExplorerPanelRenderer.js.map +1 -1
- package/dist/data-table-explorer/dataTableExplorerController.d.ts +58 -2
- package/dist/data-table-explorer/dataTableExplorerController.d.ts.map +1 -1
- package/dist/data-table-explorer/dataTableExplorerController.js +68 -8
- package/dist/data-table-explorer/dataTableExplorerController.js.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts +23 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.d.ts.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js +46 -13
- package/dist/data-table-explorer/hooks/useDataTableExplorerLifecycles.js.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts +17 -3
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.d.ts.map +1 -1
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js +9 -6
- package/dist/data-table-explorer/hooks/useDataTableExplorerQueryState.js.map +1 -1
- package/dist/data-table-explorer/types.d.ts +10 -0
- package/dist/data-table-explorer/types.d.ts.map +1 -1
- package/dist/data-table-explorer/types.js.map +1 -1
- package/dist/data-table-explorer/useDataTableExplorer.d.ts.map +1 -1
- package/dist/data-table-explorer/useDataTableExplorer.js +10 -6
- package/dist/data-table-explorer/useDataTableExplorer.js.map +1 -1
- package/dist/data-table-explorer/utils.d.ts +64 -6
- package/dist/data-table-explorer/utils.d.ts.map +1 -1
- package/dist/data-table-explorer/utils.js +58 -0
- package/dist/data-table-explorer/utils.js.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.d.ts.map +1 -1
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js +2 -2
- package/dist/data-table-explorer/worksheet/DataTableBlockRenderer.js.map +1 -1
- package/dist/index.d.ts +49 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -25
- package/dist/index.js.map +1 -1
- package/dist/mosaicTableReference.d.ts +59 -0
- package/dist/mosaicTableReference.d.ts.map +1 -0
- package/dist/mosaicTableReference.js +68 -0
- package/dist/mosaicTableReference.js.map +1 -0
- package/dist/useVgPlotChartRender.d.ts.map +1 -1
- package/dist/useVgPlotChartRender.js +26 -1
- package/dist/useVgPlotChartRender.js.map +1 -1
- package/dist/utils/table-lookup.d.ts +7 -0
- package/dist/utils/table-lookup.d.ts.map +1 -0
- package/dist/utils/table-lookup.js +10 -0
- package/dist/utils/table-lookup.js.map +1 -0
- package/package.json +14 -14
- package/dist/ai/ai.d.ts +0 -108
- package/dist/ai/ai.d.ts.map +0 -1
- package/dist/ai/ai.js +0 -461
- package/dist/ai/ai.js.map +0 -1
- package/dist/ai/data-table-explorer-tool.d.ts +0 -40
- package/dist/ai/data-table-explorer-tool.d.ts.map +0 -1
- package/dist/ai/data-table-explorer-tool.js +0 -75
- package/dist/ai/data-table-explorer-tool.js.map +0 -1
- package/dist/ai/list-panels-tool.d.ts +0 -35
- package/dist/ai/list-panels-tool.d.ts.map +0 -1
- package/dist/ai/list-panels-tool.js +0 -66
- package/dist/ai/list-panels-tool.js.map +0 -1
- package/dist/ai/remove-panel-tool.d.ts +0 -31
- package/dist/ai/remove-panel-tool.d.ts.map +0 -1
- package/dist/ai/remove-panel-tool.js +0 -55
- package/dist/ai/remove-panel-tool.js.map +0 -1
- package/dist/ai/tool-validation.d.ts +0 -3
- package/dist/ai/tool-validation.d.ts.map +0 -1
- package/dist/ai/tool-validation.js +0 -11
- package/dist/ai/tool-validation.js.map +0 -1
- package/dist/components/Combobox.d.ts +0 -45
- package/dist/components/Combobox.d.ts.map +0 -1
- package/dist/components/Combobox.js +0 -58
- package/dist/components/Combobox.js.map +0 -1
- package/dist/components/useCombobox.d.ts +0 -23
- package/dist/components/useCombobox.d.ts.map +0 -1
- package/dist/components/useCombobox.js +0 -26
- 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
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
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
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
updatePanel: (
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
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({
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|