@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
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import React, { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
2
|
+
import { CheckCircle2, ChevronDown, LoaderCircle } from "lucide-react";
|
|
3
|
+
import styles from "../SolidAgent.module.css";
|
|
4
|
+
import widgetStyles from "../widgets/solidChatWidgets.module.css";
|
|
5
|
+
import { SolidXAIIcon } from "../SolidXAIIcon";
|
|
6
|
+
import { AgentEventTypes, type AgentChatItem, type AgentContext } from "../types";
|
|
7
|
+
import { SolidAgentChatItem } from "./SolidAgentChatItem";
|
|
8
|
+
|
|
9
|
+
type Props = {
|
|
10
|
+
items: AgentChatItem[];
|
|
11
|
+
thinking: boolean;
|
|
12
|
+
working?: boolean;
|
|
13
|
+
hasMore: boolean;
|
|
14
|
+
context?: AgentContext;
|
|
15
|
+
emptyState?: React.ReactNode;
|
|
16
|
+
onLoadOlder: () => void;
|
|
17
|
+
onReply: (widgetId: string, widget: string, value: unknown) => void;
|
|
18
|
+
onPrompt: (text: string) => void;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
type ItemGroup = { kind: "user"; item: AgentChatItem } | { kind: "agent"; key: string; items: AgentChatItem[] };
|
|
22
|
+
|
|
23
|
+
const isUserItem = (item: AgentChatItem) => item.eventType === AgentEventTypes.userMessage && !item.widget;
|
|
24
|
+
const ASSISTANT_MESSAGE_TYPES = new Set<string>([
|
|
25
|
+
AgentEventTypes.llmToken,
|
|
26
|
+
AgentEventTypes.llmComplete,
|
|
27
|
+
AgentEventTypes.turnComplete,
|
|
28
|
+
AgentEventTypes.turnCompleteLegacy,
|
|
29
|
+
]);
|
|
30
|
+
|
|
31
|
+
const isAssistantMessage = (item: AgentChatItem) => !item.widget && ASSISTANT_MESSAGE_TYPES.has(item.eventType);
|
|
32
|
+
|
|
33
|
+
/** Consecutive agent items form one turn (one avatar); each user message stands alone. */
|
|
34
|
+
function groupItems(items: AgentChatItem[]): ItemGroup[] {
|
|
35
|
+
const groups: ItemGroup[] = [];
|
|
36
|
+
let turn: AgentChatItem[] = [];
|
|
37
|
+
let turnKey = "initial-agent-turn";
|
|
38
|
+
const flush = () => {
|
|
39
|
+
if (turn.length) groups.push({ kind: "agent", key: turnKey, items: turn });
|
|
40
|
+
turn = [];
|
|
41
|
+
};
|
|
42
|
+
for (const item of items) {
|
|
43
|
+
if (isUserItem(item)) {
|
|
44
|
+
flush();
|
|
45
|
+
groups.push({ kind: "user", item });
|
|
46
|
+
turnKey = `after-${item.id}`;
|
|
47
|
+
} else {
|
|
48
|
+
turn.push(item);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
flush();
|
|
52
|
+
return groups;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function AgentActivityDisclosure({
|
|
56
|
+
turnKey,
|
|
57
|
+
items,
|
|
58
|
+
detailItems,
|
|
59
|
+
working,
|
|
60
|
+
showSummary,
|
|
61
|
+
renderItem,
|
|
62
|
+
}: {
|
|
63
|
+
turnKey: string;
|
|
64
|
+
items: AgentChatItem[];
|
|
65
|
+
detailItems: AgentChatItem[];
|
|
66
|
+
working: boolean;
|
|
67
|
+
showSummary: boolean;
|
|
68
|
+
renderItem: (item: AgentChatItem) => React.ReactNode;
|
|
69
|
+
}) {
|
|
70
|
+
const [expanded, setExpanded] = useState(false);
|
|
71
|
+
const [now, setNow] = useState(() => Date.now());
|
|
72
|
+
const hasLiveTimer = useRef(working);
|
|
73
|
+
const startTime = useRef(working ? Date.now() : (items[0]?.at || Date.now()));
|
|
74
|
+
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
if (!working) {
|
|
77
|
+
if (hasLiveTimer.current) setNow(Date.now());
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
hasLiveTimer.current = true;
|
|
81
|
+
const timer = window.setInterval(() => setNow(Date.now()), 1000);
|
|
82
|
+
return () => window.clearInterval(timer);
|
|
83
|
+
}, [working]);
|
|
84
|
+
|
|
85
|
+
const toolCount = items.filter((item) => item.eventType === AgentEventTypes.toolCalling).length;
|
|
86
|
+
const activeDuration = Math.max(0, Math.floor((now - startTime.current) / 1000));
|
|
87
|
+
const recordedDuration = items.length > 1
|
|
88
|
+
? Math.max(0, Math.floor((items[items.length - 1].at - items[0].at) / 1000))
|
|
89
|
+
: 0;
|
|
90
|
+
const seconds = hasLiveTimer.current ? activeDuration : recordedDuration;
|
|
91
|
+
const durationLabel = `${seconds}s`;
|
|
92
|
+
const summary = working
|
|
93
|
+
? `Working · ${toolCount ? `${toolCount} tool${toolCount === 1 ? "" : "s"} · ` : ""}${durationLabel}`
|
|
94
|
+
: toolCount
|
|
95
|
+
? `${toolCount} tool${toolCount === 1 ? "" : "s"} called · took ${durationLabel}`
|
|
96
|
+
: `Activity · took ${durationLabel}`;
|
|
97
|
+
const panelId = `agent-activity-${turnKey.replace(/[^a-zA-Z0-9_-]/g, "-")}`;
|
|
98
|
+
|
|
99
|
+
return (
|
|
100
|
+
<section className={`${widgetStyles.ActivityGroup} ${showSummary ? "" : widgetStyles.ActivityTimerOnly}`} aria-label={showSummary ? "Agent activity" : undefined}>
|
|
101
|
+
{showSummary && (
|
|
102
|
+
<>
|
|
103
|
+
{detailItems.length > 0 ? <button
|
|
104
|
+
type="button"
|
|
105
|
+
className={widgetStyles.ActivitySummary}
|
|
106
|
+
aria-expanded={expanded}
|
|
107
|
+
aria-controls={panelId}
|
|
108
|
+
onClick={() => setExpanded((value) => !value)}
|
|
109
|
+
>
|
|
110
|
+
{working
|
|
111
|
+
? <LoaderCircle size={15} className={widgetStyles.ActivitySpinner} aria-hidden="true" />
|
|
112
|
+
: <CheckCircle2 size={15} className={widgetStyles.ActivityComplete} aria-hidden="true" />}
|
|
113
|
+
<span className={widgetStyles.ActivitySummaryText}>{summary}</span>
|
|
114
|
+
<ChevronDown size={15} className={`${widgetStyles.ActivityChevron} ${expanded ? widgetStyles.ActivityChevronOpen : ""}`} aria-hidden="true" />
|
|
115
|
+
</button> : <div className={widgetStyles.ActivitySummary} role="status">
|
|
116
|
+
{working
|
|
117
|
+
? <LoaderCircle size={15} className={widgetStyles.ActivitySpinner} aria-hidden="true" />
|
|
118
|
+
: <CheckCircle2 size={15} className={widgetStyles.ActivityComplete} aria-hidden="true" />}
|
|
119
|
+
<span className={widgetStyles.ActivitySummaryText}>{summary}</span>
|
|
120
|
+
</div>}
|
|
121
|
+
{expanded && (
|
|
122
|
+
<div id={panelId} className={widgetStyles.ActivityDetails}>
|
|
123
|
+
{detailItems.map(renderItem)}
|
|
124
|
+
</div>
|
|
125
|
+
)}
|
|
126
|
+
</>
|
|
127
|
+
)}
|
|
128
|
+
</section>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** Renders thread items; sticks to the bottom while new content streams unless the user scrolled up. */
|
|
133
|
+
export function AgentThread({ items, thinking, working = thinking, hasMore, context, emptyState, onLoadOlder, onReply, onPrompt }: Props) {
|
|
134
|
+
const scrollRef = useRef<HTMLDivElement>(null);
|
|
135
|
+
const pinned = useRef(true);
|
|
136
|
+
const prevHeight = useRef(0);
|
|
137
|
+
const prevFirstId = useRef<string | undefined>(undefined);
|
|
138
|
+
|
|
139
|
+
useLayoutEffect(() => {
|
|
140
|
+
const el = scrollRef.current;
|
|
141
|
+
if (!el) return;
|
|
142
|
+
const firstId = items[0]?.id;
|
|
143
|
+
if (prevFirstId.current && firstId !== prevFirstId.current && prevHeight.current) {
|
|
144
|
+
// Older history was prepended: keep the viewport where it was.
|
|
145
|
+
el.scrollTop = el.scrollHeight - prevHeight.current;
|
|
146
|
+
} else if (pinned.current) {
|
|
147
|
+
el.scrollTop = el.scrollHeight;
|
|
148
|
+
}
|
|
149
|
+
prevFirstId.current = firstId;
|
|
150
|
+
prevHeight.current = el.scrollHeight;
|
|
151
|
+
}, [items]);
|
|
152
|
+
|
|
153
|
+
useEffect(() => {
|
|
154
|
+
const el = scrollRef.current;
|
|
155
|
+
if (!el) return;
|
|
156
|
+
const onScroll = () => {
|
|
157
|
+
pinned.current = el.scrollHeight - el.scrollTop - el.clientHeight < 48;
|
|
158
|
+
prevHeight.current = el.scrollHeight;
|
|
159
|
+
};
|
|
160
|
+
el.addEventListener("scroll", onScroll, { passive: true });
|
|
161
|
+
return () => el.removeEventListener("scroll", onScroll);
|
|
162
|
+
}, []);
|
|
163
|
+
|
|
164
|
+
if (!items.length && !thinking && emptyState) {
|
|
165
|
+
return <div className={styles.thread}>{emptyState}</div>;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const groups = groupItems(items);
|
|
169
|
+
const lastGroup = groups[groups.length - 1];
|
|
170
|
+
if (working && (!lastGroup || lastGroup.kind === "user")) {
|
|
171
|
+
groups.push({
|
|
172
|
+
kind: "agent",
|
|
173
|
+
key: lastGroup?.kind === "user" ? `after-${lastGroup.item.id}` : "working-turn",
|
|
174
|
+
items: [],
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
const renderItem = (item: AgentChatItem) => (
|
|
178
|
+
<SolidAgentChatItem key={item.id} item={item} agentContext={context} onReply={onReply} onPrompt={onPrompt} />
|
|
179
|
+
);
|
|
180
|
+
|
|
181
|
+
return (
|
|
182
|
+
<div ref={scrollRef} className={styles.thread} role="log" aria-live="polite" aria-relevant="additions">
|
|
183
|
+
{hasMore && (
|
|
184
|
+
<button type="button" className={`${styles.btn} ${styles.loadMore}`} onClick={onLoadOlder}>
|
|
185
|
+
Load earlier messages
|
|
186
|
+
</button>
|
|
187
|
+
)}
|
|
188
|
+
{groups.map((group) => {
|
|
189
|
+
if (group.kind === "user") return renderItem(group.item);
|
|
190
|
+
|
|
191
|
+
const isCurrentTurn = working && group === groups[groups.length - 1];
|
|
192
|
+
const latestTool = isCurrentTurn
|
|
193
|
+
? [...group.items].reverse().find((item) => item.eventType === AgentEventTypes.toolCalling && item.live)
|
|
194
|
+
: undefined;
|
|
195
|
+
const currentActivity = latestTool ?? (isCurrentTurn
|
|
196
|
+
? [...group.items].reverse().find((item) => item.eventType === AgentEventTypes.toolCalling)
|
|
197
|
+
: undefined);
|
|
198
|
+
const activityItems = group.items.filter((item) => !isAssistantMessage(item));
|
|
199
|
+
const detailItems = activityItems.filter((item) => item !== currentActivity);
|
|
200
|
+
const activitySet = new Set(group.items.filter((item) => !isAssistantMessage(item)));
|
|
201
|
+
const showIdleThinkingStatus = isCurrentTurn && thinking && activityItems.length === 0;
|
|
202
|
+
let activityRendered = false;
|
|
203
|
+
const turnContent = [
|
|
204
|
+
...(showIdleThinkingStatus ? [
|
|
205
|
+
<AgentActivityDisclosure
|
|
206
|
+
key={`activity-${group.key}`}
|
|
207
|
+
turnKey={group.key}
|
|
208
|
+
items={activityItems}
|
|
209
|
+
detailItems={detailItems}
|
|
210
|
+
working={isCurrentTurn}
|
|
211
|
+
showSummary
|
|
212
|
+
renderItem={renderItem}
|
|
213
|
+
/>,
|
|
214
|
+
] : []),
|
|
215
|
+
...group.items.flatMap((item) => {
|
|
216
|
+
if (activitySet.has(item)) {
|
|
217
|
+
if (activityRendered) return [];
|
|
218
|
+
activityRendered = true;
|
|
219
|
+
return [
|
|
220
|
+
<AgentActivityDisclosure
|
|
221
|
+
key={`activity-${group.key}`}
|
|
222
|
+
turnKey={group.key}
|
|
223
|
+
items={activityItems}
|
|
224
|
+
detailItems={detailItems}
|
|
225
|
+
working={isCurrentTurn}
|
|
226
|
+
showSummary={detailItems.length > 0 || currentActivity !== undefined}
|
|
227
|
+
renderItem={renderItem}
|
|
228
|
+
/>,
|
|
229
|
+
...(currentActivity ? [renderItem(currentActivity)] : []),
|
|
230
|
+
];
|
|
231
|
+
}
|
|
232
|
+
if (item === currentActivity) return [];
|
|
233
|
+
return [renderItem(item)];
|
|
234
|
+
}),
|
|
235
|
+
];
|
|
236
|
+
|
|
237
|
+
return (
|
|
238
|
+
<div key={group.key} className={widgetStyles.AiTurnGroup}>
|
|
239
|
+
<div className={`${widgetStyles.Avatar} ${widgetStyles.AvatarAi}`}>
|
|
240
|
+
<SolidXAIIcon size={14} />
|
|
241
|
+
</div>
|
|
242
|
+
<div className={widgetStyles.AiTurnContent}>{turnContent}</div>
|
|
243
|
+
</div>
|
|
244
|
+
);
|
|
245
|
+
})}
|
|
246
|
+
</div>
|
|
247
|
+
);
|
|
248
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type AgentChatItem, type AgentContext } from "../types";
|
|
3
|
+
export { parseWidgetContent, type InlineChatWidget } from "./inlineWidget";
|
|
4
|
+
/** Registry name of the widget that renders an event when `event_data.widget` is absent. */
|
|
5
|
+
export declare const getDefaultChatWidgetName: (eventType: string) => string;
|
|
6
|
+
type ErrorBoundaryProps = {
|
|
7
|
+
widget: string;
|
|
8
|
+
eventData: Record<string, any>;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
};
|
|
11
|
+
type ErrorBoundaryState = {
|
|
12
|
+
error: Error | null;
|
|
13
|
+
};
|
|
14
|
+
/** Keeps a throwing widget inside its own bubble; the rest of the thread keeps working. */
|
|
15
|
+
export declare class SolidChatWidgetErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
16
|
+
state: ErrorBoundaryState;
|
|
17
|
+
static getDerivedStateFromError(error: Error): ErrorBoundaryState;
|
|
18
|
+
componentDidCatch(error: Error): void;
|
|
19
|
+
componentDidUpdate(prev: ErrorBoundaryProps): void;
|
|
20
|
+
render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | null | undefined;
|
|
21
|
+
}
|
|
22
|
+
type SolidAgentChatItemProps = {
|
|
23
|
+
item: AgentChatItem;
|
|
24
|
+
agentContext?: AgentContext;
|
|
25
|
+
onReply: (widgetId: string, widget: string, value: unknown) => void;
|
|
26
|
+
onPrompt: (text: string) => void;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Renders one thread item. The widget named in `event_data.widget` wins; then a widget the agent
|
|
30
|
+
* sent as its text reply (`{"widgetName", "data"}`, see parseWidgetContent; a reply that does not
|
|
31
|
+
* parse renders as text, unchanged); otherwise the default widget for the event type. All resolve
|
|
32
|
+
* through the extension registry, so a UI module can register new chat widgets or override a
|
|
33
|
+
* default by registering the same name.
|
|
34
|
+
*/
|
|
35
|
+
export declare const SolidAgentChatItem: ({ item, agentContext, onReply, onPrompt }: SolidAgentChatItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=SolidAgentChatItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidAgentChatItem.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/solid-agent/thread/SolidAgentChatItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAmB,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,4FAA4F;AAC5F,eAAO,MAAM,wBAAwB,cAAe,MAAM,KAAG,MAuB5D,CAAC;AAUF,KAAK,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC;AACxG,KAAK,kBAAkB,GAAG;IAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,CAAC;AAElD,2FAA2F;AAC3F,qBAAa,4BAA6B,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACrG,KAAK,EAAE,kBAAkB,CAAmB;IAE5C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAI9B,kBAAkB,CAAC,IAAI,EAAE,kBAAkB;IAK3C,MAAM;CAST;AAED,KAAK,uBAAuB,GAAG;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,8CAA+C,uBAAuB,4CA2BpG,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
+
extendStatics(d, b);
|
|
12
|
+
function __() { this.constructor = d; }
|
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
var __assign = (this && this.__assign) || function () {
|
|
17
|
+
__assign = Object.assign || function(t) {
|
|
18
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
19
|
+
s = arguments[i];
|
|
20
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
21
|
+
t[p] = s[p];
|
|
22
|
+
}
|
|
23
|
+
return t;
|
|
24
|
+
};
|
|
25
|
+
return __assign.apply(this, arguments);
|
|
26
|
+
};
|
|
27
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
28
|
+
import React, { useMemo } from "react";
|
|
29
|
+
import { getExtensionComponent } from "../../../../helpers/registry";
|
|
30
|
+
import styles from "../SolidAgent.module.css";
|
|
31
|
+
import { AgentEventTypes } from "../types";
|
|
32
|
+
import { parseWidgetContent } from "./inlineWidget";
|
|
33
|
+
export { parseWidgetContent } from "./inlineWidget";
|
|
34
|
+
/** Registry name of the widget that renders an event when `event_data.widget` is absent. */
|
|
35
|
+
export var getDefaultChatWidgetName = function (eventType) {
|
|
36
|
+
switch (eventType) {
|
|
37
|
+
case AgentEventTypes.userMessage:
|
|
38
|
+
return "DefaultUserMessageChatWidget";
|
|
39
|
+
case AgentEventTypes.llmToken:
|
|
40
|
+
case AgentEventTypes.llmComplete:
|
|
41
|
+
case AgentEventTypes.turnComplete:
|
|
42
|
+
case AgentEventTypes.turnCompleteLegacy:
|
|
43
|
+
return "DefaultAssistantMessageChatWidget";
|
|
44
|
+
case AgentEventTypes.toolCalling:
|
|
45
|
+
return "DefaultToolCallChatWidget";
|
|
46
|
+
case AgentEventTypes.agentError:
|
|
47
|
+
case AgentEventTypes.error:
|
|
48
|
+
return "DefaultErrorChatWidget";
|
|
49
|
+
case AgentEventTypes.executionCancelled:
|
|
50
|
+
case AgentEventTypes.executionCancelledLegacy:
|
|
51
|
+
return "DefaultNoticeChatWidget";
|
|
52
|
+
case AgentEventTypes.agentStarted:
|
|
53
|
+
case AgentEventTypes.stepStarted:
|
|
54
|
+
return "DefaultThinkingChatWidget";
|
|
55
|
+
default:
|
|
56
|
+
return "DefaultUnknownChatWidget";
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
/** Assistant text events whose content may carry a widget as JSON (see parseWidgetContent). */
|
|
60
|
+
var TEXT_EVENT_TYPES = new Set([
|
|
61
|
+
AgentEventTypes.llmToken,
|
|
62
|
+
AgentEventTypes.llmComplete,
|
|
63
|
+
AgentEventTypes.turnComplete,
|
|
64
|
+
AgentEventTypes.turnCompleteLegacy,
|
|
65
|
+
]);
|
|
66
|
+
/** Keeps a throwing widget inside its own bubble; the rest of the thread keeps working. */
|
|
67
|
+
var SolidChatWidgetErrorBoundary = /** @class */ (function (_super) {
|
|
68
|
+
__extends(SolidChatWidgetErrorBoundary, _super);
|
|
69
|
+
function SolidChatWidgetErrorBoundary() {
|
|
70
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
71
|
+
Object.defineProperty(_this, "state", {
|
|
72
|
+
enumerable: true,
|
|
73
|
+
configurable: true,
|
|
74
|
+
writable: true,
|
|
75
|
+
value: { error: null }
|
|
76
|
+
});
|
|
77
|
+
return _this;
|
|
78
|
+
}
|
|
79
|
+
Object.defineProperty(SolidChatWidgetErrorBoundary, "getDerivedStateFromError", {
|
|
80
|
+
enumerable: false,
|
|
81
|
+
configurable: true,
|
|
82
|
+
writable: true,
|
|
83
|
+
value: function (error) {
|
|
84
|
+
return { error: error };
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
Object.defineProperty(SolidChatWidgetErrorBoundary.prototype, "componentDidCatch", {
|
|
88
|
+
enumerable: false,
|
|
89
|
+
configurable: true,
|
|
90
|
+
writable: true,
|
|
91
|
+
value: function (error) {
|
|
92
|
+
console.error("[solidAgent] chat widget \"".concat(this.props.widget, "\" failed to render"), error);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
Object.defineProperty(SolidChatWidgetErrorBoundary.prototype, "componentDidUpdate", {
|
|
96
|
+
enumerable: false,
|
|
97
|
+
configurable: true,
|
|
98
|
+
writable: true,
|
|
99
|
+
value: function (prev) {
|
|
100
|
+
// A later update of the same widget gets a fresh attempt.
|
|
101
|
+
if (this.state.error && prev.eventData !== this.props.eventData)
|
|
102
|
+
this.setState({ error: null });
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
Object.defineProperty(SolidChatWidgetErrorBoundary.prototype, "render", {
|
|
106
|
+
enumerable: false,
|
|
107
|
+
configurable: true,
|
|
108
|
+
writable: true,
|
|
109
|
+
value: function () {
|
|
110
|
+
if (!this.state.error)
|
|
111
|
+
return this.props.children;
|
|
112
|
+
return (_jsxs("div", { className: styles.widgetFallback, role: "alert", children: [_jsxs("span", { children: ["The \u201C", this.props.widget, "\u201D widget failed to render."] }), _jsx("pre", { className: styles.pre, style: { maxHeight: 180 }, children: JSON.stringify(this.props.eventData, null, 2) })] }));
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return SolidChatWidgetErrorBoundary;
|
|
116
|
+
}(React.Component));
|
|
117
|
+
export { SolidChatWidgetErrorBoundary };
|
|
118
|
+
/**
|
|
119
|
+
* Renders one thread item. The widget named in `event_data.widget` wins; then a widget the agent
|
|
120
|
+
* sent as its text reply (`{"widgetName", "data"}`, see parseWidgetContent; a reply that does not
|
|
121
|
+
* parse renders as text, unchanged); otherwise the default widget for the event type. All resolve
|
|
122
|
+
* through the extension registry, so a UI module can register new chat widgets or override a
|
|
123
|
+
* default by registering the same name.
|
|
124
|
+
*/
|
|
125
|
+
export var SolidAgentChatItem = function (_a) {
|
|
126
|
+
var _b, _c, _d, _e, _f;
|
|
127
|
+
var item = _a.item, agentContext = _a.agentContext, onReply = _a.onReply, onPrompt = _a.onPrompt;
|
|
128
|
+
var isText = !item.widget && TEXT_EVENT_TYPES.has(item.eventType);
|
|
129
|
+
var content = (_b = item.eventData) === null || _b === void 0 ? void 0 : _b.content;
|
|
130
|
+
var inline = useMemo(function () { return (isText ? parseWidgetContent(content) : null); }, [isText, content]);
|
|
131
|
+
var widgetName = (_d = (_c = item.widget) !== null && _c !== void 0 ? _c : inline === null || inline === void 0 ? void 0 : inline.widget) !== null && _d !== void 0 ? _d : getDefaultChatWidgetName(item.eventType);
|
|
132
|
+
var DynamicWidget = (_e = getExtensionComponent(widgetName)) !== null && _e !== void 0 ? _e : getExtensionComponent("DefaultUnknownChatWidget");
|
|
133
|
+
var widgetId = (_f = item.widgetId) !== null && _f !== void 0 ? _f : item.id;
|
|
134
|
+
var eventData = inline ? inline.data : item.eventData;
|
|
135
|
+
var widgetProps = {
|
|
136
|
+
eventType: item.eventType,
|
|
137
|
+
eventData: eventData,
|
|
138
|
+
widgetId: widgetId,
|
|
139
|
+
live: !!item.live,
|
|
140
|
+
final: !!item.final,
|
|
141
|
+
timestamp: item.at,
|
|
142
|
+
reply: function (value) { return onReply(widgetId, widgetName, value); },
|
|
143
|
+
sendPrompt: onPrompt,
|
|
144
|
+
agentContext: agentContext,
|
|
145
|
+
};
|
|
146
|
+
return (_jsx(SolidChatWidgetErrorBoundary, { widget: widgetName, eventData: eventData, children: DynamicWidget && _jsx(DynamicWidget, __assign({}, widgetProps)) }));
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=SolidAgentChatItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidAgentChatItem.js","sourceRoot":"","sources":["../../../../../src/components/core/solid-agent/thread/SolidAgentChatItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAyC,MAAM,UAAU,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAyB,MAAM,gBAAgB,CAAC;AAE3E,4FAA4F;AAC5F,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAC,SAAiB;IACtD,QAAQ,SAAS,EAAE;QACf,KAAK,eAAe,CAAC,WAAW;YAC5B,OAAO,8BAA8B,CAAC;QAC1C,KAAK,eAAe,CAAC,QAAQ,CAAC;QAC9B,KAAK,eAAe,CAAC,WAAW,CAAC;QACjC,KAAK,eAAe,CAAC,YAAY,CAAC;QAClC,KAAK,eAAe,CAAC,kBAAkB;YACnC,OAAO,mCAAmC,CAAC;QAC/C,KAAK,eAAe,CAAC,WAAW;YAC5B,OAAO,2BAA2B,CAAC;QACvC,KAAK,eAAe,CAAC,UAAU,CAAC;QAChC,KAAK,eAAe,CAAC,KAAK;YACtB,OAAO,wBAAwB,CAAC;QACpC,KAAK,eAAe,CAAC,kBAAkB,CAAC;QACxC,KAAK,eAAe,CAAC,wBAAwB;YACzC,OAAO,yBAAyB,CAAC;QACrC,KAAK,eAAe,CAAC,YAAY,CAAC;QAClC,KAAK,eAAe,CAAC,WAAW;YAC5B,OAAO,2BAA2B,CAAC;QACvC;YACI,OAAO,0BAA0B,CAAC;KACzC;AACL,CAAC,CAAC;AAEF,+FAA+F;AAC/F,IAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IACrC,eAAe,CAAC,QAAQ;IACxB,eAAe,CAAC,WAAW;IAC3B,eAAe,CAAC,YAAY;IAC5B,eAAe,CAAC,kBAAkB;CACrC,CAAC,CAAC;AAKH,2FAA2F;AAC3F;IAAkD,gDAAuD;IAAzG;QAAA,qEAyBC;QAxBG;;;;mBAA4B,EAAE,KAAK,EAAE,IAAI,EAAE;WAAC;;IAwBhD,CAAC;;;;;eAtBG,UAAgC,KAAY;YACxC,OAAO,EAAE,KAAK,OAAA,EAAE,CAAC;QACrB,CAAC;;;;;;eAED,UAAkB,KAAY;YAC1B,OAAO,CAAC,KAAK,CAAC,qCAA6B,IAAI,CAAC,KAAK,CAAC,MAAM,wBAAoB,EAAE,KAAK,CAAC,CAAC;QAC7F,CAAC;;;;;;eAED,UAAmB,IAAwB;YACvC,0DAA0D;YAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;gBAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,CAAC;;;;;;eAED;YACI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClD,OAAO,CACH,eAAK,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,EAAC,OAAO,aAC/C,yCAAY,IAAI,CAAC,KAAK,CAAC,MAAM,uCAAkC,EAC/D,cAAK,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,YAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,GAAO,IAC1G,CACT,CAAC;QACN,CAAC;;IACL,mCAAC;AAAD,CAAC,AAzBD,CAAkD,KAAK,CAAC,SAAS,GAyBhE;;AASD;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,EAAkE;;QAAhE,IAAI,UAAA,EAAE,YAAY,kBAAA,EAAE,OAAO,aAAA,EAAE,QAAQ,cAAA;IACtE,IAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE,IAAM,OAAO,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,OAAO,CAAC;IACxC,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAA7C,CAA6C,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/F,IAAM,UAAU,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7F,IAAM,aAAa,GAAG,MAAA,qBAAqB,CAAC,UAAU,CAAC,mCAAI,qBAAqB,CAAC,0BAA0B,CAAC,CAAC;IAC7G,IAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,IAAI,CAAC,EAAE,CAAC;IAC1C,IAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAExD,IAAM,WAAW,GAAyB;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,WAAA;QACT,QAAQ,UAAA;QACR,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;QACjB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;QACnB,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,KAAK,EAAE,UAAC,KAAc,IAAK,OAAA,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAApC,CAAoC;QAC/D,UAAU,EAAE,QAAQ;QACpB,YAAY,cAAA;KACf,CAAC;IAEF,OAAO,CACH,KAAC,4BAA4B,IAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,YACjE,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACzB,CAClC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import React, { useMemo } from \"react\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\nimport { SolidChatWidgetProps } from \"../../../../types/solid-core\";\nimport styles from \"../SolidAgent.module.css\";\nimport { AgentEventTypes, type AgentChatItem, type AgentContext } from \"../types\";\nimport { parseWidgetContent } from \"./inlineWidget\";\n\nexport { parseWidgetContent, type InlineChatWidget } from \"./inlineWidget\";\n\n/** Registry name of the widget that renders an event when `event_data.widget` is absent. */\nexport const getDefaultChatWidgetName = (eventType: string): string => {\n switch (eventType) {\n case AgentEventTypes.userMessage:\n return \"DefaultUserMessageChatWidget\";\n case AgentEventTypes.llmToken:\n case AgentEventTypes.llmComplete:\n case AgentEventTypes.turnComplete:\n case AgentEventTypes.turnCompleteLegacy:\n return \"DefaultAssistantMessageChatWidget\";\n case AgentEventTypes.toolCalling:\n return \"DefaultToolCallChatWidget\";\n case AgentEventTypes.agentError:\n case AgentEventTypes.error:\n return \"DefaultErrorChatWidget\";\n case AgentEventTypes.executionCancelled:\n case AgentEventTypes.executionCancelledLegacy:\n return \"DefaultNoticeChatWidget\";\n case AgentEventTypes.agentStarted:\n case AgentEventTypes.stepStarted:\n return \"DefaultThinkingChatWidget\";\n default:\n return \"DefaultUnknownChatWidget\";\n }\n};\n\n/** Assistant text events whose content may carry a widget as JSON (see parseWidgetContent). */\nconst TEXT_EVENT_TYPES = new Set<string>([\n AgentEventTypes.llmToken,\n AgentEventTypes.llmComplete,\n AgentEventTypes.turnComplete,\n AgentEventTypes.turnCompleteLegacy,\n]);\n\ntype ErrorBoundaryProps = { widget: string; eventData: Record<string, any>; children: React.ReactNode };\ntype ErrorBoundaryState = { error: Error | null };\n\n/** Keeps a throwing widget inside its own bubble; the rest of the thread keeps working. */\nexport class SolidChatWidgetErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = { error: null };\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error };\n }\n\n componentDidCatch(error: Error) {\n console.error(`[solidAgent] chat widget \"${this.props.widget}\" failed to render`, error);\n }\n\n componentDidUpdate(prev: ErrorBoundaryProps) {\n // A later update of the same widget gets a fresh attempt.\n if (this.state.error && prev.eventData !== this.props.eventData) this.setState({ error: null });\n }\n\n render() {\n if (!this.state.error) return this.props.children;\n return (\n <div className={styles.widgetFallback} role=\"alert\">\n <span>The “{this.props.widget}” widget failed to render.</span>\n <pre className={styles.pre} style={{ maxHeight: 180 }}>{JSON.stringify(this.props.eventData, null, 2)}</pre>\n </div>\n );\n }\n}\n\ntype SolidAgentChatItemProps = {\n item: AgentChatItem;\n agentContext?: AgentContext;\n onReply: (widgetId: string, widget: string, value: unknown) => void;\n onPrompt: (text: string) => void;\n};\n\n/**\n * Renders one thread item. The widget named in `event_data.widget` wins; then a widget the agent\n * sent as its text reply (`{\"widgetName\", \"data\"}`, see parseWidgetContent; a reply that does not\n * parse renders as text, unchanged); otherwise the default widget for the event type. All resolve\n * through the extension registry, so a UI module can register new chat widgets or override a\n * default by registering the same name.\n */\nexport const SolidAgentChatItem = ({ item, agentContext, onReply, onPrompt }: SolidAgentChatItemProps) => {\n const isText = !item.widget && TEXT_EVENT_TYPES.has(item.eventType);\n const content = item.eventData?.content;\n const inline = useMemo(() => (isText ? parseWidgetContent(content) : null), [isText, content]);\n\n const widgetName = item.widget ?? inline?.widget ?? getDefaultChatWidgetName(item.eventType);\n const DynamicWidget = getExtensionComponent(widgetName) ?? getExtensionComponent(\"DefaultUnknownChatWidget\");\n const widgetId = item.widgetId ?? item.id;\n const eventData = inline ? inline.data : item.eventData;\n\n const widgetProps: SolidChatWidgetProps = {\n eventType: item.eventType,\n eventData,\n widgetId,\n live: !!item.live,\n final: !!item.final,\n timestamp: item.at,\n reply: (value: unknown) => onReply(widgetId, widgetName, value),\n sendPrompt: onPrompt,\n agentContext,\n };\n\n return (\n <SolidChatWidgetErrorBoundary widget={widgetName} eventData={eventData}>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </SolidChatWidgetErrorBoundary>\n );\n};\n"]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import React, { useMemo } from "react";
|
|
2
|
+
import { getExtensionComponent } from "../../../../helpers/registry";
|
|
3
|
+
import { SolidChatWidgetProps } from "../../../../types/solid-core";
|
|
4
|
+
import styles from "../SolidAgent.module.css";
|
|
5
|
+
import { AgentEventTypes, type AgentChatItem, type AgentContext } from "../types";
|
|
6
|
+
import { parseWidgetContent } from "./inlineWidget";
|
|
7
|
+
|
|
8
|
+
export { parseWidgetContent, type InlineChatWidget } from "./inlineWidget";
|
|
9
|
+
|
|
10
|
+
/** Registry name of the widget that renders an event when `event_data.widget` is absent. */
|
|
11
|
+
export const getDefaultChatWidgetName = (eventType: string): string => {
|
|
12
|
+
switch (eventType) {
|
|
13
|
+
case AgentEventTypes.userMessage:
|
|
14
|
+
return "DefaultUserMessageChatWidget";
|
|
15
|
+
case AgentEventTypes.llmToken:
|
|
16
|
+
case AgentEventTypes.llmComplete:
|
|
17
|
+
case AgentEventTypes.turnComplete:
|
|
18
|
+
case AgentEventTypes.turnCompleteLegacy:
|
|
19
|
+
return "DefaultAssistantMessageChatWidget";
|
|
20
|
+
case AgentEventTypes.toolCalling:
|
|
21
|
+
return "DefaultToolCallChatWidget";
|
|
22
|
+
case AgentEventTypes.agentError:
|
|
23
|
+
case AgentEventTypes.error:
|
|
24
|
+
return "DefaultErrorChatWidget";
|
|
25
|
+
case AgentEventTypes.executionCancelled:
|
|
26
|
+
case AgentEventTypes.executionCancelledLegacy:
|
|
27
|
+
return "DefaultNoticeChatWidget";
|
|
28
|
+
case AgentEventTypes.agentStarted:
|
|
29
|
+
case AgentEventTypes.stepStarted:
|
|
30
|
+
return "DefaultThinkingChatWidget";
|
|
31
|
+
default:
|
|
32
|
+
return "DefaultUnknownChatWidget";
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/** Assistant text events whose content may carry a widget as JSON (see parseWidgetContent). */
|
|
37
|
+
const TEXT_EVENT_TYPES = new Set<string>([
|
|
38
|
+
AgentEventTypes.llmToken,
|
|
39
|
+
AgentEventTypes.llmComplete,
|
|
40
|
+
AgentEventTypes.turnComplete,
|
|
41
|
+
AgentEventTypes.turnCompleteLegacy,
|
|
42
|
+
]);
|
|
43
|
+
|
|
44
|
+
type ErrorBoundaryProps = { widget: string; eventData: Record<string, any>; children: React.ReactNode };
|
|
45
|
+
type ErrorBoundaryState = { error: Error | null };
|
|
46
|
+
|
|
47
|
+
/** Keeps a throwing widget inside its own bubble; the rest of the thread keeps working. */
|
|
48
|
+
export class SolidChatWidgetErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
49
|
+
state: ErrorBoundaryState = { error: null };
|
|
50
|
+
|
|
51
|
+
static getDerivedStateFromError(error: Error): ErrorBoundaryState {
|
|
52
|
+
return { error };
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
componentDidCatch(error: Error) {
|
|
56
|
+
console.error(`[solidAgent] chat widget "${this.props.widget}" failed to render`, error);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
componentDidUpdate(prev: ErrorBoundaryProps) {
|
|
60
|
+
// A later update of the same widget gets a fresh attempt.
|
|
61
|
+
if (this.state.error && prev.eventData !== this.props.eventData) this.setState({ error: null });
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
render() {
|
|
65
|
+
if (!this.state.error) return this.props.children;
|
|
66
|
+
return (
|
|
67
|
+
<div className={styles.widgetFallback} role="alert">
|
|
68
|
+
<span>The “{this.props.widget}” widget failed to render.</span>
|
|
69
|
+
<pre className={styles.pre} style={{ maxHeight: 180 }}>{JSON.stringify(this.props.eventData, null, 2)}</pre>
|
|
70
|
+
</div>
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
type SolidAgentChatItemProps = {
|
|
76
|
+
item: AgentChatItem;
|
|
77
|
+
agentContext?: AgentContext;
|
|
78
|
+
onReply: (widgetId: string, widget: string, value: unknown) => void;
|
|
79
|
+
onPrompt: (text: string) => void;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Renders one thread item. The widget named in `event_data.widget` wins; then a widget the agent
|
|
84
|
+
* sent as its text reply (`{"widgetName", "data"}`, see parseWidgetContent; a reply that does not
|
|
85
|
+
* parse renders as text, unchanged); otherwise the default widget for the event type. All resolve
|
|
86
|
+
* through the extension registry, so a UI module can register new chat widgets or override a
|
|
87
|
+
* default by registering the same name.
|
|
88
|
+
*/
|
|
89
|
+
export const SolidAgentChatItem = ({ item, agentContext, onReply, onPrompt }: SolidAgentChatItemProps) => {
|
|
90
|
+
const isText = !item.widget && TEXT_EVENT_TYPES.has(item.eventType);
|
|
91
|
+
const content = item.eventData?.content;
|
|
92
|
+
const inline = useMemo(() => (isText ? parseWidgetContent(content) : null), [isText, content]);
|
|
93
|
+
|
|
94
|
+
const widgetName = item.widget ?? inline?.widget ?? getDefaultChatWidgetName(item.eventType);
|
|
95
|
+
const DynamicWidget = getExtensionComponent(widgetName) ?? getExtensionComponent("DefaultUnknownChatWidget");
|
|
96
|
+
const widgetId = item.widgetId ?? item.id;
|
|
97
|
+
const eventData = inline ? inline.data : item.eventData;
|
|
98
|
+
|
|
99
|
+
const widgetProps: SolidChatWidgetProps = {
|
|
100
|
+
eventType: item.eventType,
|
|
101
|
+
eventData,
|
|
102
|
+
widgetId,
|
|
103
|
+
live: !!item.live,
|
|
104
|
+
final: !!item.final,
|
|
105
|
+
timestamp: item.at,
|
|
106
|
+
reply: (value: unknown) => onReply(widgetId, widgetName, value),
|
|
107
|
+
sendPrompt: onPrompt,
|
|
108
|
+
agentContext,
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
return (
|
|
112
|
+
<SolidChatWidgetErrorBoundary widget={widgetName} eventData={eventData}>
|
|
113
|
+
{DynamicWidget && <DynamicWidget {...widgetProps} />}
|
|
114
|
+
</SolidChatWidgetErrorBoundary>
|
|
115
|
+
);
|
|
116
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** A widget the agent sent as its text reply: `{"widgetName": "...", "data": {...} | "<json>"}`. */
|
|
2
|
+
export type InlineChatWidget = {
|
|
3
|
+
widget: string;
|
|
4
|
+
data: Record<string, any>;
|
|
5
|
+
};
|
|
6
|
+
/** Returns the widget in a reply, or null when the reply is not that JSON (it then renders as text). */
|
|
7
|
+
export declare function parseWidgetContent(content: unknown): InlineChatWidget | null;
|
|
8
|
+
//# sourceMappingURL=inlineWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inlineWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/solid-agent/thread/inlineWidget.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;AAE7E,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAsB5E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Returns the widget in a reply, or null when the reply is not that JSON (it then renders as text). */
|
|
2
|
+
export function parseWidgetContent(content) {
|
|
3
|
+
if (typeof content !== "string")
|
|
4
|
+
return null;
|
|
5
|
+
try {
|
|
6
|
+
var parsed = JSON.parse(content);
|
|
7
|
+
if (typeof (parsed === null || parsed === void 0 ? void 0 : parsed.widgetName) !== "string")
|
|
8
|
+
return null;
|
|
9
|
+
var data = parsed.data;
|
|
10
|
+
if (typeof data === "string") {
|
|
11
|
+
try {
|
|
12
|
+
data = JSON.parse(data);
|
|
13
|
+
}
|
|
14
|
+
catch (_a) {
|
|
15
|
+
// Assistant markdown envelopes carry the markdown itself as a string.
|
|
16
|
+
if (parsed.widgetName === "markdown")
|
|
17
|
+
data = { text: data };
|
|
18
|
+
else
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (!data || typeof data !== "object" || Array.isArray(data))
|
|
23
|
+
return null;
|
|
24
|
+
return { widget: parsed.widgetName, data: data };
|
|
25
|
+
}
|
|
26
|
+
catch (_b) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=inlineWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inlineWidget.js","sourceRoot":"","sources":["../../../../../src/components/core/solid-agent/thread/inlineWidget.ts"],"names":[],"mappings":"AAGA,wGAAwG;AACxG,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI;QACA,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,CAAA,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAExD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAI;gBACA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3B;YAAC,WAAM;gBACJ,sEAAsE;gBACtE,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU;oBAAE,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;oBACvD,OAAO,IAAI,CAAC;aACpB;SACJ;QAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,MAAA,EAAE,CAAC;KAC9C;IAAC,WAAM;QACJ,OAAO,IAAI,CAAC;KACf;AACL,CAAC","sourcesContent":["/** A widget the agent sent as its text reply: `{\"widgetName\": \"...\", \"data\": {...} | \"<json>\"}`. */\nexport type InlineChatWidget = { widget: string; data: Record<string, any> };\n\n/** Returns the widget in a reply, or null when the reply is not that JSON (it then renders as text). */\nexport function parseWidgetContent(content: unknown): InlineChatWidget | null {\n if (typeof content !== \"string\") return null;\n try {\n const parsed = JSON.parse(content);\n if (typeof parsed?.widgetName !== \"string\") return null;\n\n let data = parsed.data;\n if (typeof data === \"string\") {\n try {\n data = JSON.parse(data);\n } catch {\n // Assistant markdown envelopes carry the markdown itself as a string.\n if (parsed.widgetName === \"markdown\") data = { text: data };\n else return null;\n }\n }\n\n if (!data || typeof data !== \"object\" || Array.isArray(data)) return null;\n return { widget: parsed.widgetName, data };\n } catch {\n return null;\n }\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** A widget the agent sent as its text reply: `{"widgetName": "...", "data": {...} | "<json>"}`. */
|
|
2
|
+
export type InlineChatWidget = { widget: string; data: Record<string, any> };
|
|
3
|
+
|
|
4
|
+
/** Returns the widget in a reply, or null when the reply is not that JSON (it then renders as text). */
|
|
5
|
+
export function parseWidgetContent(content: unknown): InlineChatWidget | null {
|
|
6
|
+
if (typeof content !== "string") return null;
|
|
7
|
+
try {
|
|
8
|
+
const parsed = JSON.parse(content);
|
|
9
|
+
if (typeof parsed?.widgetName !== "string") return null;
|
|
10
|
+
|
|
11
|
+
let data = parsed.data;
|
|
12
|
+
if (typeof data === "string") {
|
|
13
|
+
try {
|
|
14
|
+
data = JSON.parse(data);
|
|
15
|
+
} catch {
|
|
16
|
+
// Assistant markdown envelopes carry the markdown itself as a string.
|
|
17
|
+
if (parsed.widgetName === "markdown") data = { text: data };
|
|
18
|
+
else return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (!data || typeof data !== "object" || Array.isArray(data)) return null;
|
|
23
|
+
return { widget: parsed.widgetName, data };
|
|
24
|
+
} catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|