@gooddata/sdk-ui-gen-ai 11.41.0-alpha.4 → 11.41.0
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/NOTICE +3 -3
- package/esm/anomalyDetection/anomalyDetectionMapping.d.ts +1 -0
- package/esm/anomalyDetection/anomalyDetectionMapping.d.ts.map +1 -0
- package/esm/clustering/clusteringMapping.d.ts +1 -0
- package/esm/clustering/clusteringMapping.d.ts.map +1 -0
- package/esm/components/ChatSkeleton.d.ts +1 -0
- package/esm/components/ChatSkeleton.d.ts.map +1 -0
- package/esm/components/ConfigContext.d.ts +1 -0
- package/esm/components/ConfigContext.d.ts.map +1 -0
- package/esm/components/ConversationDeleteDialog.d.ts +1 -0
- package/esm/components/ConversationDeleteDialog.d.ts.map +1 -0
- package/esm/components/ConversationRenameDialog.d.ts +1 -0
- package/esm/components/ConversationRenameDialog.d.ts.map +1 -0
- package/esm/components/CustomizationProvider.d.ts +1 -0
- package/esm/components/CustomizationProvider.d.ts.map +1 -0
- package/esm/components/ErrorBoundary.d.ts +1 -0
- package/esm/components/ErrorBoundary.d.ts.map +1 -0
- package/esm/components/GenAIChat.d.ts +1 -0
- package/esm/components/GenAIChat.d.ts.map +1 -0
- package/esm/components/GenAIChatAgentDropdown.d.ts +14 -0
- package/esm/components/GenAIChatAgentDropdown.d.ts.map +1 -0
- package/esm/components/GenAIChatAgentDropdown.js +76 -0
- package/esm/components/GenAIChatConversations.d.ts +1 -0
- package/esm/components/GenAIChatConversations.d.ts.map +1 -0
- package/esm/components/GenAIChatDialog.d.ts +1 -0
- package/esm/components/GenAIChatDialog.d.ts.map +1 -0
- package/esm/components/GenAIChatHeader.d.ts +1 -0
- package/esm/components/GenAIChatHeader.d.ts.map +1 -0
- package/esm/components/GenAIChatOverlay.d.ts +1 -0
- package/esm/components/GenAIChatOverlay.d.ts.map +1 -0
- package/esm/components/GenAIChatWrapper.d.ts +1 -0
- package/esm/components/GenAIChatWrapper.d.ts.map +1 -0
- package/esm/components/GenAiConversations.d.ts +1 -0
- package/esm/components/GenAiConversations.d.ts.map +1 -0
- package/esm/components/GenAiStore.d.ts +1 -0
- package/esm/components/GenAiStore.d.ts.map +1 -0
- package/esm/components/GlobalError.d.ts +1 -0
- package/esm/components/GlobalError.d.ts.map +1 -0
- package/esm/components/HeaderIcon.d.ts +1 -0
- package/esm/components/HeaderIcon.d.ts.map +1 -0
- package/esm/components/Input.d.ts +1 -0
- package/esm/components/Input.d.ts.map +1 -0
- package/esm/components/Input.js +72 -24
- package/esm/components/KeyDriverAnalysis.d.ts +1 -0
- package/esm/components/KeyDriverAnalysis.d.ts.map +1 -0
- package/esm/components/Messages.d.ts +1 -0
- package/esm/components/Messages.d.ts.map +1 -0
- package/esm/components/Messages.js +9 -6
- package/esm/components/completion/InfoComponent.d.ts +1 -0
- package/esm/components/completion/InfoComponent.d.ts.map +1 -0
- package/esm/components/completion/plugins/rehype-references.d.ts +1 -0
- package/esm/components/completion/plugins/rehype-references.d.ts.map +1 -0
- package/esm/components/completion/plugins/remark-references.d.ts +1 -0
- package/esm/components/completion/plugins/remark-references.d.ts.map +1 -0
- package/esm/components/completion/plugins/types.d.ts +1 -0
- package/esm/components/completion/plugins/types.d.ts.map +1 -0
- package/esm/components/completion/references.d.ts +1 -0
- package/esm/components/completion/references.d.ts.map +1 -0
- package/esm/components/completion/useCompletion.d.ts +1 -0
- package/esm/components/completion/useCompletion.d.ts.map +1 -0
- package/esm/components/completion/utils.d.ts +1 -0
- package/esm/components/completion/utils.d.ts.map +1 -0
- package/esm/components/customized/Disclaimer.d.ts +1 -0
- package/esm/components/customized/Disclaimer.d.ts.map +1 -0
- package/esm/components/customized/LandingContainer.d.ts +1 -0
- package/esm/components/customized/LandingContainer.d.ts.map +1 -0
- package/esm/components/customized/LandingQuestion.d.ts +1 -0
- package/esm/components/customized/LandingQuestion.d.ts.map +1 -0
- package/esm/components/customized/LandingQuestion.js +32 -13
- package/esm/components/customized/LandingScreen.d.ts +1 -0
- package/esm/components/customized/LandingScreen.d.ts.map +1 -0
- package/esm/components/customized/LandingTitle.d.ts +1 -0
- package/esm/components/customized/LandingTitle.d.ts.map +1 -0
- package/esm/components/highlight/useHighlight.d.ts +1 -0
- package/esm/components/highlight/useHighlight.d.ts.map +1 -0
- package/esm/components/hooks/useEndpointCheck.d.ts +1 -0
- package/esm/components/hooks/useEndpointCheck.d.ts.map +1 -0
- package/esm/components/hooks/useFullscreenCheck.d.ts +1 -0
- package/esm/components/hooks/useFullscreenCheck.d.ts.map +1 -0
- package/esm/components/hooks/useHistoryCheck.d.ts +1 -0
- package/esm/components/hooks/useHistoryCheck.d.ts.map +1 -0
- package/esm/components/hooks/useSettingsClick.d.ts +1 -0
- package/esm/components/hooks/useSettingsClick.d.ts.map +1 -0
- package/esm/components/hooks/useThreadLoading.d.ts +1 -0
- package/esm/components/hooks/useThreadLoading.d.ts.map +1 -0
- package/esm/components/messages/AgentChangeItem.d.ts +7 -0
- package/esm/components/messages/AgentChangeItem.d.ts.map +1 -0
- package/esm/components/messages/AgentChangeItem.js +17 -0
- package/esm/components/messages/AssistantItem.d.ts +1 -0
- package/esm/components/messages/AssistantItem.d.ts.map +1 -0
- package/esm/components/messages/AssistantItemFeedback.d.ts +1 -0
- package/esm/components/messages/AssistantItemFeedback.d.ts.map +1 -0
- package/esm/components/messages/AssistantItemSuggestions.d.ts +3 -2
- package/esm/components/messages/AssistantItemSuggestions.d.ts.map +1 -0
- package/esm/components/messages/AssistantItemSuggestions.js +6 -2
- package/esm/components/messages/AssistantMessage.d.ts +1 -0
- package/esm/components/messages/AssistantMessage.d.ts.map +1 -0
- package/esm/components/messages/ConversationItemContents.d.ts +1 -0
- package/esm/components/messages/ConversationItemContents.d.ts.map +1 -0
- package/esm/components/messages/FeedbackPopup.d.ts +1 -0
- package/esm/components/messages/FeedbackPopup.d.ts.map +1 -0
- package/esm/components/messages/ItemsGroup.d.ts +1 -0
- package/esm/components/messages/ItemsGroup.d.ts.map +1 -0
- package/esm/components/messages/MessageContents.d.ts +1 -0
- package/esm/components/messages/MessageContents.d.ts.map +1 -0
- package/esm/components/messages/MessageScroller.d.ts +1 -0
- package/esm/components/messages/MessageScroller.d.ts.map +1 -0
- package/esm/components/messages/ReasoningDropdown.d.ts +1 -0
- package/esm/components/messages/ReasoningDropdown.d.ts.map +1 -0
- package/esm/components/messages/ReasoningMessage.d.ts +1 -0
- package/esm/components/messages/ReasoningMessage.d.ts.map +1 -0
- package/esm/components/messages/SystemItem.d.ts +7 -0
- package/esm/components/messages/SystemItem.d.ts.map +1 -0
- package/esm/components/messages/SystemItem.js +12 -0
- package/esm/components/messages/ToolItem.d.ts +1 -0
- package/esm/components/messages/ToolItem.d.ts.map +1 -0
- package/esm/components/messages/UserItem.d.ts +1 -0
- package/esm/components/messages/UserItem.d.ts.map +1 -0
- package/esm/components/messages/UserMessage.d.ts +1 -0
- package/esm/components/messages/UserMessage.d.ts.map +1 -0
- package/esm/components/messages/components/SemanticSearchTreeView.d.ts +1 -0
- package/esm/components/messages/components/SemanticSearchTreeView.d.ts.map +1 -0
- package/esm/components/messages/components/VisualizationErrorBoundary.d.ts +1 -0
- package/esm/components/messages/components/VisualizationErrorBoundary.d.ts.map +1 -0
- package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts +1 -0
- package/esm/components/messages/contents/ChangeAnalysisContentsComponent.d.ts.map +1 -0
- package/esm/components/messages/contents/CustomHyperlink.d.ts +1 -0
- package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -0
- package/esm/components/messages/contents/ErrorContents.d.ts +1 -0
- package/esm/components/messages/contents/ErrorContents.d.ts.map +1 -0
- package/esm/components/messages/contents/Markdown.d.ts +1 -0
- package/esm/components/messages/contents/Markdown.d.ts.map +1 -0
- package/esm/components/messages/contents/ReasoningContents.d.ts +1 -0
- package/esm/components/messages/contents/ReasoningContents.d.ts.map +1 -0
- package/esm/components/messages/contents/ReasoningIcon.d.ts +3 -2
- package/esm/components/messages/contents/ReasoningIcon.d.ts.map +1 -0
- package/esm/components/messages/contents/RoutingContents.d.ts +1 -0
- package/esm/components/messages/contents/RoutingContents.d.ts.map +1 -0
- package/esm/components/messages/contents/SearchContents.d.ts +1 -0
- package/esm/components/messages/contents/SearchContents.d.ts.map +1 -0
- package/esm/components/messages/contents/SemanticSearchContents.d.ts +1 -0
- package/esm/components/messages/contents/SemanticSearchContents.d.ts.map +1 -0
- package/esm/components/messages/contents/TextContents.d.ts +1 -0
- package/esm/components/messages/contents/TextContents.d.ts.map +1 -0
- package/esm/components/messages/contents/VisualizationContents.d.ts +4 -1
- package/esm/components/messages/contents/VisualizationContents.d.ts.map +1 -0
- package/esm/components/messages/contents/VisualizationContents.js +7 -3
- package/esm/components/messages/contents/VisualizationSaveDialog.d.ts +1 -0
- package/esm/components/messages/contents/VisualizationSaveDialog.d.ts.map +1 -0
- package/esm/components/messages/contents/drill/DrillSelectDropdownMenu.d.ts +1 -0
- package/esm/components/messages/contents/drill/DrillSelectDropdownMenu.d.ts.map +1 -0
- package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts +1 -0
- package/esm/components/messages/contents/hooks/useVisualisationSaving.d.ts.map +1 -0
- package/esm/components/messages/contents/replaceLinks.d.ts +1 -0
- package/esm/components/messages/contents/replaceLinks.d.ts.map +1 -0
- package/esm/components/messages/contents/useExecution.d.ts +1 -0
- package/esm/components/messages/contents/useExecution.d.ts.map +1 -0
- package/esm/components/messages/contents/useKdaDefinition.d.ts +1 -0
- package/esm/components/messages/contents/useKdaDefinition.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationErrorContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationErrorContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationKdaContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationKdaContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationReasoningContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationReasoningContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationSearchContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationSearchContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationTextContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationTextContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationToolCallContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationToolCallContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationToolResultContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationVisualizationContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/ConversationWhatIfContent.d.ts +1 -0
- package/esm/components/messages/conversationContents/ConversationWhatIfContent.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts +1 -0
- package/esm/components/messages/conversationContents/SaveVisualizationDialog.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/useExecution.d.ts +1 -0
- package/esm/components/messages/conversationContents/useExecution.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/useKdaDefinition.d.ts +1 -0
- package/esm/components/messages/conversationContents/useKdaDefinition.d.ts.map +1 -0
- package/esm/components/messages/conversationContents/useSaveCheck.d.ts +1 -0
- package/esm/components/messages/conversationContents/useSaveCheck.d.ts.map +1 -0
- package/esm/components/messages/itemState.d.ts +1 -0
- package/esm/components/messages/itemState.d.ts.map +1 -0
- package/esm/components/messages/messageState.d.ts +1 -0
- package/esm/components/messages/messageState.d.ts.map +1 -0
- package/esm/components/messages/useUserFeedback.d.ts +1 -0
- package/esm/components/messages/useUserFeedback.d.ts.map +1 -0
- package/esm/components/utils/agentSelection.d.ts +20 -0
- package/esm/components/utils/agentSelection.d.ts.map +1 -0
- package/esm/components/utils/agentSelection.js +47 -0
- package/esm/components/utils/conversationGrouper.d.ts +1 -0
- package/esm/components/utils/conversationGrouper.d.ts.map +1 -0
- package/esm/components/utils/groupUtility.d.ts +2 -1
- package/esm/components/utils/groupUtility.d.ts.map +1 -0
- package/esm/components/utils/groupUtility.js +3 -0
- package/esm/components/utils/intersectionUtils.d.ts +1 -0
- package/esm/components/utils/intersectionUtils.d.ts.map +1 -0
- package/esm/components/utils/markdownUtils.d.ts +1 -0
- package/esm/components/utils/markdownUtils.d.ts.map +1 -0
- package/esm/components/utils/modelCheckUtility.d.ts +1 -0
- package/esm/components/utils/modelCheckUtility.d.ts.map +1 -0
- package/esm/forecast/forecastMapping.d.ts +1 -0
- package/esm/forecast/forecastMapping.d.ts.map +1 -0
- package/esm/hooks/useGenAIStore.d.ts +1 -0
- package/esm/hooks/useGenAIStore.d.ts.map +1 -0
- package/esm/hooks/useGenAIStore.js +4 -1
- package/esm/hooks/useGenAiChatAvailability.d.ts +1 -0
- package/esm/hooks/useGenAiChatAvailability.d.ts.map +1 -0
- package/esm/index.d.ts +2 -1
- package/esm/index.d.ts.map +1 -0
- package/esm/internal.d.ts +1 -0
- package/esm/internal.d.ts.map +1 -0
- package/esm/localization/IntlWrapper.d.ts +1 -0
- package/esm/localization/IntlWrapper.d.ts.map +1 -0
- package/esm/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts +25 -0
- package/esm/localization/bundles/en-US.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/en-US.localization-bundle.js +24 -0
- package/esm/localization/bundles/es-419.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/es-419.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -0
- package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
- package/esm/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -0
- package/esm/localization/translations.d.ts +1 -0
- package/esm/localization/translations.d.ts.map +1 -0
- package/esm/model.d.ts +28 -1
- package/esm/model.d.ts.map +1 -0
- package/esm/model.js +16 -0
- package/esm/permissions/PermissionsContext.d.ts +1 -0
- package/esm/permissions/PermissionsContext.d.ts.map +1 -0
- package/esm/permissions/usePermissions.d.ts +1 -0
- package/esm/permissions/usePermissions.d.ts.map +1 -0
- package/esm/permissions/useWorkspacePermissions.d.ts +1 -0
- package/esm/permissions/useWorkspacePermissions.d.ts.map +1 -0
- package/esm/permissions/utils.d.ts +1 -0
- package/esm/permissions/utils.d.ts.map +1 -0
- package/esm/sdk-ui-gen-ai.d.ts +10 -1
- package/esm/store/chatWindow/allowedRelationshipTypes.d.ts +1 -0
- package/esm/store/chatWindow/allowedRelationshipTypes.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSelectors.d.ts +4 -0
- package/esm/store/chatWindow/chatWindowSelectors.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSelectors.js +6 -0
- package/esm/store/chatWindow/chatWindowSlice.d.ts +12 -1
- package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -0
- package/esm/store/chatWindow/chatWindowSlice.js +10 -2
- package/esm/store/events.d.ts +1 -0
- package/esm/store/events.d.ts.map +1 -0
- package/esm/store/localStorage.d.ts +1 -0
- package/esm/store/localStorage.d.ts.map +1 -0
- package/esm/store/messages/messagesSelectors.d.ts +67 -1
- package/esm/store/messages/messagesSelectors.d.ts.map +1 -0
- package/esm/store/messages/messagesSelectors.js +3 -0
- package/esm/store/messages/messagesSlice.d.ts +26 -3
- package/esm/store/messages/messagesSlice.d.ts.map +1 -0
- package/esm/store/messages/messagesSlice.js +82 -2
- package/esm/store/options.d.ts +1 -0
- package/esm/store/options.d.ts.map +1 -0
- package/esm/store/queues/queue.newMessage.d.ts +1 -0
- package/esm/store/queues/queue.newMessage.d.ts.map +1 -0
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts +1 -0
- package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +1 -0
- package/esm/store/sideEffects/converters/toLocalContent.d.ts +1 -0
- package/esm/store/sideEffects/converters/toLocalContent.d.ts.map +1 -0
- package/esm/store/sideEffects/index.d.ts +1 -0
- package/esm/store/sideEffects/index.d.ts.map +1 -0
- package/esm/store/sideEffects/index.js +10 -1
- package/esm/store/sideEffects/loadAgents.d.ts +13 -0
- package/esm/store/sideEffects/loadAgents.d.ts.map +1 -0
- package/esm/store/sideEffects/loadAgents.js +46 -0
- package/esm/store/sideEffects/loadCatalogItems.d.ts +1 -0
- package/esm/store/sideEffects/loadCatalogItems.d.ts.map +1 -0
- package/esm/store/sideEffects/loadColorPalette.d.ts +1 -0
- package/esm/store/sideEffects/loadColorPalette.d.ts.map +1 -0
- package/esm/store/sideEffects/loadSettings.d.ts +1 -0
- package/esm/store/sideEffects/loadSettings.d.ts.map +1 -0
- package/esm/store/sideEffects/onAgentSwitch.d.ts +22 -0
- package/esm/store/sideEffects/onAgentSwitch.d.ts.map +1 -0
- package/esm/store/sideEffects/onAgentSwitch.js +55 -0
- package/esm/store/sideEffects/onChatOpenSync.d.ts +44 -0
- package/esm/store/sideEffects/onChatOpenSync.d.ts.map +1 -0
- package/esm/store/sideEffects/onChatOpenSync.js +141 -0
- package/esm/store/sideEffects/onConversationDelete.d.ts +1 -0
- package/esm/store/sideEffects/onConversationDelete.d.ts.map +1 -0
- package/esm/store/sideEffects/onConversationPin.d.ts +1 -0
- package/esm/store/sideEffects/onConversationPin.d.ts.map +1 -0
- package/esm/store/sideEffects/onConversationRename.d.ts +1 -0
- package/esm/store/sideEffects/onConversationRename.d.ts.map +1 -0
- package/esm/store/sideEffects/onEvent.d.ts +1 -0
- package/esm/store/sideEffects/onEvent.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadClear.d.ts +1 -0
- package/esm/store/sideEffects/onThreadClear.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts +1 -0
- package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -0
- package/esm/store/sideEffects/onThreadLoad.js +2 -1
- package/esm/store/sideEffects/onUserFeedback.d.ts +1 -0
- package/esm/store/sideEffects/onUserFeedback.d.ts.map +1 -0
- package/esm/store/sideEffects/onUserMessage.d.ts +1 -0
- package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -0
- package/esm/store/sideEffects/onUserMessage.js +20 -5
- package/esm/store/sideEffects/onUserMessageUpdate.d.ts +1 -0
- package/esm/store/sideEffects/onUserMessageUpdate.d.ts.map +1 -0
- package/esm/store/sideEffects/onVerboseStore.d.ts +1 -0
- package/esm/store/sideEffects/onVerboseStore.d.ts.map +1 -0
- package/esm/store/sideEffects/onVisualisationRender.d.ts +1 -0
- package/esm/store/sideEffects/onVisualisationRender.d.ts.map +1 -0
- package/esm/store/sideEffects/onVisualizationSave.d.ts +1 -0
- package/esm/store/sideEffects/onVisualizationSave.d.ts.map +1 -0
- package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts +1 -0
- package/esm/store/sideEffects/onVisualizationSuccessSave.d.ts.map +1 -0
- package/esm/store/sideEffects/utils.d.ts +1 -0
- package/esm/store/sideEffects/utils.d.ts.map +1 -0
- package/esm/store/store.d.ts +1 -0
- package/esm/store/store.d.ts.map +1 -0
- package/esm/store/store.js +4 -1
- package/esm/store/types.d.ts +1 -0
- package/esm/store/types.d.ts.map +1 -0
- package/esm/store/utils.d.ts +1 -0
- package/esm/store/utils.d.ts.map +1 -0
- package/esm/types.d.ts +3 -1
- package/esm/types.d.ts.map +1 -0
- package/esm/utils.d.ts +1 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/whatIf/whatIfMapping.d.ts +1 -0
- package/esm/whatIf/whatIfMapping.d.ts.map +1 -0
- package/package.json +20 -20
- package/styles/css/input.css +103 -13
- package/styles/css/input.css.map +1 -1
- package/styles/css/main.css +152 -14
- package/styles/css/main.css.map +1 -1
- package/styles/css/messages.css +47 -0
- package/styles/css/messages.css.map +1 -1
- package/styles/scss/input.scss +113 -17
- package/styles/scss/main.scss +2 -1
- package/styles/scss/messages.scss +61 -0
|
@@ -12,10 +12,15 @@ const initialState = {
|
|
|
12
12
|
excludeTags: undefined,
|
|
13
13
|
allowedRelationshipTypes: undefined,
|
|
14
14
|
userContext: undefined,
|
|
15
|
+
isPreview: undefined,
|
|
15
16
|
};
|
|
17
|
+
export const getInitialChatWindowState = ({ isPreview, } = {}) => ({
|
|
18
|
+
...initialState,
|
|
19
|
+
isPreview,
|
|
20
|
+
});
|
|
16
21
|
const chatWindowSlice = createSlice({
|
|
17
22
|
name: chatWindowSliceName,
|
|
18
|
-
initialState,
|
|
23
|
+
initialState: getInitialChatWindowState(),
|
|
19
24
|
reducers: {
|
|
20
25
|
setOpenAction: (state, { payload: { isOpen } }) => {
|
|
21
26
|
state.isOpen = isOpen;
|
|
@@ -54,8 +59,11 @@ const chatWindowSlice = createSlice({
|
|
|
54
59
|
clearUserContextAction: (state) => {
|
|
55
60
|
state.userContext = undefined;
|
|
56
61
|
},
|
|
62
|
+
setIsPreviewAction: (state, { payload: { isPreview } }) => {
|
|
63
|
+
state.isPreview = isPreview;
|
|
64
|
+
},
|
|
57
65
|
copyToClipboardAction: (state, _action) => state,
|
|
58
66
|
},
|
|
59
67
|
});
|
|
60
68
|
export const chatWindowSliceReducer = chatWindowSlice.reducer;
|
|
61
|
-
export const { setOpenAction, setFullscreenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, setAllowedRelationshipTypesAction, setUserContextAction, clearUserContextAction, } = chatWindowSlice.actions;
|
|
69
|
+
export const { setOpenAction, setFullscreenAction, setHistoryAction, setColorPaletteAction, setSettingsAction, copyToClipboardAction, setKeyDriverAnalysisAction, setObjectTypesAction, setTagsAction, setCatalogItemsActions, setAllowedRelationshipTypesAction, setUserContextAction, clearUserContextAction, setIsPreviewAction, } = chatWindowSlice.actions;
|
package/esm/store/events.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/store/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,3 +4,4 @@ export declare function setIsOpened(isOpened: boolean): void;
|
|
|
4
4
|
export declare function saveMessages(workspaceId: string, messages: Message[]): void;
|
|
5
5
|
export declare function loadMessages(workspaceId: string): Message[] | undefined;
|
|
6
6
|
export declare function clearCachedMessages(workspaceId: string): void;
|
|
7
|
+
//# sourceMappingURL=localStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/store/localStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK3C,wBAAgB,WAAW,wBAU1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,QAY5C;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAS3E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAavE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS7D"}
|
|
@@ -5,12 +5,78 @@ export declare const loadedSelector: (state: RootState) => boolean;
|
|
|
5
5
|
export declare const isVerboseSelector: (state: RootState) => boolean;
|
|
6
6
|
export declare const lastMessageSelector: (state: RootState) => Message | undefined;
|
|
7
7
|
export declare const hasMessagesSelector: (state: RootState) => boolean;
|
|
8
|
-
export declare const asyncProcessSelector: (state: RootState) => "loading" | "restoring" | "clearing" | "evaluating" | undefined;
|
|
8
|
+
export declare const asyncProcessSelector: (state: RootState) => "loading" | "restoring" | "clearing" | "evaluating" | "switchingAgent" | undefined;
|
|
9
9
|
export declare const globalErrorSelector: (state: RootState) => Record<string, unknown> | null;
|
|
10
10
|
export declare const threadIdSelector: (state: RootState) => string | undefined;
|
|
11
11
|
export declare const conversationMessagesSelector: (state: RootState) => IChatConversationLocalItem[];
|
|
12
12
|
export declare const conversationMessagesByIdSelector: (state: RootState, conversationId?: string) => IChatConversationLocalItem[];
|
|
13
13
|
export declare const conversationSelector: (state: RootState) => IChatConversationLocal | undefined;
|
|
14
|
+
export declare const selectedAgentIdSelector: (state: RootState) => string | undefined;
|
|
15
|
+
export declare const agentsSelector: ((state: RootState) => import("../../model.js").GenAIAgent[] | undefined) & {
|
|
16
|
+
clearCache: () => void;
|
|
17
|
+
resultsCount: () => number;
|
|
18
|
+
resetResultsCount: () => void;
|
|
19
|
+
} & {
|
|
20
|
+
resultFunc: (resultFuncArgs_0: {
|
|
21
|
+
verbose: boolean;
|
|
22
|
+
loaded: boolean;
|
|
23
|
+
messages: Record<string, Message>;
|
|
24
|
+
messageOrder: string[];
|
|
25
|
+
messageAsyncProcess?: "clearing" | "evaluating" | "loading" | "restoring" | "switchingAgent" | undefined;
|
|
26
|
+
conversations: IChatConversationLocal[] | undefined;
|
|
27
|
+
conversationsLoaded: boolean;
|
|
28
|
+
currentConversation: IChatConversationLocal | undefined;
|
|
29
|
+
selectedAgentId: string | undefined;
|
|
30
|
+
agents: import("../../model.js").GenAIAgent[] | undefined;
|
|
31
|
+
conversationsData: Record<string, import("../../types.js").StoredConversation>;
|
|
32
|
+
globalError?: Record<string, unknown> | undefined;
|
|
33
|
+
threadId?: string | undefined;
|
|
34
|
+
}) => import("../../model.js").GenAIAgent[] | undefined;
|
|
35
|
+
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
36
|
+
verbose: boolean;
|
|
37
|
+
loaded: boolean;
|
|
38
|
+
messages: Record<string, Message>;
|
|
39
|
+
messageOrder: string[];
|
|
40
|
+
messageAsyncProcess?: "clearing" | "evaluating" | "loading" | "restoring" | "switchingAgent" | undefined;
|
|
41
|
+
conversations: IChatConversationLocal[] | undefined;
|
|
42
|
+
conversationsLoaded: boolean;
|
|
43
|
+
currentConversation: IChatConversationLocal | undefined;
|
|
44
|
+
selectedAgentId: string | undefined;
|
|
45
|
+
agents: import("../../model.js").GenAIAgent[] | undefined;
|
|
46
|
+
conversationsData: Record<string, import("../../types.js").StoredConversation>;
|
|
47
|
+
globalError?: Record<string, unknown> | undefined;
|
|
48
|
+
threadId?: string | undefined;
|
|
49
|
+
}) => import("../../model.js").GenAIAgent[] | undefined) & {
|
|
50
|
+
clearCache: () => void;
|
|
51
|
+
resultsCount: () => number;
|
|
52
|
+
resetResultsCount: () => void;
|
|
53
|
+
};
|
|
54
|
+
lastResult: () => import("../../model.js").GenAIAgent[] | undefined;
|
|
55
|
+
dependencies: [(state: RootState) => {
|
|
56
|
+
verbose: boolean;
|
|
57
|
+
loaded: boolean;
|
|
58
|
+
messages: Record<string, Message>;
|
|
59
|
+
messageOrder: string[];
|
|
60
|
+
messageAsyncProcess?: "clearing" | "evaluating" | "loading" | "restoring" | "switchingAgent" | undefined;
|
|
61
|
+
conversations: IChatConversationLocal[] | undefined;
|
|
62
|
+
conversationsLoaded: boolean;
|
|
63
|
+
currentConversation: IChatConversationLocal | undefined;
|
|
64
|
+
selectedAgentId: string | undefined;
|
|
65
|
+
agents: import("../../model.js").GenAIAgent[] | undefined;
|
|
66
|
+
conversationsData: Record<string, import("../../types.js").StoredConversation>;
|
|
67
|
+
globalError?: Record<string, unknown> | undefined;
|
|
68
|
+
threadId?: string | undefined;
|
|
69
|
+
}];
|
|
70
|
+
recomputations: () => number;
|
|
71
|
+
resetRecomputations: () => void;
|
|
72
|
+
dependencyRecomputations: () => number;
|
|
73
|
+
resetDependencyRecomputations: () => void;
|
|
74
|
+
} & {
|
|
75
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
76
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
77
|
+
};
|
|
78
|
+
export declare const agentsAvailableSelector: (state: RootState) => boolean | undefined;
|
|
14
79
|
export declare const conversationByIdSelector: (state: RootState, conversationId: string) => IChatConversationLocal | undefined;
|
|
15
80
|
export declare const conversationsSelector: (state: RootState) => IChatConversationLocal[] | undefined;
|
|
16
81
|
export declare const conversationsLoadedSelector: (state: RootState) => boolean;
|
|
82
|
+
//# sourceMappingURL=messagesSelectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messagesSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5G,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,EAG3D,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGjE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OASvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAC/B,KAAK,EAAE,SAAS,KACf,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,gBAAgB,GAAG,SAS7E,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAGjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAG7D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,0BAA0B,EAIrF,CAAC;AAEP,eAAO,MAAM,gCAAgC,EAAE,CAC3C,KAAK,EAAE,SAAS,EAChB,cAAc,CAAC,EAAE,MAAM,KACtB,0BAA0B,EAU9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,GAAG,SAGjF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,GAAG,SAGpE,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiE,CAAC;AAE7F,eAAO,MAAM,uBAAuB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CACnC,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,MAAM,KACrB,sBAAsB,GAAG,SAI7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,EAAE,GAAG,SACZ,CAAC;AAE1E,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAG/D,CAAC"}
|
|
@@ -34,6 +34,9 @@ export const conversationMessagesByIdSelector = createSelector([messagesSliceSel
|
|
|
34
34
|
return data.order.map((id) => data.items[id]);
|
|
35
35
|
});
|
|
36
36
|
export const conversationSelector = createSelector(messagesSliceSelector, (state) => state.currentConversation);
|
|
37
|
+
export const selectedAgentIdSelector = createSelector(messagesSliceSelector, (state) => state.selectedAgentId);
|
|
38
|
+
export const agentsSelector = createSelector(messagesSliceSelector, (state) => state.agents);
|
|
39
|
+
export const agentsAvailableSelector = createSelector(agentsSelector, (agents) => (agents ? agents.length > 0 : undefined));
|
|
37
40
|
export const conversationByIdSelector = createSelector([messagesSliceSelector, (_state, conversationId) => conversationId], (state, conversationId) => state.conversations?.find((conversation) => conversation.localId === conversationId));
|
|
38
41
|
export const conversationsSelector = createSelector(messagesSliceSelector, (state) => state.conversations);
|
|
39
42
|
export const conversationsLoadedSelector = createSelector(messagesSliceSelector, (state) => state.conversationsLoaded);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Reducer } from "@reduxjs/toolkit";
|
|
2
2
|
import { type IChatConversationItem } from "@gooddata/sdk-backend-spi";
|
|
3
3
|
import { type GenAIChatInteractionUserFeedback } from "@gooddata/sdk-model";
|
|
4
|
-
import { type AssistantMessage, type Contents, type IChatConversationErrorContent, type IChatConversationLocal, type IChatConversationLocalContent, type IChatConversationLocalItem, type Message, type UserMessage } from "../../model.js";
|
|
4
|
+
import { type AssistantMessage, type Contents, type GenAIAgent, type IChatConversationErrorContent, type IChatConversationLocal, type IChatConversationLocalContent, type IChatConversationLocalItem, type Message, type UserMessage } from "../../model.js";
|
|
5
5
|
import { type StoredConversation } from "../../types.js";
|
|
6
6
|
type MessagesSliceState = {
|
|
7
7
|
/**
|
|
@@ -27,8 +27,9 @@ type MessagesSliceState = {
|
|
|
27
27
|
* - restoring: cached messages have been restored while the backend fetch is still in-flight
|
|
28
28
|
* - clearing: the thread is being cleared
|
|
29
29
|
* - evaluating: the new user message is being evaluated by assistant
|
|
30
|
+
* - switchingAgent: the active agent switch is being persisted
|
|
30
31
|
*/
|
|
31
|
-
messageAsyncProcess?: "loading" | "restoring" | "clearing" | "evaluating";
|
|
32
|
+
messageAsyncProcess?: "loading" | "restoring" | "clearing" | "evaluating" | "switchingAgent";
|
|
32
33
|
/**
|
|
33
34
|
* A list of conversations.
|
|
34
35
|
*/
|
|
@@ -42,6 +43,15 @@ type MessagesSliceState = {
|
|
|
42
43
|
* - undefined: no conversation is selected
|
|
43
44
|
*/
|
|
44
45
|
currentConversation: IChatConversationLocal | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* The currently selected agent id for newly created conversations.
|
|
48
|
+
*/
|
|
49
|
+
selectedAgentId: string | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* The enabled agents available for new prompts.
|
|
52
|
+
* Undefined means the agent list has not been evaluated yet.
|
|
53
|
+
*/
|
|
54
|
+
agents: GenAIAgent[] | undefined;
|
|
45
55
|
/**
|
|
46
56
|
* Conversation data
|
|
47
57
|
*/
|
|
@@ -158,7 +168,19 @@ export declare const loadThreadAction: import("@reduxjs/toolkit").ActionCreatorW
|
|
|
158
168
|
}, "messages/saveVisualisationRenderStatusSuccessAction">, visualizationErrorAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
159
169
|
errorType: "BAD_REQUEST" | "CANCELLED" | "CLUSTERING_NOT_RECEIVED" | "DATA_TOO_LARGE_TO_COMPUTE" | "DATA_TOO_LARGE_TO_DISPLAY" | "DYNAMIC_SCRIPT_LOAD_ERROR" | "FORECAST_NOT_RECEIVED" | "GEO_AREA_MISSING" | "GEO_LOCATION_MISSING" | "GEO_MAPBOX_TOKEN_MISSING" | "HEADERS_TOO_LARGE" | "NEGATIVE_VALUES" | "NOT_FOUND" | "NO_DATA" | "PROTECTED_REPORT" | "RESULT_CACHE_MISSING" | "TIMEOUT_ERROR" | "UNAUTHORIZED" | "UNKNOWN_ERROR" | "VISUALIZATION_CLASS_UNKNOWN";
|
|
160
170
|
errorMessage?: string | undefined;
|
|
161
|
-
}, "messages/visualizationErrorAction">,
|
|
171
|
+
}, "messages/visualizationErrorAction">, setSelectedAgentAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
172
|
+
agentId: string | undefined;
|
|
173
|
+
previousAgentId?: string | undefined;
|
|
174
|
+
showChangeEvent?: boolean | undefined;
|
|
175
|
+
}, "messages/setSelectedAgentAction">, finishAgentSwitchAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
176
|
+
conversationLocalId: string;
|
|
177
|
+
}, "messages/finishAgentSwitchAction">, revertAgentSwitchAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
178
|
+
previousAgentId: string | undefined;
|
|
179
|
+
failedAgentId: string;
|
|
180
|
+
conversationLocalId: string;
|
|
181
|
+
}, "messages/revertAgentSwitchAction">, setAgentsAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
182
|
+
agents: GenAIAgent[] | undefined;
|
|
183
|
+
}, "messages/setAgentsAction">, pinConversationAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
162
184
|
conversation: IChatConversationLocal;
|
|
163
185
|
pinned: boolean;
|
|
164
186
|
}, "messages/pinConversationAction">, pinConversationSuccessAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
@@ -207,3 +229,4 @@ clearThreadAction: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"messa
|
|
|
207
229
|
*/
|
|
208
230
|
newMessageAction: import("@reduxjs/toolkit").ActionCreatorWithPayload<Message | IChatConversationLocalItem, "messages/newMessageAction">;
|
|
209
231
|
export {};
|
|
232
|
+
//# sourceMappingURL=messagesSlice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messagesSlice.d.ts","sourceRoot":"","sources":["../../../src/store/messages/messagesSlice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
2
|
import { createSlice } from "@reduxjs/toolkit";
|
|
3
|
-
import {
|
|
3
|
+
import { selectDefaultAgentId } from "../../components/utils/agentSelection.js";
|
|
4
|
+
import { isAssistantMessage, isChatConversationLocalItem, isUserMessage, isVisualizationContents, makeAgentChangeItem, makeErrorContent, makeErrorContents, } from "../../model.js";
|
|
4
5
|
import { convertMessageToChatConversation } from "../sideEffects/utils.js";
|
|
5
6
|
import { createEmptyConversation, getConversationData, getConversationLocalId, isConversationWithLocalId, } from "../utils.js";
|
|
6
7
|
export const LS_VERBOSE_KEY = "gd-gen-ai-verbose";
|
|
@@ -27,6 +28,8 @@ const initialState = {
|
|
|
27
28
|
conversations: undefined,
|
|
28
29
|
currentConversation: undefined,
|
|
29
30
|
conversationsLoaded: false,
|
|
31
|
+
selectedAgentId: undefined,
|
|
32
|
+
agents: undefined,
|
|
30
33
|
conversationsData: {},
|
|
31
34
|
};
|
|
32
35
|
const setNormalizedMessages = (state, messages) => {
|
|
@@ -212,6 +215,7 @@ const messagesSlice = createSlice({
|
|
|
212
215
|
},
|
|
213
216
|
loadConversationSuccessAction: (state, { payload: { currentConversation, conversationItems, threadId }, }) => {
|
|
214
217
|
setNormalizedConversation(state, currentConversation, conversationItems);
|
|
218
|
+
state.selectedAgentId = currentConversation.agentId ?? state.selectedAgentId;
|
|
215
219
|
state.threadId = threadId;
|
|
216
220
|
if (state.currentConversation) {
|
|
217
221
|
const data = getConversationData(state.conversationsData, state.currentConversation.localId);
|
|
@@ -457,6 +461,7 @@ const messagesSlice = createSlice({
|
|
|
457
461
|
state.threadId = payload.conversation.id;
|
|
458
462
|
existing.id = payload.conversation.id;
|
|
459
463
|
existing.localId = payload.conversation.localId;
|
|
464
|
+
existing.agentId = payload.conversation.agentId;
|
|
460
465
|
}
|
|
461
466
|
else {
|
|
462
467
|
state.conversations = [payload.conversation, ...(state.conversations ?? [])];
|
|
@@ -464,6 +469,81 @@ const messagesSlice = createSlice({
|
|
|
464
469
|
state.threadId = payload.conversation.id;
|
|
465
470
|
state.loaded = true;
|
|
466
471
|
}
|
|
472
|
+
state.selectedAgentId = payload.conversation.agentId ?? state.selectedAgentId;
|
|
473
|
+
},
|
|
474
|
+
setSelectedAgentAction: (state, { payload, }) => {
|
|
475
|
+
const previousAgentId = state.currentConversation?.agentId;
|
|
476
|
+
state.selectedAgentId = payload.agentId;
|
|
477
|
+
// Silent defaults (no showChangeEvent) must not stamp a persisted conversation's agentId.
|
|
478
|
+
if (state.currentConversation && payload.showChangeEvent) {
|
|
479
|
+
state.currentConversation.agentId = payload.agentId;
|
|
480
|
+
state.conversations = state.conversations?.map((conversation) => conversation.localId === state.currentConversation?.localId
|
|
481
|
+
? {
|
|
482
|
+
...conversation,
|
|
483
|
+
agentId: payload.agentId,
|
|
484
|
+
}
|
|
485
|
+
: conversation);
|
|
486
|
+
const data = getConversationData(state.conversationsData, state.currentConversation.localId);
|
|
487
|
+
// Only persisted conversations (with an id) are switched on the backend by onAgentSwitch.
|
|
488
|
+
// A draft conversation (empty id) is created with the selected agent on the first message,
|
|
489
|
+
// so it must not show a "switched agent" divider or enter the switching busy state - that
|
|
490
|
+
// switch never happened on the server.
|
|
491
|
+
if (data &&
|
|
492
|
+
state.currentConversation.id &&
|
|
493
|
+
payload.agentId &&
|
|
494
|
+
previousAgentId !== payload.agentId) {
|
|
495
|
+
// Optimistically append the agentChange event for immediate in-session feedback -
|
|
496
|
+
// nothing reloads the conversation history right after a switch. The backend persists
|
|
497
|
+
// its own agentChange item, which is reconstructed by the history convertor when the
|
|
498
|
+
// conversation is reopened (in-memory items are empty on a fresh load, so this does not
|
|
499
|
+
// duplicate).
|
|
500
|
+
const item = makeAgentChangeItem({
|
|
501
|
+
agentId: payload.agentId,
|
|
502
|
+
oldAgentId: previousAgentId,
|
|
503
|
+
});
|
|
504
|
+
data.items[item.localId] = item;
|
|
505
|
+
data.order.push(item.localId);
|
|
506
|
+
data.asyncProcess = "switchingAgent";
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
finishAgentSwitchAction: (state, { payload }) => {
|
|
511
|
+
const data = state.conversationsData[payload.conversationLocalId];
|
|
512
|
+
if (data?.asyncProcess === "switchingAgent") {
|
|
513
|
+
delete data.asyncProcess;
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
revertAgentSwitchAction: (state, { payload, }) => {
|
|
517
|
+
// Only revert the dropdown when the user is still on the failed conversation.
|
|
518
|
+
if (state.currentConversation?.localId === payload.conversationLocalId) {
|
|
519
|
+
// The conversation itself goes back to its previous agent (possibly none - the
|
|
520
|
+
// server never switched), but the dropdown needs a concrete selection that is
|
|
521
|
+
// actually available, otherwise it would flip into the loading state until a
|
|
522
|
+
// default is re-resolved.
|
|
523
|
+
const isPreviousAgentAvailable = !!payload.previousAgentId &&
|
|
524
|
+
(state.agents ?? []).some((agent) => agent.id === payload.previousAgentId);
|
|
525
|
+
state.selectedAgentId = isPreviousAgentAvailable
|
|
526
|
+
? payload.previousAgentId
|
|
527
|
+
: selectDefaultAgentId(state.agents ?? [], state.conversations);
|
|
528
|
+
state.currentConversation.agentId = payload.previousAgentId;
|
|
529
|
+
}
|
|
530
|
+
state.conversations = state.conversations?.map((conversation) => conversation.localId === payload.conversationLocalId
|
|
531
|
+
? { ...conversation, agentId: payload.previousAgentId }
|
|
532
|
+
: conversation);
|
|
533
|
+
const data = state.conversationsData[payload.conversationLocalId];
|
|
534
|
+
if (data) {
|
|
535
|
+
const optimisticId = [...data.order].reverse().find((id) => {
|
|
536
|
+
const item = data.items[id];
|
|
537
|
+
return item.role === "system" && item.agentId === payload.failedAgentId && item.id === "";
|
|
538
|
+
});
|
|
539
|
+
if (optimisticId) {
|
|
540
|
+
data.order.splice(data.order.indexOf(optimisticId), 1);
|
|
541
|
+
delete data.items[optimisticId];
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
},
|
|
545
|
+
setAgentsAction: (state, { payload }) => {
|
|
546
|
+
state.agents = payload.agents;
|
|
467
547
|
},
|
|
468
548
|
setGlobalErrorAction: (state, { payload: { error } }) => {
|
|
469
549
|
state.globalError = errorToObject(error);
|
|
@@ -724,7 +804,7 @@ const messagesSlice = createSlice({
|
|
|
724
804
|
});
|
|
725
805
|
const errorToObject = (error) => Object.fromEntries(Object.getOwnPropertyNames(error).map((key) => [key, error[key]]));
|
|
726
806
|
export const messagesSliceReducer = messagesSlice.reducer;
|
|
727
|
-
export const { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, loadConversationsSuccessAction, loadConversationSuccessAction, restoreCachedMessagesAction, clearThreadErrorAction, clearThreadSuccessAction, clearConversationSuccessAction, evaluateConversationTitleAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageUpdateAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, setUserFeedback, setUserFeedbackError, clearUserFeedbackError, saveVisualizationAction, savedVisualizationAction, saveVisualizationErrorAction, saveVisualizationSuccessAction, saveVisualisationRenderStatusAction, saveVisualisationRenderStatusSuccessAction, visualizationErrorAction, pinConversationAction, pinConversationSuccessAction, pinConversationFailureAction, renameConversationAction, renameConversationSuccessAction, renameConversationFailureAction, deleteConversationAction, deleteConversationStartAction, deleteConversationSuccessAction, deleteConversationFailureAction,
|
|
807
|
+
export const { loadThreadAction, loadThreadErrorAction, loadThreadSuccessAction, loadConversationsSuccessAction, loadConversationSuccessAction, restoreCachedMessagesAction, clearThreadErrorAction, clearThreadSuccessAction, clearConversationSuccessAction, evaluateConversationTitleAction, evaluateMessageAction, evaluateMessageErrorAction, evaluateMessageStreamingAction, evaluateMessageUpdateAction, evaluateMessageCompleteAction, setMessagesAction, setVerboseAction, setGlobalErrorAction, cancelAsyncAction, setUserFeedback, setUserFeedbackError, clearUserFeedbackError, saveVisualizationAction, savedVisualizationAction, saveVisualizationErrorAction, saveVisualizationSuccessAction, saveVisualisationRenderStatusAction, saveVisualisationRenderStatusSuccessAction, visualizationErrorAction, setSelectedAgentAction, finishAgentSwitchAction, revertAgentSwitchAction, setAgentsAction, pinConversationAction, pinConversationSuccessAction, pinConversationFailureAction, renameConversationAction, renameConversationSuccessAction, renameConversationFailureAction, deleteConversationAction, deleteConversationStartAction, deleteConversationSuccessAction, deleteConversationFailureAction,
|
|
728
808
|
/**
|
|
729
809
|
* @public
|
|
730
810
|
*/
|
package/esm/store/options.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/store/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjG;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,YAAY,CAAwC;IAErD,eAAe,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAEpE;IAEM,eAAe,IAAI,aAAa,GAAG,SAAS,CAElD;IAEM,WAAW,CAAC,QAAQ,EAAE,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAErE;IAEM,WAAW,IAAI,sBAAsB,GAAG,SAAS,CAEvD;IAEM,cAAc,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,IAAI,CAEtE;IAEM,cAAc,IAAI,eAAe,EAAE,GAAG,SAAS,CAErD;IAEM,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAGzF;IAEM,OAAO,IAAI;QAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAKzF;IAEM,eAAe,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,GAAG,IAAI,CAEpE;IAEM,eAAe,IAAI,WAAW,EAAE,GAAG,SAAS,CAElD;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.newMessage.d.ts","sourceRoot":"","sources":["../../../src/store/queues/queue.newMessage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,kBAAkB,CAAC;AAMvE,eAAO,MAAM,eAAe,EAAE,UAgD7B,CAAC"}
|
|
@@ -16,3 +16,4 @@ export type InteractionsToMessagesOptions = {
|
|
|
16
16
|
*/
|
|
17
17
|
export declare const interactionsToMessages: (interactions: IGenAIChatInteraction[], options?: InteractionsToMessagesOptions) => Message[];
|
|
18
18
|
export declare const processContents: (item: IGenAIChatEvaluation | IGenAIChatInteraction, arrived?: boolean | undefined, options?: InteractionsToMessagesOptions) => Contents[];
|
|
19
|
+
//# sourceMappingURL=interactionsToMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactionsToMessages.d.ts","sourceRoot":"","sources":["../../../../src/store/sideEffects/converters/interactionsToMessages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EACH,KAAK,QAAQ,EACb,KAAK,OAAO,EAWf,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IACxC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,+FA2BlC,CAAC;AAEF,eAAO,MAAM,eAAe,4IA+E3B,CAAC"}
|
|
@@ -2,3 +2,4 @@ import { type IChatConversationContent, type IChatConversationMultipartPart } fr
|
|
|
2
2
|
import type { IChatConversationLocalContent, IChatConversationMultipartLocalPart } from "../../../model.js";
|
|
3
3
|
export declare function convertToLocalContent(content: IChatConversationContent): IChatConversationLocalContent;
|
|
4
4
|
export declare function convertToLocalMultipartContent(content: IChatConversationMultipartPart[]): IChatConversationMultipartLocalPart[];
|
|
5
|
+
//# sourceMappingURL=toLocalContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toLocalContent.d.ts","sourceRoot":"","sources":["../../../../src/store/sideEffects/converters/toLocalContent.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACtC,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,6BAA6B,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AAE5G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,6BAA6B,CAStG;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,8BAA8B,EAAE,GAC1C,mCAAmC,EAAE,CASvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAyCA;;;GAGG;AACH,wBAAiB,QAAQ,4HAyBxB"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
// (C) 2024-2026 GoodData Corporation
|
|
2
2
|
import { call, fork, takeEvery, takeLatest } from "redux-saga/effects";
|
|
3
|
-
import {
|
|
3
|
+
import { setOpenAction } from "../chatWindow/chatWindowSlice.js";
|
|
4
|
+
import { clearThreadAction, deleteConversationAction, evaluateMessageUpdateAction, loadThreadAction, newMessageAction, pinConversationAction, renameConversationAction, saveVisualisationRenderStatusAction, saveVisualizationAction, saveVisualizationSuccessAction, setSelectedAgentAction, setUserFeedback, setVerboseAction, } from "../messages/messagesSlice.js";
|
|
5
|
+
import { loadAgents } from "./loadAgents.js";
|
|
4
6
|
import { loadCatalogItems } from "./loadCatalogItems.js";
|
|
5
7
|
import { loadColorPalette } from "./loadColorPalette.js";
|
|
6
8
|
import { loadSettings } from "./loadSettings.js";
|
|
9
|
+
import { onAgentSwitch } from "./onAgentSwitch.js";
|
|
10
|
+
import { onChatOpenSync } from "./onChatOpenSync.js";
|
|
7
11
|
import { onConversationDelete } from "./onConversationDelete.js";
|
|
8
12
|
import { onConversationPin } from "./onConversationPin.js";
|
|
9
13
|
import { onConversationRename } from "./onConversationRename.js";
|
|
@@ -24,6 +28,9 @@ import { onVisualizationSuccessSave } from "./onVisualizationSuccessSave.js";
|
|
|
24
28
|
export function* rootSaga() {
|
|
25
29
|
yield takeLatest(loadThreadAction.type, onThreadLoad);
|
|
26
30
|
yield takeLatest(clearThreadAction.type, onThreadClear);
|
|
31
|
+
// Re-sync the active conversation with the backend when the chat is (re)opened so that
|
|
32
|
+
// a conversation started/switched on another host micro-frontend is reflected without reload.
|
|
33
|
+
yield takeLatest(setOpenAction.type, onChatOpenSync);
|
|
27
34
|
yield takeEvery(newMessageAction.type, onUserMessage);
|
|
28
35
|
//messages API
|
|
29
36
|
yield takeEvery(setUserFeedback.type, onUserFeedback);
|
|
@@ -34,11 +41,13 @@ export function* rootSaga() {
|
|
|
34
41
|
yield takeEvery(pinConversationAction.type, onConversationPin);
|
|
35
42
|
yield takeEvery(renameConversationAction.type, onConversationRename);
|
|
36
43
|
yield takeEvery(deleteConversationAction.type, onConversationDelete);
|
|
44
|
+
yield takeEvery(setSelectedAgentAction.type, onAgentSwitch);
|
|
37
45
|
yield takeEvery(evaluateMessageUpdateAction.type, onUserMessageUpdate);
|
|
38
46
|
//others
|
|
39
47
|
yield takeEvery(setVerboseAction.type, onVerboseStore);
|
|
40
48
|
yield fork(onEvent);
|
|
41
49
|
yield call(loadColorPalette);
|
|
42
50
|
yield call(loadSettings);
|
|
51
|
+
yield call(loadAgents);
|
|
43
52
|
yield call(loadCatalogItems);
|
|
44
53
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type IAgent } from "@gooddata/sdk-model";
|
|
2
|
+
import { type GenAIAgent } from "../../model.js";
|
|
3
|
+
/**
|
|
4
|
+
* Load enabled agents from the backend.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare function loadAgents(): Generator<import("redux-saga/effects").CallEffect<IAgent[]> | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
|
|
8
|
+
payload: {
|
|
9
|
+
agents: GenAIAgent[] | undefined;
|
|
10
|
+
};
|
|
11
|
+
type: "messages/setAgentsAction";
|
|
12
|
+
}> | import("redux-saga/effects").SelectEffect, void, never>;
|
|
13
|
+
//# sourceMappingURL=loadAgents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadAgents.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadAgents.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD;;;GAGG;AACH,wBAAiB,UAAU;;;;;6DAgC1B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { call, getContext, put, select } from "redux-saga/effects";
|
|
3
|
+
import { isIdentifierRef } from "@gooddata/sdk-model";
|
|
4
|
+
import { agentSwitchingActiveSelector } from "../chatWindow/chatWindowSelectors.js";
|
|
5
|
+
import { setAgentsAction } from "../messages/messagesSlice.js";
|
|
6
|
+
/**
|
|
7
|
+
* Load enabled agents from the backend.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export function* loadAgents() {
|
|
11
|
+
const agentSwitchingActive = yield select(agentSwitchingActiveSelector);
|
|
12
|
+
if (!agentSwitchingActive) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
const backend = yield getContext("backend");
|
|
17
|
+
const workspace = yield getContext("workspace");
|
|
18
|
+
const query = backend
|
|
19
|
+
.workspace(workspace)
|
|
20
|
+
.agents()
|
|
21
|
+
.getAgentsQuery()
|
|
22
|
+
.withFilter({ isPreview: false })
|
|
23
|
+
.withSorting(["name,asc"]);
|
|
24
|
+
const agents = yield call([query, "queryAll"]);
|
|
25
|
+
yield put(setAgentsAction({
|
|
26
|
+
agents: agents.map(agentToOption).filter((agent) => !!agent.id),
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
console.error("Failed to load agents", e);
|
|
31
|
+
yield put(setAgentsAction({
|
|
32
|
+
// Treat load failure as no usable agents so sending is blocked instead of loading forever.
|
|
33
|
+
agents: [],
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function agentToOption(agent) {
|
|
38
|
+
const id = isIdentifierRef(agent.ref) ? agent.ref.identifier : "";
|
|
39
|
+
return {
|
|
40
|
+
id,
|
|
41
|
+
title: agent.name || id,
|
|
42
|
+
description: agent.description,
|
|
43
|
+
modifiedAt: agent.modifiedAt,
|
|
44
|
+
lastUsedAt: agent.lastUsedAt,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
@@ -8,3 +8,4 @@ export declare function loadCatalogItems(): Generator<import("redux-saga/effects
|
|
|
8
8
|
payload: import("@gooddata/sdk-model").CatalogItem[] | undefined;
|
|
9
9
|
type: "chatWindow/setCatalogItemsActions";
|
|
10
10
|
}>, void, OptionsDispatcher & IAnalyticalBackend & string & import("@gooddata/sdk-backend-spi").IWorkspaceCatalog>;
|
|
11
|
+
//# sourceMappingURL=loadCatalogItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadCatalogItems.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadCatalogItems.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,wBAAiB,gBAAgB;;;mHA6BhC"}
|
|
@@ -10,3 +10,4 @@ export declare function loadColorPalette(): Generator<import("redux-saga/effects
|
|
|
10
10
|
};
|
|
11
11
|
type: "chatWindow/setColorPaletteAction";
|
|
12
12
|
}>, void, OptionsDispatcher & IAnalyticalBackend & string & import("@gooddata/sdk-model").IColorPalette>;
|
|
13
|
+
//# sourceMappingURL=loadColorPalette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadColorPalette.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadColorPalette.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,wBAAiB,gBAAgB;;;;;yGAwChC"}
|
|
@@ -10,3 +10,4 @@ export declare function loadSettings(): Generator<import("redux-saga/effects").C
|
|
|
10
10
|
};
|
|
11
11
|
type: "chatWindow/setSettingsAction";
|
|
12
12
|
}>, void, OptionsDispatcher & IAnalyticalBackend & string & import("@gooddata/sdk-backend-spi").IUserWorkspaceSettings>;
|
|
13
|
+
//# sourceMappingURL=loadSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadSettings.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/loadSettings.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;GAGG;AACH,wBAAiB,YAAY;;;;;wHAwC5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type IChatConversation } from "@gooddata/sdk-backend-spi";
|
|
2
|
+
import { type IChatConversationLocal } from "../../model.js";
|
|
3
|
+
import { type setSelectedAgentAction } from "../messages/messagesSlice.js";
|
|
4
|
+
export declare function onAgentSwitch({ payload }: ReturnType<typeof setSelectedAgentAction>): Generator<import("redux-saga/effects").CallEffect<IChatConversation> | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
|
|
5
|
+
payload: {
|
|
6
|
+
conversation: IChatConversationLocal;
|
|
7
|
+
};
|
|
8
|
+
type: "messages/setCurrentConversationAction";
|
|
9
|
+
}> | import("redux-saga/effects").PutEffect<{
|
|
10
|
+
payload: {
|
|
11
|
+
conversationLocalId: string;
|
|
12
|
+
};
|
|
13
|
+
type: "messages/finishAgentSwitchAction";
|
|
14
|
+
}> | import("redux-saga/effects").PutEffect<{
|
|
15
|
+
payload: {
|
|
16
|
+
previousAgentId: string | undefined;
|
|
17
|
+
failedAgentId: string;
|
|
18
|
+
conversationLocalId: string;
|
|
19
|
+
};
|
|
20
|
+
type: "messages/revertAgentSwitchAction";
|
|
21
|
+
}> | import("redux-saga/effects").SelectEffect, void, never>;
|
|
22
|
+
//# sourceMappingURL=onAgentSwitch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onAgentSwitch.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/onAgentSwitch.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,EAIH,KAAK,sBAAsB,EAC9B,MAAM,8BAA8B,CAAC;AAEtC,wBAAiB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC;;;;;;;;;;;;;;;;;6DA+DpF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
import { call, getContext, put, select } from "redux-saga/effects";
|
|
3
|
+
import { agentSwitchingActiveSelector } from "../chatWindow/chatWindowSelectors.js";
|
|
4
|
+
import { conversationSelector } from "../messages/messagesSelectors.js";
|
|
5
|
+
import { finishAgentSwitchAction, revertAgentSwitchAction, setCurrentConversationAction, } from "../messages/messagesSlice.js";
|
|
6
|
+
export function* onAgentSwitch({ payload }) {
|
|
7
|
+
const agentSwitchingActive = yield select(agentSwitchingActiveSelector);
|
|
8
|
+
if (!agentSwitchingActive) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!payload.showChangeEvent || !payload.agentId) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const conversation = yield select(conversationSelector);
|
|
15
|
+
if (!conversation?.id) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const backend = yield getContext("backend");
|
|
20
|
+
const workspace = yield getContext("workspace");
|
|
21
|
+
const isPreview = yield getContext("isPreview");
|
|
22
|
+
const chatConversations = backend.workspace(workspace).genAI().getChatConversations({ isPreview });
|
|
23
|
+
const switchAgentCall = chatConversations.switchAgent.bind(chatConversations);
|
|
24
|
+
const updatedConversation = yield call(switchAgentCall, conversation.id, payload.agentId);
|
|
25
|
+
const currentConversation = yield select(conversationSelector);
|
|
26
|
+
if (currentConversation?.localId !== conversation.localId) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (currentConversation.agentId !== payload.agentId) {
|
|
30
|
+
// A newer explicit switch has already taken over — discard this stale response.
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
yield put(setCurrentConversationAction({
|
|
34
|
+
conversation: {
|
|
35
|
+
...updatedConversation,
|
|
36
|
+
localId: conversation.localId,
|
|
37
|
+
},
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
console.error("Failed to switch agent for conversation", e);
|
|
42
|
+
const currentConversation = yield select(conversationSelector);
|
|
43
|
+
if (currentConversation?.localId === conversation.localId &&
|
|
44
|
+
currentConversation.agentId === payload.agentId) {
|
|
45
|
+
yield put(revertAgentSwitchAction({
|
|
46
|
+
previousAgentId: payload.previousAgentId,
|
|
47
|
+
failedAgentId: payload.agentId,
|
|
48
|
+
conversationLocalId: conversation.localId,
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
yield put(finishAgentSwitchAction({ conversationLocalId: conversation.localId }));
|
|
54
|
+
}
|
|
55
|
+
}
|