@solidxai/core-ui 0.1.18 → 0.1.19-beta.1
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 +19 -0
- package/dist/components/common/SolidPopupContainer.d.ts.map +1 -1
- package/dist/components/common/SolidPopupContainer.js +3 -2
- package/dist/components/common/SolidPopupContainer.js.map +1 -1
- package/dist/components/common/SolidPopupContainer.tsx +3 -2
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +4 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +11 -5
- package/dist/components/common/SolidThemeLink.d.ts.map +1 -1
- package/dist/components/common/SolidThemeLink.js +2 -2
- package/dist/components/common/SolidThemeLink.js.map +1 -1
- package/dist/components/common/SolidThemeLink.tsx +5 -2
- package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatter.js +2 -1
- package/dist/components/core/chatter/SolidChatter.js.map +1 -1
- package/dist/components/core/chatter/SolidChatter.tsx +2 -0
- package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.js +2 -1
- package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterHeader.tsx +6 -4
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +2 -0
- package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.js +7 -4
- package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
- package/dist/components/core/chatter/SolidChatterMessageBox.tsx +8 -3
- package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts +5 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.d.ts.map +1 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.js +85 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.js.map +1 -0
- package/dist/components/core/chatter/SolidChatterMessageWidget.tsx +59 -0
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts +2 -1
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.d.ts.map +1 -1
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.js +3 -2
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.js.map +1 -1
- package/dist/components/core/common/SolidCollectionRowActionMenuItems.tsx +5 -3
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +35 -18
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +40 -15
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts.map +1 -1
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js +2 -2
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js.map +1 -1
- package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx +6 -6
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts +11 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js +102 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentEvent/list/AgentEventOutcomeListWidget.tsx +129 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts +4 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js +29 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.module.css +226 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentRegistryCardWidget.tsx +57 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts +4 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js +33 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget.tsx +47 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts +5 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js +59 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel.tsx +82 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts +17 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js +258 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.js.map +1 -0
- package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.tsx +286 -0
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +102 -62
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +116 -106
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts +6 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js +37 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/MqMessageSelectedRecordsSummaryHeaderAction.tsx +89 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts +3 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js +18 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageDetailsKanbanCardAction.tsx +51 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts +10 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js +63 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.js.map +1 -0
- package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanQuickFilterHeaderAction.tsx +111 -0
- package/dist/components/core/field/FieldListViewData.d.ts.map +1 -1
- package/dist/components/core/field/FieldListViewData.js +29 -9
- package/dist/components/core/field/FieldListViewData.js.map +1 -1
- package/dist/components/core/field/FieldListViewData.tsx +7 -6
- package/dist/components/core/form/SolidFormView.d.ts +1 -0
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +49 -48
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +4 -3
- package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.js +12 -9
- package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
- package/dist/components/core/form/fields/SolidDecimalField.tsx +11 -8
- package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.js +16 -14
- package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
- package/dist/components/core/form/fields/SolidIntegerField.tsx +13 -10
- package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.js +13 -1
- package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
- package/dist/components/core/form/fields/SolidPasswordField.tsx +14 -3
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +5 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +3 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +5 -4
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +31 -11
- package/dist/components/core/kanban/KanbanColumn.d.ts +5 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +14 -3
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +43 -3
- package/dist/components/core/kanban/SolidKanbanView.d.ts +2 -0
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +90 -52
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +93 -13
- package/dist/components/core/list/SolidDataTable.d.ts +2 -1
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +4 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +4 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +197 -96
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +96 -37
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +14 -0
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
- package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +13 -0
- package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +2 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -0
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +1 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js +51 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.js.map +1 -0
- package/dist/components/core/list/widgets/AgentProcessNeedsRestartListWidget.tsx +60 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts +4 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js +24 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidIconNameListViewWidget.tsx +32 -0
- package/dist/components/core/model/ModelListViewData.d.ts.map +1 -1
- package/dist/components/core/model/ModelListViewData.js +6 -23
- package/dist/components/core/model/ModelListViewData.js.map +1 -1
- package/dist/components/core/model/ModelListViewData.tsx +1 -48
- package/dist/components/core/module/CreateModule.css +42 -0
- package/dist/components/core/module/CreateModule.js +1 -1
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +5 -5
- package/dist/components/core/solid-agent/AgentModelIndicator.d.ts +5 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.d.ts.map +1 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.js +14 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.js.map +1 -0
- package/dist/components/core/solid-agent/AgentModelIndicator.tsx +40 -0
- package/dist/components/core/solid-agent/AgentSignIn.d.ts +12 -0
- package/dist/components/core/solid-agent/AgentSignIn.d.ts.map +1 -0
- package/dist/components/core/solid-agent/AgentSignIn.js +82 -0
- package/dist/components/core/solid-agent/AgentSignIn.js.map +1 -0
- package/dist/components/core/solid-agent/AgentSignIn.tsx +91 -0
- package/dist/components/core/solid-agent/SolidAgent.module.css +596 -0
- package/dist/components/core/solid-agent/SolidAgentChat.d.ts +30 -0
- package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentChat.js +300 -0
- package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentChat.tsx +451 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts +44 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.js +46 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentEmbedded.tsx +87 -0
- package/dist/components/core/solid-agent/SolidAgentHost.d.ts +8 -0
- package/dist/components/core/solid-agent/SolidAgentHost.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentHost.js +152 -0
- package/dist/components/core/solid-agent/SolidAgentHost.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentHost.tsx +164 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts +16 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.js +161 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMarkdown.tsx +133 -0
- package/dist/components/core/solid-agent/SolidAgentMount.d.ts +3 -0
- package/dist/components/core/solid-agent/SolidAgentMount.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMount.js +62 -0
- package/dist/components/core/solid-agent/SolidAgentMount.js.map +1 -0
- package/dist/components/core/solid-agent/SolidAgentMount.tsx +31 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.d.ts +5 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.d.ts.map +1 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.js +7 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.js.map +1 -0
- package/dist/components/core/solid-agent/SolidXAIIcon.tsx +6 -0
- package/dist/components/core/solid-agent/agentAttachments.d.ts +20 -0
- package/dist/components/core/solid-agent/agentAttachments.d.ts.map +1 -0
- package/dist/components/core/solid-agent/agentAttachments.js +184 -0
- package/dist/components/core/solid-agent/agentAttachments.js.map +1 -0
- package/dist/components/core/solid-agent/agentAttachments.ts +119 -0
- package/dist/components/core/solid-agent/agentEvents.d.ts +34 -0
- package/dist/components/core/solid-agent/agentEvents.d.ts.map +1 -0
- package/dist/components/core/solid-agent/agentEvents.js +282 -0
- package/dist/components/core/solid-agent/agentEvents.js.map +1 -0
- package/dist/components/core/solid-agent/agentEvents.ts +292 -0
- package/dist/components/core/solid-agent/agentFormat.d.ts +18 -0
- package/dist/components/core/solid-agent/agentFormat.d.ts.map +1 -0
- package/dist/components/core/solid-agent/agentFormat.js +179 -0
- package/dist/components/core/solid-agent/agentFormat.js.map +1 -0
- package/dist/components/core/solid-agent/agentFormat.ts +160 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts +9 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.js +129 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentAttachmentMedia.ts +69 -0
- package/dist/components/core/solid-agent/client/agentAuth.d.ts +63 -0
- package/dist/components/core/solid-agent/client/agentAuth.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentAuth.js +307 -0
- package/dist/components/core/solid-agent/client/agentAuth.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentAuth.ts +222 -0
- package/dist/components/core/solid-agent/client/agentRest.d.ts +30 -0
- package/dist/components/core/solid-agent/client/agentRest.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentRest.js +178 -0
- package/dist/components/core/solid-agent/client/agentRest.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentRest.ts +100 -0
- package/dist/components/core/solid-agent/client/agentRuntime.d.ts +48 -0
- package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentRuntime.js +406 -0
- package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentRuntime.ts +226 -0
- package/dist/components/core/solid-agent/client/agentSocket.d.ts +46 -0
- package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentSocket.js +535 -0
- package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentSocket.ts +276 -0
- package/dist/components/core/solid-agent/client/agentUrls.d.ts +11 -0
- package/dist/components/core/solid-agent/client/agentUrls.d.ts.map +1 -0
- package/dist/components/core/solid-agent/client/agentUrls.js +18 -0
- package/dist/components/core/solid-agent/client/agentUrls.js.map +1 -0
- package/dist/components/core/solid-agent/client/agentUrls.ts +19 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.d.ts +21 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.d.ts.map +1 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.js +219 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.js.map +1 -0
- package/dist/components/core/solid-agent/composer/AgentComposer.tsx +241 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts +8 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts.map +1 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +87 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -0
- package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +58 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +20 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +103 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +60 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts +11 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.js +21 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.js.map +1 -0
- package/dist/components/core/solid-agent/embed/agentEmbedSamples.ts +266 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts +15 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.d.ts.map +1 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.js +122 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.js.map +1 -0
- package/dist/components/core/solid-agent/processes/agentHubProcessApi.ts +64 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.d.ts +39 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.d.ts.map +1 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.js +44 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.js.map +1 -0
- package/dist/components/core/solid-agent/sdk/solidAgent.ts +56 -0
- package/dist/components/core/solid-agent/thread/AgentThread.d.ts +17 -0
- package/dist/components/core/solid-agent/thread/AgentThread.d.ts.map +1 -0
- package/dist/components/core/solid-agent/thread/AgentThread.js +166 -0
- package/dist/components/core/solid-agent/thread/AgentThread.js.map +1 -0
- package/dist/components/core/solid-agent/thread/AgentThread.tsx +248 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts +36 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.d.ts.map +1 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js +148 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.js.map +1 -0
- package/dist/components/core/solid-agent/thread/SolidAgentChatItem.tsx +116 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.d.ts +8 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.js +30 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.js.map +1 -0
- package/dist/components/core/solid-agent/thread/inlineWidget.ts +27 -0
- package/dist/components/core/solid-agent/types.d.ts +155 -0
- package/dist/components/core/solid-agent/types.d.ts.map +1 -0
- package/dist/components/core/solid-agent/types.js +31 -0
- package/dist/components/core/solid-agent/types.js.map +1 -0
- package/dist/components/core/solid-agent/types.ts +148 -0
- package/dist/components/core/solid-agent/useAdminInputContext.d.ts +4 -0
- package/dist/components/core/solid-agent/useAdminInputContext.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAdminInputContext.js +49 -0
- package/dist/components/core/solid-agent/useAdminInputContext.js.map +1 -0
- package/dist/components/core/solid-agent/useAdminInputContext.ts +52 -0
- package/dist/components/core/solid-agent/useAgentAuth.d.ts +14 -0
- package/dist/components/core/solid-agent/useAgentAuth.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAgentAuth.js +88 -0
- package/dist/components/core/solid-agent/useAgentAuth.js.map +1 -0
- package/dist/components/core/solid-agent/useAgentAuth.ts +40 -0
- package/dist/components/core/solid-agent/useAgentAvailability.d.ts +19 -0
- package/dist/components/core/solid-agent/useAgentAvailability.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAgentAvailability.js +109 -0
- package/dist/components/core/solid-agent/useAgentAvailability.js.map +1 -0
- package/dist/components/core/solid-agent/useAgentAvailability.ts +80 -0
- package/dist/components/core/solid-agent/useAgentChat.d.ts +22 -0
- package/dist/components/core/solid-agent/useAgentChat.d.ts.map +1 -0
- package/dist/components/core/solid-agent/useAgentChat.js +45 -0
- package/dist/components/core/solid-agent/useAgentChat.js.map +1 -0
- package/dist/components/core/solid-agent/useAgentChat.ts +57 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultAssistantMessageChatWidget.tsx +24 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultErrorChatWidget.tsx +28 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js +20 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultNoticeChatWidget.tsx +8 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js +11 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultThinkingChatWidget.tsx +16 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js +67 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultToolCallChatWidget.tsx +135 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js +24 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUnknownChatWidget.tsx +17 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts +8 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +30 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +77 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js +40 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidChecklistChatWidget.tsx +57 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js +13 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidCodeChatWidget.tsx +19 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js +55 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidDiffListChatWidget.tsx +81 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidGalleryChatWidget.tsx +30 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js +15 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidJsonChatWidget.tsx +21 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js +21 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidLinkCardChatWidget.tsx +33 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js +11 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidMarkdownChatWidget.tsx +9 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts +15 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js +26 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidProgressChatWidget.tsx +42 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js +41 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidQuestionChatWidget.tsx +69 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js +23 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidStatusChatWidget.tsx +40 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts +4 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js +32 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidTableChatWidget.tsx +55 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts +7 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js +17 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/SolidToolActivityChatWidget.tsx +31 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts +12 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.d.ts.map +1 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js +17 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.js.map +1 -0
- package/dist/components/core/solid-agent/widgets/chatWidgetUtils.ts +19 -0
- package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +909 -0
- package/dist/components/core/solid-ai/SolidAiChat.js +1 -1
- package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -1
- package/dist/components/core/solid-ai/SolidAiChat.tsx +2 -2
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +3 -2
- package/dist/components/layout/AdminLayout.d.ts.map +1 -1
- package/dist/components/layout/AdminLayout.js +2 -1
- package/dist/components/layout/AdminLayout.js.map +1 -1
- package/dist/components/layout/AdminLayout.tsx +2 -0
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +7 -3
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +8 -3
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +2 -2
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +19 -15
- package/dist/components/shad-cn-ui/SolidDialog.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.js +2 -2
- package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDialog.tsx +3 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.d.ts +7 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.d.ts.map +1 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.js +43 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.js.map +1 -0
- package/dist/components/shad-cn-ui/SolidIconPicker.tsx +73 -0
- package/dist/components/shad-cn-ui/index.d.ts +1 -0
- package/dist/components/shad-cn-ui/index.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/index.js +1 -0
- package/dist/components/shad-cn-ui/index.js.map +1 -1
- package/dist/components/shad-cn-ui/index.ts +1 -0
- package/dist/constants/allowed-ai-models.d.ts +8 -0
- package/dist/constants/allowed-ai-models.d.ts.map +1 -0
- package/dist/constants/allowed-ai-models.js +33 -0
- package/dist/constants/allowed-ai-models.js.map +1 -0
- package/dist/constants/allowed-ai-models.ts +39 -0
- package/dist/constants/error-messages.d.ts +2 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +3 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/error-messages.ts +4 -0
- package/dist/helpers/hydrateRelationRules.d.ts.map +1 -1
- package/dist/helpers/hydrateRelationRules.js +3 -1
- package/dist/helpers/hydrateRelationRules.js.map +1 -1
- package/dist/helpers/hydrateRelationRules.ts +5 -1
- package/dist/helpers/registry.d.ts +4 -2
- package/dist/helpers/registry.d.ts.map +1 -1
- package/dist/helpers/registry.js +75 -12
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +73 -16
- package/dist/helpers/updatePasswordField.d.ts.map +1 -1
- package/dist/helpers/updatePasswordField.js +21 -15
- package/dist/helpers/updatePasswordField.js.map +1 -1
- package/dist/helpers/updatePasswordField.ts +6 -1
- package/dist/index.d.ts +21 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/index.ts +38 -3
- package/dist/redux/api/fieldApi.js +1 -1
- package/dist/redux/api/fieldApi.js.map +1 -1
- package/dist/redux/api/fieldApi.ts +2 -2
- package/dist/redux/api/modelApi.d.ts +13 -13
- package/dist/redux/api/modelApi.d.ts.map +1 -1
- package/dist/redux/api/modelApi.js +15 -15
- package/dist/redux/api/modelApi.js.map +1 -1
- package/dist/redux/api/modelApi.ts +12 -15
- package/dist/redux/features/agentSlice.d.ts +34 -0
- package/dist/redux/features/agentSlice.d.ts.map +1 -0
- package/dist/redux/features/agentSlice.js +92 -0
- package/dist/redux/features/agentSlice.js.map +1 -0
- package/dist/redux/features/agentSlice.ts +119 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +11 -10
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +2 -0
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +2 -0
- package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
- package/dist/redux/store/solidEntityApiPool.js +7 -0
- package/dist/redux/store/solidEntityApiPool.js.map +1 -1
- package/dist/redux/store/solidEntityApiPool.ts +6 -0
- package/dist/resources/globals.css +109 -1
- package/dist/resources/solid-custom.css +331 -12
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/resources/themes/solid-light-modern/theme.css +2 -4
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.css +47 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts +12 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js +80 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryAuditPanel.tsx +123 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.css +110 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +702 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +630 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.css +303 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js +330 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.tsx +460 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.css +125 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js +295 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js.map +1 -0
- package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.tsx +275 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +41 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +3 -1
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js +11 -11
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.js.map +1 -1
- package/dist/routes/pages/admin/core/WorkflowDefinitionEditorPage.tsx +15 -15
- package/dist/routes/pages/embed/AgentEmbedPage.d.ts +3 -0
- package/dist/routes/pages/embed/AgentEmbedPage.d.ts.map +1 -0
- package/dist/routes/pages/embed/AgentEmbedPage.js +170 -0
- package/dist/routes/pages/embed/AgentEmbedPage.js.map +1 -0
- package/dist/routes/pages/embed/AgentEmbedPage.module.css +195 -0
- package/dist/routes/pages/embed/AgentEmbedPage.tsx +169 -0
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +8 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +8 -0
- package/dist/types/dashboard.d.ts +4 -0
- package/dist/types/dashboard.d.ts.map +1 -1
- package/dist/types/dashboard.js.map +1 -1
- package/dist/types/dashboard.ts +5 -0
- package/dist/types/extension-registry.d.ts +4 -0
- package/dist/types/extension-registry.d.ts.map +1 -1
- package/dist/types/extension-registry.js +7 -0
- package/dist/types/extension-registry.js.map +1 -1
- package/dist/types/extension-registry.ts +7 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/list-row-action.d.ts +20 -0
- package/dist/types/list-row-action.d.ts.map +1 -0
- package/dist/types/list-row-action.js +2 -0
- package/dist/types/list-row-action.js.map +1 -0
- package/dist/types/list-row-action.ts +21 -0
- package/dist/types/solid-core.d.ts +36 -0
- package/package.json +1 -1
package/dist/components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel.tsx
ADDED
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import qs from "qs";
|
|
3
|
+
import { AlertCircle, Clock3, RefreshCw, Search } from "lucide-react";
|
|
4
|
+
import { createSolidEntityApi } from "../../../../../redux/api/solidEntityApi";
|
|
5
|
+
import { SolidAutocomplete, SolidDialog, SolidDialogDescription, SolidDialogHeader, SolidDialogTitle, SolidInput, SolidSelect } from "../../../../shad-cn-ui";
|
|
6
|
+
import { AgentEventOutcomeListWidget, getAgentEventFailure } from "../agentEvent/list/AgentEventOutcomeListWidget";
|
|
7
|
+
import "../../../../../routes/pages/admin/core/AgentToolRegistryEditorPage.css";
|
|
8
|
+
|
|
9
|
+
type AgentOption = { id: number | string; name?: string; title?: string };
|
|
10
|
+
type SessionRecord = {
|
|
11
|
+
id: number;
|
|
12
|
+
sessionId?: string;
|
|
13
|
+
startedAt?: string | null;
|
|
14
|
+
endedAt?: string | null;
|
|
15
|
+
status?: string | null;
|
|
16
|
+
agent?: AgentOption | number | string | null;
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
function unwrapRecords(result: any): any[] {
|
|
21
|
+
return Array.isArray(result?.records) ? result.records : [];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function ago(value?: string | null): string {
|
|
25
|
+
if (!value) return "Start time unknown";
|
|
26
|
+
const date = new Date(value);
|
|
27
|
+
if (Number.isNaN(date.getTime())) return "Start time unknown";
|
|
28
|
+
const seconds = Math.max(0, Math.floor((Date.now() - date.getTime()) / 1000));
|
|
29
|
+
if (seconds < 60) return "Started just now";
|
|
30
|
+
if (seconds < 3600) return `Started ${Math.floor(seconds / 60)}m ago`;
|
|
31
|
+
if (seconds < 86400) return `Started ${Math.floor(seconds / 3600)}h ago`;
|
|
32
|
+
const days = Math.floor(seconds / 86400);
|
|
33
|
+
return days < 30 ? `Started ${days}d ago` : `Started ${date.toLocaleDateString()}`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function agentName(session: SessionRecord, agents: AgentOption[]): string {
|
|
37
|
+
const relation = session.agent;
|
|
38
|
+
const id = relation && typeof relation === "object" ? relation.id : relation;
|
|
39
|
+
const agent = agents.find((item) => String(item.id) === String(id));
|
|
40
|
+
if (agent) return agent.name ?? agent.title ?? "Unnamed agent";
|
|
41
|
+
if (relation && typeof relation === "object") return relation.name ?? relation.title ?? "Unnamed agent";
|
|
42
|
+
return "Unknown agent";
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function sessionQuery(agentId: number | string, processId?: number): string {
|
|
46
|
+
const processFilter = processId == null ? "" : `&filters[process][id][$eq]=${encodeURIComponent(String(processId))}`;
|
|
47
|
+
return `offset=0&limit=1000&populate[0]=agent&sort[0]=startedAt%3Adesc&filters[agent][id][$eq]=${encodeURIComponent(String(agentId))}${processFilter}`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function eventsQuery(sessionId: number, offset: number, limit: number, eventType: string, search: string): string {
|
|
51
|
+
const conditions: Record<string, any>[] = [{ session: { $eq: sessionId } }];
|
|
52
|
+
if (eventType !== "all") conditions.push({ eventType: { $eq: eventType } });
|
|
53
|
+
if (search.trim()) conditions.push({ $or: ["eventType", "toolName", "content", "toolOutput", "eventData"]
|
|
54
|
+
.map((field) => ({ [field]: { $containsi: search.trim() } })) });
|
|
55
|
+
return qs.stringify({
|
|
56
|
+
offset, limit, sort: ["createdAt:asc", "id:asc"], filters: { $and: conditions },
|
|
57
|
+
fields: ["id", "createdAt", "eventType", "toolName", "cost", "inputTokens", "outputTokens", "toolReturncode", "toolOutput", "eventData"],
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
type Props = { agents?: AgentOption[]; agentId?: number | string; agentLabel?: string; processId?: number; processLabel?: string };
|
|
62
|
+
const EMPTY_AGENTS: AgentOption[] = [];
|
|
63
|
+
const EVENT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
|
|
64
|
+
const EventFormView = React.lazy(() => import("../../../form/SolidFormView"));
|
|
65
|
+
|
|
66
|
+
export function AgentSessionsPanel({ agents, agentId, agentLabel, processId, processLabel }: Props) {
|
|
67
|
+
const linkedAgents = agents ?? EMPTY_AGENTS;
|
|
68
|
+
const scopedAgents = React.useMemo(() => agentId != null
|
|
69
|
+
? [{ id: agentId, name: agentLabel ?? "Agent" }]
|
|
70
|
+
: linkedAgents, [agentId, agentLabel, linkedAgents]);
|
|
71
|
+
const sessionApi = React.useMemo(() => createSolidEntityApi("agentSession"), []);
|
|
72
|
+
const eventApi = React.useMemo(() => createSolidEntityApi("agentEvent"), []);
|
|
73
|
+
const [fetchSessions] = sessionApi.useLazyGetSolidEntitiesQuery();
|
|
74
|
+
const [sessions, setSessions] = React.useState<SessionRecord[]>([]);
|
|
75
|
+
const [selectedAgent, setSelectedAgent] = React.useState<{ id: string; label: string } | null>(null);
|
|
76
|
+
const [selectedSessionId, setSelectedSessionId] = React.useState<number | null>(null);
|
|
77
|
+
const [selectedEventId, setSelectedEventId] = React.useState<number | null>(null);
|
|
78
|
+
const eventsTableRef = React.useRef<HTMLDivElement>(null);
|
|
79
|
+
const [isLoadingSessions, setIsLoadingSessions] = React.useState(false);
|
|
80
|
+
const [sessionsError, setSessionsError] = React.useState(false);
|
|
81
|
+
const [eventTypeFilter, setEventTypeFilter] = React.useState("all");
|
|
82
|
+
const [outcomeFilter, setOutcomeFilter] = React.useState("all");
|
|
83
|
+
const [eventSearch, setEventSearch] = React.useState("");
|
|
84
|
+
const [eventSearchQuery, setEventSearchQuery] = React.useState("");
|
|
85
|
+
const [eventPagination, setEventPagination] = React.useState({ scope: "", page: 1 });
|
|
86
|
+
const [eventPageSize, setEventPageSize] = React.useState(25);
|
|
87
|
+
const eventPageSizeId = React.useId();
|
|
88
|
+
const [sessionSearch, setSessionSearch] = React.useState("");
|
|
89
|
+
const [sessionRefreshVersion, setSessionRefreshVersion] = React.useState(0);
|
|
90
|
+
const eventScope = JSON.stringify([selectedSessionId, eventTypeFilter, eventSearchQuery]);
|
|
91
|
+
const currentEventPage = eventPagination.scope === eventScope ? eventPagination.page : 1;
|
|
92
|
+
const eventFirst = (currentEventPage - 1) * eventPageSize;
|
|
93
|
+
const eventResult = eventApi.useGetSolidEntitiesQuery(
|
|
94
|
+
selectedSessionId == null ? "" : eventsQuery(selectedSessionId, eventFirst, eventPageSize, eventTypeFilter, eventSearchQuery),
|
|
95
|
+
{ skip: selectedSessionId == null });
|
|
96
|
+
const eventTypesResult = eventApi.useGetSolidEntitiesQuery(qs.stringify({
|
|
97
|
+
groupBy: ["eventType"], sort: ["eventType:asc"], filters: { session: { $eq: selectedSessionId } },
|
|
98
|
+
}), { skip: selectedSessionId == null });
|
|
99
|
+
const events = unwrapRecords(eventResult.currentData);
|
|
100
|
+
const totalEvents = Number(eventResult.currentData?.meta?.totalRecords ?? 0);
|
|
101
|
+
const eventPageCount = Math.max(1, Math.ceil(totalEvents / eventPageSize));
|
|
102
|
+
const isLoadingEvents = eventResult.isFetching || eventSearch.trim() !== eventSearchQuery;
|
|
103
|
+
const eventsError = eventResult.isError;
|
|
104
|
+
const agentOptions = React.useMemo(() => linkedAgents.map((agent) => ({
|
|
105
|
+
id: String(agent.id),
|
|
106
|
+
label: agent.name ?? agent.title ?? `Agent ${agent.id}`,
|
|
107
|
+
})), [linkedAgents]);
|
|
108
|
+
const linkedAgentKey = agentOptions.map((agent) => agent.id).join(",");
|
|
109
|
+
|
|
110
|
+
React.useEffect(() => {
|
|
111
|
+
let alive = true;
|
|
112
|
+
const requestedAgents = agentId != null ? scopedAgents : selectedAgent ? scopedAgents.filter((agent) => String(agent.id) === selectedAgent.id) : scopedAgents;
|
|
113
|
+
if (!requestedAgents.length) {
|
|
114
|
+
setSessions([]);
|
|
115
|
+
setSelectedSessionId(null);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
setIsLoadingSessions(true);
|
|
119
|
+
setSessionsError(false);
|
|
120
|
+
void Promise.all(requestedAgents.map(async (agent) => {
|
|
121
|
+
const result = await fetchSessions(sessionQuery(agent.id, processId), false).unwrap();
|
|
122
|
+
return unwrapRecords(result).map((item) => ({
|
|
123
|
+
...item,
|
|
124
|
+
agent: item.agent && typeof item.agent === "object" ? item.agent : agent,
|
|
125
|
+
} as SessionRecord));
|
|
126
|
+
})).then((groups) => {
|
|
127
|
+
if (!alive) return;
|
|
128
|
+
const unique = new Map<string, SessionRecord>();
|
|
129
|
+
groups.flat().forEach((session) => unique.set(String(session.id), session));
|
|
130
|
+
const ordered = Array.from(unique.values()).sort((a, b) => new Date(b.startedAt ?? 0).getTime() - new Date(a.startedAt ?? 0).getTime());
|
|
131
|
+
setSessions(ordered);
|
|
132
|
+
setSelectedSessionId((current) => ordered.some((session) => session.id === current) ? current : ordered[0]?.id ?? null);
|
|
133
|
+
}).catch(() => {
|
|
134
|
+
if (alive) {
|
|
135
|
+
setSessions([]);
|
|
136
|
+
setSelectedSessionId(null);
|
|
137
|
+
setSessionsError(true);
|
|
138
|
+
}
|
|
139
|
+
}).finally(() => alive && setIsLoadingSessions(false));
|
|
140
|
+
return () => { alive = false; };
|
|
141
|
+
}, [agentId, fetchSessions, linkedAgentKey, processId, scopedAgents, selectedAgent, sessionRefreshVersion]);
|
|
142
|
+
|
|
143
|
+
React.useEffect(() => {
|
|
144
|
+
const timer = window.setTimeout(() => setEventSearchQuery(eventSearch.trim()), 300);
|
|
145
|
+
return () => window.clearTimeout(timer);
|
|
146
|
+
}, [eventSearch]);
|
|
147
|
+
|
|
148
|
+
const eventTypes = Array.from(new Set([
|
|
149
|
+
...((eventTypesResult.currentData?.groupMeta ?? []) as any[]).map((group) => String(group.groupValue ?? "")),
|
|
150
|
+
...events.map((event) => String(event.eventType ?? "")),
|
|
151
|
+
eventTypeFilter === "all" ? "" : eventTypeFilter,
|
|
152
|
+
].filter(Boolean))).sort();
|
|
153
|
+
const visibleEvents = events.filter((event) => outcomeFilter === "all"
|
|
154
|
+
|| Boolean(getAgentEventFailure(event)) === (outcomeFilter === "failure"));
|
|
155
|
+
React.useEffect(() => {
|
|
156
|
+
if (!isLoadingEvents && eventResult.currentData && currentEventPage > eventPageCount) {
|
|
157
|
+
setEventPagination({ scope: eventScope, page: eventPageCount });
|
|
158
|
+
}
|
|
159
|
+
}, [isLoadingEvents, eventResult.currentData, currentEventPage, eventPageCount, eventScope]);
|
|
160
|
+
React.useEffect(() => {
|
|
161
|
+
if (eventsTableRef.current) eventsTableRef.current.scrollTop = 0;
|
|
162
|
+
}, [currentEventPage, eventPageSize, selectedSessionId, eventSearch, eventTypeFilter, outcomeFilter]);
|
|
163
|
+
const selectedSession = sessions.find((session) => session.id === selectedSessionId);
|
|
164
|
+
const visibleSessions = React.useMemo(() => {
|
|
165
|
+
const query = sessionSearch.trim().toLowerCase();
|
|
166
|
+
if (!query) return sessions;
|
|
167
|
+
return sessions.filter((session) => [session.sessionId, session.id, session.status, agentName(session, scopedAgents)]
|
|
168
|
+
.some((value) => String(value ?? "").toLowerCase().includes(query)));
|
|
169
|
+
}, [scopedAgents, sessionSearch, sessions]);
|
|
170
|
+
|
|
171
|
+
return (
|
|
172
|
+
<section className="agent-tool-editor__sessions" aria-label="Sessions and events">
|
|
173
|
+
<aside className="agent-tool-editor__sessions-sidebar">
|
|
174
|
+
<header className="agent-tool-editor__sessions-sidebar-head">
|
|
175
|
+
<div><div className="agent-tool-editor__sessions-heading"><h2>Sessions</h2><button type="button" className={`agent-tool-editor__refresh${isLoadingSessions ? " is-loading" : ""}`} aria-label="Refresh sessions" title="Refresh sessions" disabled={isLoadingSessions} onClick={() => setSessionRefreshVersion((version) => version + 1)}><RefreshCw size={13} /></button><span>{visibleSessions.length}{visibleSessions.length !== sessions.length ? ` / ${sessions.length}` : ""}</span></div></div>
|
|
176
|
+
<p>{processId != null ? `In ${processLabel ?? `process #${processId}`}.` : agentId != null ? "Browse activity for this agent." : "Browse activity across linked agents."}</p>
|
|
177
|
+
{agentId == null && linkedAgents.length > 1 && <label className="agent-tool-editor__sessions-agent-filter"><span>Agent</span>
|
|
178
|
+
<SolidAutocomplete
|
|
179
|
+
value={selectedAgent ? [selectedAgent] : []}
|
|
180
|
+
suggestions={agentOptions}
|
|
181
|
+
field="label"
|
|
182
|
+
multiple
|
|
183
|
+
maxVisibleChips={1}
|
|
184
|
+
dropdown
|
|
185
|
+
forceSelection
|
|
186
|
+
portal
|
|
187
|
+
placeholder="All linked agents"
|
|
188
|
+
onChange={(event: any) => setSelectedAgent(Array.isArray(event.value) ? event.value[0] ?? null : null)}
|
|
189
|
+
/>
|
|
190
|
+
</label>}
|
|
191
|
+
<label className="agent-tool-editor__session-search"><span className="sr-only">Find a session</span><Search size={14} /><SolidInput value={sessionSearch} placeholder="Find session or agent…" onChange={(event: any) => setSessionSearch(event.target.value)} /></label>
|
|
192
|
+
</header>
|
|
193
|
+
<div className="agent-tool-editor__session-list" role="listbox" aria-label="Sessions">
|
|
194
|
+
{isLoadingSessions ? <p className="agent-tool-editor__sessions-message">Loading sessions…</p>
|
|
195
|
+
: sessionsError ? <p className="agent-tool-editor__sessions-message agent-tool-editor__sessions-message--error"><AlertCircle size={15} /> Could not load sessions.</p>
|
|
196
|
+
: sessions.length === 0 ? <p className="agent-tool-editor__sessions-message">{processId != null ? "No sessions assigned to this process. Older unassigned sessions remain in the Sessions tab." : "No sessions found for linked agents."}</p>
|
|
197
|
+
: visibleSessions.length === 0 ? <p className="agent-tool-editor__sessions-message">No sessions match this search.</p>
|
|
198
|
+
: visibleSessions.map((session) => {
|
|
199
|
+
const sessionLabel = session.sessionId ?? String(session.id);
|
|
200
|
+
const rawStatus = String(session.status ?? "").toLowerCase();
|
|
201
|
+
const statusLabel = rawStatus === "active" ? "Idle"
|
|
202
|
+
: rawStatus === "awaiting_input" ? "Awaiting input"
|
|
203
|
+
: rawStatus === "awaiting_approval" ? "Awaiting approval"
|
|
204
|
+
: rawStatus ? rawStatus.replace(/[_-]+/g, " ") : session.endedAt ? "Ended" : "Open";
|
|
205
|
+
return <button
|
|
206
|
+
type="button"
|
|
207
|
+
role="option"
|
|
208
|
+
aria-selected={session.id === selectedSessionId}
|
|
209
|
+
className={`agent-tool-editor__session-item${session.id === selectedSessionId ? " is-selected" : ""}`}
|
|
210
|
+
key={session.id}
|
|
211
|
+
onClick={() => setSelectedSessionId(session.id)}
|
|
212
|
+
title={sessionLabel}
|
|
213
|
+
>
|
|
214
|
+
<span className="agent-tool-editor__session-item-id" title={sessionLabel}>{sessionLabel}</span>
|
|
215
|
+
<span className="agent-tool-editor__session-item-meta"><span><Clock3 size={12} /> {ago(session.startedAt)}</span><span className={`agent-tool-editor__session-status${rawStatus === "running" ? " is-running" : rawStatus === "active" ? " is-idle" : ""}`}>{statusLabel}</span></span>
|
|
216
|
+
{agentId == null && <small>{agentName(session, scopedAgents)}</small>}
|
|
217
|
+
</button>;
|
|
218
|
+
})}
|
|
219
|
+
</div>
|
|
220
|
+
</aside>
|
|
221
|
+
|
|
222
|
+
<div className="agent-tool-editor__session-events">
|
|
223
|
+
<header className="agent-tool-editor__events-head">
|
|
224
|
+
<div className="agent-tool-editor__events-title">
|
|
225
|
+
<div><div className="agent-tool-editor__heading-with-refresh"><h2>Events</h2><button type="button" className={`agent-tool-editor__refresh${isLoadingEvents ? " is-loading" : ""}`} aria-label="Refresh events" title="Refresh events" disabled={!selectedSessionId || isLoadingEvents} onClick={() => { void eventResult.refetch(); void eventTypesResult.refetch(); }}><RefreshCw size={13} /></button></div><p>{selectedSession ? `${selectedSession.sessionId ?? selectedSession.id} · ${agentName(selectedSession, scopedAgents)}` : "Select a session to inspect its events."}</p></div>
|
|
226
|
+
<span>{outcomeFilter === "all" ? totalEvents : `${visibleEvents.length} / ${events.length} on page`}</span>
|
|
227
|
+
</div>
|
|
228
|
+
<div className="agent-tool-editor__event-filters">
|
|
229
|
+
<label><span>Event type</span><select value={eventTypeFilter} onChange={(event: React.ChangeEvent<HTMLSelectElement>) => setEventTypeFilter(event.target.value)}>
|
|
230
|
+
<option value="all">All types</option>{eventTypes.map((eventType) => <option key={eventType} value={eventType}>{eventType}</option>)}
|
|
231
|
+
</select></label>
|
|
232
|
+
<label><span>Outcome (current page)</span><select value={outcomeFilter} onChange={(event: React.ChangeEvent<HTMLSelectElement>) => setOutcomeFilter(event.target.value)}>
|
|
233
|
+
<option value="all">All outcomes</option><option value="success">Success</option><option value="failure">Failure</option>
|
|
234
|
+
</select></label>
|
|
235
|
+
<label className="agent-tool-editor__event-search"><span>Search events</span><span className="agent-tool-editor__event-search-control"><Search size={15} /><SolidInput value={eventSearch} placeholder="Search events…" onChange={(event: React.ChangeEvent<HTMLInputElement>) => setEventSearch(event.target.value)} /></span></label>
|
|
236
|
+
<nav className="agent-tool-editor__event-pagination" aria-label="Event pagination">
|
|
237
|
+
<div className="solid-paginator-meta flex items-center gap-2">
|
|
238
|
+
<label className="solid-paginator-label" htmlFor={eventPageSizeId}>Rows</label>
|
|
239
|
+
<SolidSelect id={eventPageSizeId} value={eventPageSize} className="solid-paginator-select"
|
|
240
|
+
options={EVENT_PAGE_SIZE_OPTIONS.map((value) => ({ label: String(value), value }))}
|
|
241
|
+
native={false} menuPlacement="bottom" disabled={isLoadingEvents || eventsError}
|
|
242
|
+
onChange={({ value }) => { setEventPageSize(Number(value)); setEventPagination({ scope: eventScope, page: 1 }); }} />
|
|
243
|
+
<span className="solid-paginator-report" aria-live="polite">{isLoadingEvents ? "Loading…" : `${events.length ? eventFirst + 1 : 0} - ${events.length ? Math.min(eventFirst + events.length, totalEvents) : 0} of ${totalEvents}`}</span>
|
|
244
|
+
</div>
|
|
245
|
+
<div className="solid-paginator-actions flex items-center gap-2">
|
|
246
|
+
<button type="button" className="solid-paginator-btn" aria-label="Previous event page" disabled={isLoadingEvents || eventsError || currentEventPage === 1} onClick={() => setEventPagination({ scope: eventScope, page: currentEventPage - 1 })}>Previous</button>
|
|
247
|
+
<button type="button" className="solid-paginator-btn" aria-label="Next event page" disabled={isLoadingEvents || eventsError || currentEventPage >= eventPageCount} onClick={() => setEventPagination({ scope: eventScope, page: currentEventPage + 1 })}>Next</button>
|
|
248
|
+
</div>
|
|
249
|
+
</nav>
|
|
250
|
+
</div>
|
|
251
|
+
</header>
|
|
252
|
+
<div className="agent-tool-editor__events-table-wrap" ref={eventsTableRef}>
|
|
253
|
+
{isLoadingEvents ? <p className="agent-tool-editor__sessions-message">Loading events…</p>
|
|
254
|
+
: eventsError ? <p className="agent-tool-editor__sessions-message agent-tool-editor__sessions-message--error"><AlertCircle size={15} /> Could not load events for this session.</p>
|
|
255
|
+
: !selectedSession ? <p className="agent-tool-editor__sessions-message">Choose a session from the left to view its events.</p>
|
|
256
|
+
: visibleEvents.length === 0 ? <p className="agent-tool-editor__sessions-message">{events.length ? "No events on this page match the outcome filter." : "No events match these filters."}</p>
|
|
257
|
+
: <table className="agent-tool-editor__events-table">
|
|
258
|
+
<thead><tr><th>Time</th><th>Event type</th><th>Tool</th><th>Cost</th><th>Tokens</th></tr></thead>
|
|
259
|
+
<tbody>{visibleEvents.map((event) => <tr key={event.id} className="agent-tool-editor__event-row"
|
|
260
|
+
onClick={(click) => { if (!(click.target as Element).closest("button, a")) setSelectedEventId(event.id); }}>
|
|
261
|
+
<td><button type="button" className="agent-tool-editor__event-open" aria-label={`View ${event.eventType || "event"} #${event.id}`} onClick={() => setSelectedEventId(event.id)}>
|
|
262
|
+
{event.createdAt ? new Date(event.createdAt).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", second: "2-digit" }) : "—"}
|
|
263
|
+
</button></td>
|
|
264
|
+
<td><AgentEventOutcomeListWidget rowData={event} fieldMetadata={{ name: "eventType" } as any} solidListViewMetaData={{}} column={{ attrs: {} }} /></td>
|
|
265
|
+
<td>{event.toolName || "—"}</td>
|
|
266
|
+
<td>{event.cost == null ? "—" : Number(event.cost).toLocaleString(undefined, { maximumFractionDigits: 6 })}</td>
|
|
267
|
+
<td>{event.inputTokens || event.outputTokens ? `${event.inputTokens ?? 0} / ${event.outputTokens ?? 0}` : "—"}</td>
|
|
268
|
+
</tr>)}</tbody>
|
|
269
|
+
</table>}
|
|
270
|
+
</div>
|
|
271
|
+
</div>
|
|
272
|
+
<SolidDialog open={selectedEventId != null} onOpenChange={(open) => { if (!open) setSelectedEventId(null); }}
|
|
273
|
+
className="solid-dialog solid-inline-relation-dialog" style={{ width: "min(70rem, 95vw)" }} showHeader={false}>
|
|
274
|
+
<SolidDialogHeader className="solid-sr-only">
|
|
275
|
+
<SolidDialogTitle>Event #{selectedEventId}</SolidDialogTitle>
|
|
276
|
+
<SolidDialogDescription>View the selected event's details and data.</SolidDialogDescription>
|
|
277
|
+
</SolidDialogHeader>
|
|
278
|
+
{selectedEventId != null && <React.Suspense fallback={<p className="agent-tool-editor__sessions-message">Loading event…</p>}>
|
|
279
|
+
<EventFormView key={selectedEventId} moduleName="solid-core" modelName="agentEvent" id={String(selectedEventId)} embeded viewMode="view" handlePopupClose={() => setSelectedEventId(null)} />
|
|
280
|
+
</React.Suspense>}
|
|
281
|
+
</SolidDialog>
|
|
282
|
+
</section>
|
|
283
|
+
);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export const AgentToolSessionsPanel = AgentSessionsPanel;
|
package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteModelRowAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"DeleteModelRowAction.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AAqB1F,QAAA,MAAM,oBAAoB,UAAW,oCAAoC,4CA4HxE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js
CHANGED
|
@@ -34,91 +34,131 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import { jsx as _jsx,
|
|
37
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
38
38
|
import { closePopup } from "../../../../../../redux/features/popupSlice";
|
|
39
|
-
import { useState } from "react";
|
|
39
|
+
import { useEffect, useState } from "react";
|
|
40
40
|
import { useDispatch } from "react-redux";
|
|
41
41
|
import { showToast } from "../../../../../../redux/features/toastSlice";
|
|
42
|
-
import {
|
|
43
|
-
import { createSolidEntityApi } from "../../../../../../redux/api/solidEntityApi";
|
|
42
|
+
import { useApplyDeleteModelMutation, usePreviewDeleteModelMutation } from "../../../../../../redux/api/modelApi";
|
|
44
43
|
import { ERROR_MESSAGES } from "../../../../../../constants/error-messages";
|
|
45
|
-
import { SolidButton, SolidCheckbox } from "../../../../../shad-cn-ui";
|
|
44
|
+
import { SolidButton, SolidCheckbox, SolidSpinner } from "../../../../../shad-cn-ui";
|
|
46
45
|
import { pingBackendAvailability } from "../../../../../../helpers/waitForBackendAvailability";
|
|
47
46
|
import { backendHealthMonitor } from "../../../../../../helpers/backendHealthMonitor";
|
|
48
|
-
|
|
47
|
+
import { Check, Copy } from "lucide-react";
|
|
48
|
+
var displayInventoryItem = function (item) {
|
|
49
|
+
if (!item.startsWith("/"))
|
|
50
|
+
return item;
|
|
51
|
+
var sourceIndex = item.lastIndexOf("/src/");
|
|
52
|
+
if (sourceIndex >= 0)
|
|
53
|
+
return item.slice(sourceIndex + 1);
|
|
54
|
+
return item.split("/").slice(-2).join("/");
|
|
55
|
+
};
|
|
49
56
|
var DeleteModelRowAction = function (event) {
|
|
50
|
-
var _a
|
|
51
|
-
var _b = useState(false), isApplying = _b[0], setIsApplying = _b[1];
|
|
57
|
+
var _a, _b, _c;
|
|
52
58
|
var dispatch = useDispatch();
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
var
|
|
56
|
-
var
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
var _d = useState(null), preview = _d[0], setPreview = _d[1];
|
|
60
|
+
var _e = useState(null), previewError = _e[0], setPreviewError = _e[1];
|
|
61
|
+
var _f = useState(false), isConfirmed = _f[0], setIsConfirmed = _f[1];
|
|
62
|
+
var _g = useState(false), copiedDdl = _g[0], setCopiedDdl = _g[1];
|
|
63
|
+
var _h = usePreviewDeleteModelMutation(), loadPreview = _h[0], isLoadingPreview = _h[1].isLoading;
|
|
64
|
+
var _j = useApplyDeleteModelMutation(), applyDelete = _j[0], isApplying = _j[1].isLoading;
|
|
65
|
+
var refreshPreview = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
66
|
+
var result, error_1;
|
|
67
|
+
var _a;
|
|
68
|
+
return __generator(this, function (_b) {
|
|
69
|
+
switch (_b.label) {
|
|
61
70
|
case 0:
|
|
62
|
-
|
|
71
|
+
setPreview(null);
|
|
72
|
+
setPreviewError(null);
|
|
73
|
+
setIsConfirmed(false);
|
|
74
|
+
_b.label = 1;
|
|
75
|
+
case 1:
|
|
76
|
+
_b.trys.push([1, 3, , 4]);
|
|
77
|
+
return [4 /*yield*/, loadPreview(event.rowData.id).unwrap()];
|
|
78
|
+
case 2:
|
|
79
|
+
result = _b.sent();
|
|
80
|
+
setPreview(result);
|
|
81
|
+
return [3 /*break*/, 4];
|
|
82
|
+
case 3:
|
|
83
|
+
error_1 = _b.sent();
|
|
84
|
+
setPreviewError(((_a = error_1 === null || error_1 === void 0 ? void 0 : error_1.data) === null || _a === void 0 ? void 0 : _a.message) || (error_1 === null || error_1 === void 0 ? void 0 : error_1.error) || ERROR_MESSAGES.ERROR_OCCURED);
|
|
85
|
+
return [3 /*break*/, 4];
|
|
86
|
+
case 4: return [2 /*return*/];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}); };
|
|
90
|
+
useEffect(function () { void refreshPreview(); }, [event.rowData.id]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
91
|
+
var automaticChanges = (_a = preview === null || preview === void 0 ? void 0 : preview.changes.filter(function (change) { return change.category !== 'Manual follow-up' && change.count > 0; })) !== null && _a !== void 0 ? _a : [];
|
|
92
|
+
var automaticItemCount = automaticChanges.reduce(function (total, change) { return total + change.count; }, 0);
|
|
93
|
+
var manualFollowUp = preview === null || preview === void 0 ? void 0 : preview.changes.find(function (change) { return change.category === 'Manual follow-up'; });
|
|
94
|
+
var tableName = (_c = (_b = manualFollowUp === null || manualFollowUp === void 0 ? void 0 : manualFollowUp.items[0]) === null || _b === void 0 ? void 0 : _b.replace(/ database table$/, '')) !== null && _c !== void 0 ? _c : '';
|
|
95
|
+
var quotedTableName = tableName.split('.').map(function (part) { return "\"".concat(part.replace(/"/g, '""'), "\""); }).join('.');
|
|
96
|
+
var dropTableStatement = tableName ? "DROP TABLE IF EXISTS ".concat(quotedTableName, ";") : '';
|
|
97
|
+
var copyDropStatement = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
98
|
+
var _a;
|
|
99
|
+
return __generator(this, function (_b) {
|
|
100
|
+
switch (_b.label) {
|
|
101
|
+
case 0:
|
|
102
|
+
if (!dropTableStatement)
|
|
63
103
|
return [2 /*return*/];
|
|
64
|
-
|
|
65
|
-
setIsApplying(true);
|
|
66
|
-
_d.label = 1;
|
|
104
|
+
_b.label = 1;
|
|
67
105
|
case 1:
|
|
68
|
-
|
|
69
|
-
return [4 /*yield*/,
|
|
106
|
+
_b.trys.push([1, 3, , 4]);
|
|
107
|
+
return [4 /*yield*/, navigator.clipboard.writeText(dropTableStatement)];
|
|
70
108
|
case 2:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
ERROR_MESSAGES.ERROR_OCCURED;
|
|
76
|
-
dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.DELETE_FAIELD, detail: message }));
|
|
77
|
-
return [3 /*break*/, 6];
|
|
109
|
+
_b.sent();
|
|
110
|
+
setCopiedDdl(true);
|
|
111
|
+
window.setTimeout(function () { return setCopiedDdl(false); }, 1800);
|
|
112
|
+
return [3 /*break*/, 4];
|
|
78
113
|
case 3:
|
|
114
|
+
_a = _b.sent();
|
|
115
|
+
setPreviewError('Unable to copy the DROP TABLE statement. Select and copy it manually.');
|
|
116
|
+
return [3 /*break*/, 4];
|
|
117
|
+
case 4: return [2 /*return*/];
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}); };
|
|
121
|
+
var deleteModelHandler = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
122
|
+
var isBackendAvailable, error_2, updatedPreview;
|
|
123
|
+
var _a, _b;
|
|
124
|
+
return __generator(this, function (_c) {
|
|
125
|
+
switch (_c.label) {
|
|
126
|
+
case 0:
|
|
127
|
+
if (!preview || !isConfirmed || isApplying)
|
|
128
|
+
return [2 /*return*/];
|
|
129
|
+
_c.label = 1;
|
|
130
|
+
case 1:
|
|
131
|
+
_c.trys.push([1, 4, , 5]);
|
|
132
|
+
return [4 /*yield*/, applyDelete({ id: event.rowData.id, planHash: preview.planHash }).unwrap()];
|
|
133
|
+
case 2:
|
|
134
|
+
_c.sent();
|
|
79
135
|
dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));
|
|
80
|
-
return [4 /*yield*/, new Promise(function (resolve) { return window.setTimeout(resolve, DELETE_MODEL_DIALOG_DISMISS_DELAY_MS); })];
|
|
81
|
-
case 4:
|
|
82
|
-
_d.sent();
|
|
83
136
|
dispatch(closePopup());
|
|
84
137
|
return [4 /*yield*/, pingBackendAvailability()];
|
|
85
|
-
case
|
|
86
|
-
isBackendAvailable =
|
|
87
|
-
if (isBackendAvailable)
|
|
138
|
+
case 3:
|
|
139
|
+
isBackendAvailable = _c.sent();
|
|
140
|
+
if (isBackendAvailable)
|
|
88
141
|
backendHealthMonitor.reportSuccess();
|
|
142
|
+
else
|
|
143
|
+
backendHealthMonitor.reportFailure({ status: "FETCH_ERROR", message: "Unable to reach the server. Reconnecting..." });
|
|
144
|
+
return [3 /*break*/, 5];
|
|
145
|
+
case 4:
|
|
146
|
+
error_2 = _c.sent();
|
|
147
|
+
updatedPreview = (_a = error_2 === null || error_2 === void 0 ? void 0 : error_2.data) === null || _a === void 0 ? void 0 : _a.preview;
|
|
148
|
+
if (updatedPreview) {
|
|
149
|
+
setPreview(updatedPreview);
|
|
150
|
+
setIsConfirmed(false);
|
|
151
|
+
setPreviewError('The inventory changed since it was reviewed. Please review the updated changes and confirm again.');
|
|
89
152
|
}
|
|
90
153
|
else {
|
|
91
|
-
|
|
92
|
-
status: "FETCH_ERROR",
|
|
93
|
-
message: "Unable to reach the server. Reconnecting...",
|
|
94
|
-
});
|
|
154
|
+
setPreviewError(((_b = error_2 === null || error_2 === void 0 ? void 0 : error_2.data) === null || _b === void 0 ? void 0 : _b.message) || (error_2 === null || error_2 === void 0 ? void 0 : error_2.error) || ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR);
|
|
95
155
|
}
|
|
96
|
-
|
|
97
|
-
case
|
|
98
|
-
case 7:
|
|
99
|
-
err_1 = _d.sent();
|
|
100
|
-
console.error("catch error", err_1);
|
|
101
|
-
dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR }));
|
|
102
|
-
return [3 /*break*/, 9];
|
|
103
|
-
case 8:
|
|
104
|
-
setIsApplying(false);
|
|
105
|
-
return [7 /*endfinally*/];
|
|
106
|
-
case 9: return [2 /*return*/];
|
|
156
|
+
return [3 /*break*/, 5];
|
|
157
|
+
case 5: return [2 /*return*/];
|
|
107
158
|
}
|
|
108
159
|
});
|
|
109
160
|
}); };
|
|
110
|
-
|
|
111
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), ".entity.ts"), description: 'The TypeORM entity definition for this model. Deleting it removes the model’s schema mapping', intervention: 'Automatic' },
|
|
112
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), ".create.dto.ts"), description: 'DTO defining the payload for creating a new record of this model', intervention: 'Automatic' },
|
|
113
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), ".update.dto.ts"), description: 'DTO defining the payload for updating an existing record of this model', intervention: 'Automatic' },
|
|
114
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), ".repository.ts"), description: 'Custom repository encapsulating database operations for this model', intervention: 'Automatic' },
|
|
115
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), ".service.ts"), description: 'Service layer containing business logic and interactions for this model', intervention: 'Automatic' },
|
|
116
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), ".controller.ts"), description: 'Controller exposing API endpoints related to this model', intervention: 'Automatic' },
|
|
117
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), ".module.ts"), description: 'Module declaration that wires together the controller, service, and repository. All imports and references to the deleted model are removed automatically', intervention: 'Automatic' },
|
|
118
|
-
{ file: "".concat(kebabCase(event.rowData.singularName), "-metadata.json"), description: 'Remove references to this model in the model metadata, menu, action & view sections', intervention: 'Automatic' },
|
|
119
|
-
{ file: '-', description: 'Drop database table. Removes the database table from the DB, this is a very risky step. Best to review all relations to other models etc and then do this manually', intervention: 'Manual (X)', manual: true },
|
|
120
|
-
];
|
|
121
|
-
return (_jsxs("div", { className: "solid-delete-model-popup", children: [_jsx("div", { className: "solid-filter-dialog-head solid-delete-model-popup__head", children: _jsxs("div", { children: [_jsx("h3", { className: "solid-filter-dialog-title", children: "Delete Model" }), _jsx("p", { className: "solid-filter-dialog-subtitle m-0", children: "Review the impacted files carefully before applying this delete action." })] }) }), _jsx("div", { className: "solid-filter-dialog-sep" }), _jsxs("div", { className: "solid-filter-dialog-body solid-delete-model-popup__body", children: [_jsx("p", { className: "solid-delete-model-popup__intro", children: "Deleting a model should be done carefully. The following files will be impacted as part of deleting this model." }), _jsx("div", { className: "solid-delete-model-popup__table-wrap", children: _jsxs("table", { className: "solid-delete-model-popup__table", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "File Name" }), _jsx("th", { children: "Description" }), _jsx("th", { children: "Intervention" })] }) }), _jsx("tbody", { children: rows.map(function (row) { return (_jsxs("tr", { children: [_jsx("td", { className: "solid-delete-model-popup__file", children: row.file }), _jsx("td", { children: row.description }), _jsx("td", { className: row.manual ? "solid-delete-model-popup__intervention is-manual" : "solid-delete-model-popup__intervention", children: row.intervention })] }, "".concat(row.file, "-").concat(row.intervention))); }) })] }) }), _jsx("div", { className: "solid-delete-model-popup__confirm", children: _jsx(SolidCheckbox, { id: "delete-model-confirmation", name: "confirm", checked: isConfirmed, onChange: function () { return setIsConfirmed(!isConfirmed); }, label: "I confirm that #9 (drop database table) will be done by me manually after the automatic steps above are applied." }) }), _jsxs("div", { className: "solid-delete-model-popup__actions", children: [_jsx(SolidButton, { size: "small", disabled: !isConfirmed || isApplying, loading: isApplying, autoFocus: true, onClick: deleteModelHandler, children: "Apply" }), _jsx(SolidButton, { size: "small", variant: "outline", disabled: isApplying, onClick: function () { return dispatch(closePopup()); }, children: "Cancel" })] })] })] }));
|
|
161
|
+
return (_jsxs("div", { className: "solid-delete-model-popup", children: [_jsx("div", { className: "solid-filter-dialog-head solid-delete-model-popup__head", children: _jsxs("div", { children: [_jsxs("h3", { className: "solid-filter-dialog-title", children: ["Delete ", event.rowData.displayName || event.rowData.singularName] }), _jsx("p", { className: "solid-filter-dialog-subtitle m-0", children: "Review the automatic cleanup before deleting this model." })] }) }), _jsx("div", { className: "solid-filter-dialog-sep" }), _jsxs("div", { className: "solid-filter-dialog-body solid-delete-model-popup__body", children: [isLoadingPreview && _jsx("div", { className: "flex justify-center p-4", children: _jsx(SolidSpinner, {}) }), previewError && _jsx("div", { role: "alert", className: "text-sm text-destructive mb-3", children: previewError }), preview && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "solid-delete-model-popup__summary", "aria-label": "Deletion impact summary", children: [_jsxs("div", { children: [_jsx("strong", { children: automaticItemCount }), _jsx("span", { children: "automatic changes" })] }), _jsxs("div", { children: [_jsx("strong", { children: automaticChanges.length }), _jsx("span", { children: "areas affected" })] })] }), _jsxs("div", { className: "solid-delete-model-popup__inventory", "aria-label": "Automatic deletion changes", children: [automaticChanges.map(function (change, index) { return (_jsxs("details", { className: "solid-delete-model-popup__change", children: [_jsxs("summary", { children: [_jsx("span", { className: "solid-delete-model-popup__change-name", children: change.category }), _jsx("span", { className: "solid-delete-model-popup__change-description", children: change.description }), _jsx("span", { className: "solid-delete-model-popup__count", children: change.count })] }), change.items.length > 0 && (_jsx("ul", { className: "solid-delete-model-popup__items", children: change.items.map(function (item, itemIndex) { return _jsx("li", { title: item, children: displayInventoryItem(item) }, "".concat(item, "-").concat(itemIndex)); }) }))] }, "".concat(change.category, "-").concat(index))); }), automaticChanges.length === 0 && _jsx("p", { className: "solid-delete-model-popup__empty", children: "No related automatic cleanup was found." })] }), manualFollowUp && manualFollowUp.count > 0 && (_jsxs("aside", { className: "solid-delete-model-popup__manual", children: [_jsx("strong", { children: "Manual follow-up" }), _jsx("span", { children: manualFollowUp.description }), dropTableStatement && _jsxs("div", { className: "solid-delete-model-popup__ddl", children: [_jsx("code", { children: dropTableStatement }), _jsx("button", { type: "button", className: "solid-delete-model-popup__copy-ddl", onClick: copyDropStatement, "aria-label": copiedDdl ? 'DDL copied' : 'Copy DROP TABLE statement', title: copiedDdl ? 'Copied' : 'Copy SQL', children: copiedDdl ? _jsx(Check, { size: 13 }) : _jsx(Copy, { size: 13 }) })] })] }))] }))] }), _jsx("div", { className: "solid-filter-dialog-sep" }), _jsxs("div", { className: "solid-delete-model-popup__footer", children: [preview && _jsx("div", { className: "solid-delete-model-popup__confirm", children: _jsx(SolidCheckbox, { id: "delete-model-confirmation", name: "confirm", checked: isConfirmed, onChange: function () { return setIsConfirmed(!isConfirmed); }, label: "I reviewed the automatic changes above and understand the database table drop is a separate manual step." }) }), _jsxs("div", { className: "solid-delete-model-popup__actions", children: [_jsx(SolidButton, { size: "small", variant: "destructive", disabled: !preview || !isConfirmed || isApplying || isLoadingPreview, loading: isApplying, autoFocus: true, onClick: deleteModelHandler, children: "Delete model" }), _jsx(SolidButton, { size: "small", variant: "outline", disabled: isApplying, onClick: function () { return dispatch(closePopup()); }, children: "Cancel" })] })] })] }));
|
|
122
162
|
};
|
|
123
163
|
export default DeleteModelRowAction;
|
|
124
164
|
//# sourceMappingURL=DeleteModelRowAction.js.map
|
package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteModelRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../../../../redux/features/toastSlice\";\nimport { kebabCase } from \"lodash\";\nimport { createSolidEntityApi } from \"../../../../../../redux/api/solidEntityApi\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { SolidButton, SolidCheckbox } from \"../../../../../shad-cn-ui\";\nimport { pingBackendAvailability } from \"../../../../../../helpers/waitForBackendAvailability\";\nimport { backendHealthMonitor } from \"../../../../../../helpers/backendHealthMonitor\";\n\nconst DELETE_MODEL_DIALOG_DISMISS_DELAY_MS = 3_000;\n\nconst DeleteModelRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n const [isConfirmed, setIsConfirmed] = useState(false);\n const [isApplying, setIsApplying] = useState(false);\n const dispatch = useDispatch();\n const entityApi = createSolidEntityApi(event.params.modelName);\n const {useDeleteSolidEntityMutation} = entityApi;\n const [deleteSolidSingleEntiry] = useDeleteSolidEntityMutation()\n\n const deleteModelHandler = async () => {\n if (isApplying) {\n return;\n }\n\n setIsApplying(true);\n try {\n const res: any = await deleteSolidSingleEntiry(event.rowData.id);\n \n // console.log('delete model res', res);\n if (res.error) {\n // handle backend or RTK error object\n const message =\n res.error?.data?.message ||\n res.error?.error ||\n ERROR_MESSAGES.ERROR_OCCURED;\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.DELETE_FAIELD, detail: message }));\n } else {\n dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));\n await new Promise((resolve) => window.setTimeout(resolve, DELETE_MODEL_DIALOG_DISMISS_DELAY_MS));\n dispatch(closePopup());\n\n const isBackendAvailable = await pingBackendAvailability();\n if (isBackendAvailable) {\n backendHealthMonitor.reportSuccess();\n } else {\n backendHealthMonitor.reportFailure({\n status: \"FETCH_ERROR\",\n message: \"Unable to reach the server. Reconnecting...\",\n });\n }\n }\n } catch (err: any) {\n console.error(\"catch error\", err);\n dispatch(showToast({ severity: 'error', summary: ERROR_MESSAGES.ERROR, detail: ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR }));\n } finally {\n setIsApplying(false);\n }\n }\n\n const rows = [\n { file: `${kebabCase(event.rowData.singularName)}.entity.ts`, description: 'The TypeORM entity definition for this model. Deleting it removes the model’s schema mapping', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.create.dto.ts`, description: 'DTO defining the payload for creating a new record of this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.update.dto.ts`, description: 'DTO defining the payload for updating an existing record of this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.repository.ts`, description: 'Custom repository encapsulating database operations for this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.service.ts`, description: 'Service layer containing business logic and interactions for this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.controller.ts`, description: 'Controller exposing API endpoints related to this model', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}.module.ts`, description: 'Module declaration that wires together the controller, service, and repository. All imports and references to the deleted model are removed automatically', intervention: 'Automatic' },\n { file: `${kebabCase(event.rowData.singularName)}-metadata.json`, description: 'Remove references to this model in the model metadata, menu, action & view sections', intervention: 'Automatic' },\n { file: '-', description: 'Drop database table. Removes the database table from the DB, this is a very risky step. Best to review all relations to other models etc and then do this manually', intervention: 'Manual (X)', manual: true },\n ];\n\n\n\n return (\n <div className=\"solid-delete-model-popup\">\n <div className=\"solid-filter-dialog-head solid-delete-model-popup__head\">\n <div>\n <h3 className=\"solid-filter-dialog-title\">Delete Model</h3>\n <p className=\"solid-filter-dialog-subtitle m-0\">\n Review the impacted files carefully before applying this delete action.\n </p>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-filter-dialog-body solid-delete-model-popup__body\">\n <p className=\"solid-delete-model-popup__intro\">\n Deleting a model should be done carefully. The following files will be impacted as part of deleting this model.\n </p>\n\n <div className=\"solid-delete-model-popup__table-wrap\">\n <table className=\"solid-delete-model-popup__table\">\n <thead>\n <tr>\n <th>File Name</th>\n <th>Description</th>\n <th>Intervention</th>\n </tr>\n </thead>\n <tbody>\n {rows.map((row) => (\n <tr key={`${row.file}-${row.intervention}`}>\n <td className=\"solid-delete-model-popup__file\">{row.file}</td>\n <td>{row.description}</td>\n <td className={row.manual ? \"solid-delete-model-popup__intervention is-manual\" : \"solid-delete-model-popup__intervention\"}>\n {row.intervention}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n\n <div className=\"solid-delete-model-popup__confirm\">\n <SolidCheckbox\n id=\"delete-model-confirmation\"\n name=\"confirm\"\n checked={isConfirmed}\n onChange={() => setIsConfirmed(!isConfirmed)}\n label=\"I confirm that #9 (drop database table) will be done by me manually after the automatic steps above are applied.\"\n />\n </div>\n\n <div className=\"solid-delete-model-popup__actions\">\n <SolidButton size=\"small\" disabled={!isConfirmed || isApplying} loading={isApplying} autoFocus onClick={deleteModelHandler}>\n Apply\n </SolidButton>\n <SolidButton size=\"small\" variant=\"outline\" disabled={isApplying} onClick={() => dispatch(closePopup())}>\n Cancel\n </SolidButton>\n </div>\n </div>\n </div>\n )\n}\n\nexport default DeleteModelRowAction;\n"]}
|
|
1
|
+
{"version":3,"file":"DeleteModelRowAction.js","sourceRoot":"","sources":["../../../../../../../src/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx"],"names":[],"mappings":"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","sourcesContent":["import { closePopup } from \"../../../../../../redux/features/popupSlice\";\nimport { SolidListRowdataDynamicFunctionProps } from \"../../../../../../types/solid-core\";\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../../../../redux/features/toastSlice\";\nimport { useApplyDeleteModelMutation, usePreviewDeleteModelMutation } from \"../../../../../../redux/api/modelApi\";\nimport { ERROR_MESSAGES } from \"../../../../../../constants/error-messages\";\nimport { SolidButton, SolidCheckbox, SolidSpinner } from \"../../../../../shad-cn-ui\";\nimport { pingBackendAvailability } from \"../../../../../../helpers/waitForBackendAvailability\";\nimport { backendHealthMonitor } from \"../../../../../../helpers/backendHealthMonitor\";\nimport { Check, Copy } from \"lucide-react\";\n\ntype DeleteChange = { category: string; description: string; count: number; items: string[] };\ntype DeletePreview = { model: { id: number; singularName: string; displayName: string }; planHash: string; changes: DeleteChange[] };\n\nconst displayInventoryItem = (item: string) => {\n if (!item.startsWith(\"/\")) return item;\n const sourceIndex = item.lastIndexOf(\"/src/\");\n if (sourceIndex >= 0) return item.slice(sourceIndex + 1);\n return item.split(\"/\").slice(-2).join(\"/\");\n};\n\nconst DeleteModelRowAction = (event: SolidListRowdataDynamicFunctionProps) => {\n const dispatch = useDispatch();\n const [preview, setPreview] = useState<DeletePreview | null>(null);\n const [previewError, setPreviewError] = useState<string | null>(null);\n const [isConfirmed, setIsConfirmed] = useState(false);\n const [copiedDdl, setCopiedDdl] = useState(false);\n const [loadPreview, { isLoading: isLoadingPreview }] = usePreviewDeleteModelMutation();\n const [applyDelete, { isLoading: isApplying }] = useApplyDeleteModelMutation();\n\n const refreshPreview = async () => {\n setPreview(null);\n setPreviewError(null);\n setIsConfirmed(false);\n try {\n const result = await loadPreview(event.rowData.id).unwrap();\n setPreview(result as DeletePreview);\n } catch (error: any) {\n setPreviewError(error?.data?.message || error?.error || ERROR_MESSAGES.ERROR_OCCURED);\n }\n };\n\n useEffect(() => { void refreshPreview(); }, [event.rowData.id]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const automaticChanges = preview?.changes.filter(change => change.category !== 'Manual follow-up' && change.count > 0) ?? [];\n const automaticItemCount = automaticChanges.reduce((total, change) => total + change.count, 0);\n const manualFollowUp = preview?.changes.find(change => change.category === 'Manual follow-up');\n const tableName = manualFollowUp?.items[0]?.replace(/ database table$/, '') ?? '';\n const quotedTableName = tableName.split('.').map(part => `\"${part.replace(/\"/g, '\"\"')}\"`).join('.');\n const dropTableStatement = tableName ? `DROP TABLE IF EXISTS ${quotedTableName};` : '';\n\n const copyDropStatement = async () => {\n if (!dropTableStatement) return;\n try {\n await navigator.clipboard.writeText(dropTableStatement);\n setCopiedDdl(true);\n window.setTimeout(() => setCopiedDdl(false), 1800);\n } catch {\n setPreviewError('Unable to copy the DROP TABLE statement. Select and copy it manually.');\n }\n };\n\n const deleteModelHandler = async () => {\n if (!preview || !isConfirmed || isApplying) return;\n try {\n await applyDelete({ id: event.rowData.id, planHash: preview.planHash }).unwrap();\n dispatch(showToast({ severity: 'success', summary: ERROR_MESSAGES.MODEL_DELETE, detail: ERROR_MESSAGES.MODEL_DELETE_SUCCESSFULLY(event.rowData.singularName) }));\n dispatch(closePopup());\n const isBackendAvailable = await pingBackendAvailability();\n if (isBackendAvailable) backendHealthMonitor.reportSuccess();\n else backendHealthMonitor.reportFailure({ status: \"FETCH_ERROR\", message: \"Unable to reach the server. Reconnecting...\" });\n } catch (error: any) {\n const updatedPreview = error?.data?.preview as DeletePreview | undefined;\n if (updatedPreview) {\n setPreview(updatedPreview);\n setIsConfirmed(false);\n setPreviewError('The inventory changed since it was reviewed. Please review the updated changes and confirm again.');\n } else {\n setPreviewError(error?.data?.message || error?.error || ERROR_MESSAGES.NETWORK_OR_SERVER_ERROR);\n }\n }\n };\n\n return (\n <div className=\"solid-delete-model-popup\">\n <div className=\"solid-filter-dialog-head solid-delete-model-popup__head\">\n <div>\n <h3 className=\"solid-filter-dialog-title\">Delete {event.rowData.displayName || event.rowData.singularName}</h3>\n <p className=\"solid-filter-dialog-subtitle m-0\">Review the automatic cleanup before deleting this model.</p>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-filter-dialog-body solid-delete-model-popup__body\">\n {isLoadingPreview && <div className=\"flex justify-center p-4\"><SolidSpinner /></div>}\n {previewError && <div role=\"alert\" className=\"text-sm text-destructive mb-3\">{previewError}</div>}\n {preview && (\n <>\n <div className=\"solid-delete-model-popup__summary\" aria-label=\"Deletion impact summary\">\n <div><strong>{automaticItemCount}</strong><span>automatic changes</span></div>\n <div><strong>{automaticChanges.length}</strong><span>areas affected</span></div>\n </div>\n <div className=\"solid-delete-model-popup__inventory\" aria-label=\"Automatic deletion changes\">\n {automaticChanges.map((change, index) => (\n <details className=\"solid-delete-model-popup__change\" key={`${change.category}-${index}`}>\n <summary>\n <span className=\"solid-delete-model-popup__change-name\">{change.category}</span>\n <span className=\"solid-delete-model-popup__change-description\">{change.description}</span>\n <span className=\"solid-delete-model-popup__count\">{change.count}</span>\n </summary>\n {change.items.length > 0 && (\n <ul className=\"solid-delete-model-popup__items\">\n {change.items.map((item, itemIndex) => <li key={`${item}-${itemIndex}`} title={item}>{displayInventoryItem(item)}</li>)}\n </ul>\n )}\n </details>\n ))}\n {automaticChanges.length === 0 && <p className=\"solid-delete-model-popup__empty\">No related automatic cleanup was found.</p>}\n </div>\n {manualFollowUp && manualFollowUp.count > 0 && (\n <aside className=\"solid-delete-model-popup__manual\">\n <strong>Manual follow-up</strong>\n <span>{manualFollowUp.description}</span>\n {dropTableStatement && <div className=\"solid-delete-model-popup__ddl\">\n <code>{dropTableStatement}</code>\n <button type=\"button\" className=\"solid-delete-model-popup__copy-ddl\" onClick={copyDropStatement} aria-label={copiedDdl ? 'DDL copied' : 'Copy DROP TABLE statement'} title={copiedDdl ? 'Copied' : 'Copy SQL'}>\n {copiedDdl ? <Check size={13} /> : <Copy size={13} />}\n </button>\n </div>}\n </aside>\n )}\n </>\n )}\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"solid-delete-model-popup__footer\">\n {preview && <div className=\"solid-delete-model-popup__confirm\">\n <SolidCheckbox id=\"delete-model-confirmation\" name=\"confirm\" checked={isConfirmed} onChange={() => setIsConfirmed(!isConfirmed)} label=\"I reviewed the automatic changes above and understand the database table drop is a separate manual step.\" />\n </div>}\n <div className=\"solid-delete-model-popup__actions\">\n <SolidButton size=\"small\" variant=\"destructive\" disabled={!preview || !isConfirmed || isApplying || isLoadingPreview} loading={isApplying} autoFocus onClick={deleteModelHandler}>Delete model</SolidButton>\n <SolidButton size=\"small\" variant=\"outline\" disabled={isApplying} onClick={() => dispatch(closePopup())}>Cancel</SolidButton>\n </div>\n </div>\n </div>\n );\n};\n\nexport default DeleteModelRowAction;\n"]}
|