@vertesia/ui 1.5.0-dev.20260901.052906Z → 1.5.0-dev.20260910.051115Z
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/lib/core/components/Avatar.d.ts.map +1 -1
- package/lib/core/components/Avatar.js +3 -3
- package/lib/core/components/Avatar.js.map +1 -1
- package/lib/core/components/ComboBox.js +1 -1
- package/lib/core/components/ComboBox.js.map +1 -1
- package/lib/core/components/FileUpload.js +1 -1
- package/lib/core/components/FileUpload.js.map +1 -1
- package/lib/core/components/Link.js +1 -1
- package/lib/core/components/Link.js.map +1 -1
- package/lib/core/components/SelectList.js +1 -1
- package/lib/core/components/SelectList.js.map +1 -1
- package/lib/core/components/SidePanel.js +1 -1
- package/lib/core/components/SidePanel.js.map +1 -1
- package/lib/core/components/Spinner.js +1 -1
- package/lib/core/components/Spinner.js.map +1 -1
- package/lib/core/components/TagsInput.js +8 -8
- package/lib/core/components/TagsInput.js.map +1 -1
- package/lib/core/components/shadcn/MessageBox.js +1 -1
- package/lib/core/components/shadcn/MessageBox.js.map +1 -1
- package/lib/core/components/shadcn/button.js +1 -1
- package/lib/core/components/shadcn/button.js.map +1 -1
- package/lib/core/components/shadcn/card.d.ts.map +1 -1
- package/lib/core/components/shadcn/card.js +1 -1
- package/lib/core/components/shadcn/card.js.map +1 -1
- package/lib/core/components/shadcn/command.js +5 -5
- package/lib/core/components/shadcn/command.js.map +1 -1
- package/lib/core/components/shadcn/filters/DynamicLabel.js +1 -1
- package/lib/core/components/shadcn/filters/DynamicLabel.js.map +1 -1
- package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js +3 -3
- package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -1
- package/lib/core/components/shadcn/input.js +3 -3
- package/lib/core/components/shadcn/input.js.map +1 -1
- package/lib/core/components/shadcn/modal/ConfirmModal.js +1 -1
- package/lib/core/components/shadcn/modal/ConfirmModal.js.map +1 -1
- package/lib/core/components/shadcn/modal/dialog.d.ts.map +1 -1
- package/lib/core/components/shadcn/modal/dialog.js +2 -2
- package/lib/core/components/shadcn/modal/dialog.js.map +1 -1
- package/lib/core/components/shadcn/overflowTabs.js +2 -2
- package/lib/core/components/shadcn/overflowTabs.js.map +1 -1
- package/lib/core/components/shadcn/popover.js +1 -1
- package/lib/core/components/shadcn/popover.js.map +1 -1
- package/lib/core/components/shadcn/radioGroup.d.ts.map +1 -1
- package/lib/core/components/shadcn/radioGroup.js +3 -3
- package/lib/core/components/shadcn/radioGroup.js.map +1 -1
- package/lib/core/components/shadcn/selectBox.js +1 -1
- package/lib/core/components/shadcn/selectBox.js.map +1 -1
- package/lib/core/components/shadcn/tabs.d.ts.map +1 -1
- package/lib/core/components/shadcn/tabs.js +5 -2
- package/lib/core/components/shadcn/tabs.js.map +1 -1
- package/lib/core/components/styles.js +1 -1
- package/lib/core/components/styles.js.map +1 -1
- package/lib/core/components/table/index.js +1 -1
- package/lib/core/hooks/useFetch.d.ts.map +1 -1
- package/lib/core/hooks/useFetch.js +2 -0
- package/lib/core/hooks/useFetch.js.map +1 -1
- package/lib/features/activity-doc/ActivityDoc.js +8 -8
- package/lib/features/activity-doc/ActivityDoc.js.map +1 -1
- package/lib/features/agent/chat/AgentChart.js +1 -1
- package/lib/features/agent/chat/AgentChart.js.map +1 -1
- package/lib/features/agent/chat/AgentRightPanel.d.ts +2 -3
- package/lib/features/agent/chat/AgentRightPanel.d.ts.map +1 -1
- package/lib/features/agent/chat/AgentRightPanel.js +3 -3
- package/lib/features/agent/chat/AgentRightPanel.js.map +1 -1
- package/lib/features/agent/chat/AskUserWidget.d.ts.map +1 -1
- package/lib/features/agent/chat/AskUserWidget.js +13 -13
- package/lib/features/agent/chat/AskUserWidget.js.map +1 -1
- package/lib/features/agent/chat/DocumentPanel.d.ts +7 -7
- package/lib/features/agent/chat/DocumentPanel.d.ts.map +1 -1
- package/lib/features/agent/chat/DocumentPanel.js +6 -12
- package/lib/features/agent/chat/DocumentPanel.js.map +1 -1
- package/lib/features/agent/chat/DocumentsTab.d.ts +15 -0
- package/lib/features/agent/chat/DocumentsTab.d.ts.map +1 -0
- package/lib/features/agent/chat/DocumentsTab.js +33 -0
- package/lib/features/agent/chat/DocumentsTab.js.map +1 -0
- package/lib/features/agent/chat/JumpingDots.js +1 -1
- package/lib/features/agent/chat/JumpingDots.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentConversation.js +3 -3
- package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +22 -9
- package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +5 -5
- package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/Header.js +16 -11
- package/lib/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +7 -7
- package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessagesContainer.js +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/MessagesContainer.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/PlanPanel.js +10 -10
- package/lib/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.js +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.js +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +17 -17
- package/lib/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.js +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.js +14 -2
- package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +15 -15
- package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts.map +1 -1
- package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js +18 -0
- package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js.map +1 -1
- package/lib/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -1
- package/lib/features/agent/chat/SlidingThinkingIndicator.js +5 -2
- package/lib/features/agent/chat/SlidingThinkingIndicator.js.map +1 -1
- package/lib/features/agent/chat/VegaLiteChart.d.ts.map +1 -1
- package/lib/features/agent/chat/VegaLiteChart.js +6 -2
- package/lib/features/agent/chat/VegaLiteChart.js.map +1 -1
- package/lib/features/agent/chat/hooks/useDocumentPanel.d.ts +2 -2
- package/lib/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -1
- package/lib/features/agent/chat/hooks/useDocumentPanel.js +0 -18
- package/lib/features/agent/chat/hooks/useDocumentPanel.js.map +1 -1
- package/lib/features/errors/RowErrorBoundary.js +1 -1
- package/lib/features/errors/RowErrorBoundary.js.map +1 -1
- package/lib/features/facets/AgentRunnerFacetsNav.js +1 -1
- package/lib/features/facets/AgentRunnerFacetsNav.js.map +1 -1
- package/lib/features/facets/utils/VInteractionFacet.d.ts +3 -5
- package/lib/features/facets/utils/VInteractionFacet.d.ts.map +1 -1
- package/lib/features/facets/utils/VInteractionFacet.js +10 -23
- package/lib/features/facets/utils/VInteractionFacet.js.map +1 -1
- package/lib/features/facets/utils/VUserFacet.js +1 -1
- package/lib/features/facets/utils/VUserFacet.js.map +1 -1
- package/lib/features/layout/GenericPageNavHeader.d.ts.map +1 -1
- package/lib/features/layout/GenericPageNavHeader.js +4 -1
- package/lib/features/layout/GenericPageNavHeader.js.map +1 -1
- package/lib/features/layout/NotFoundView.js +1 -1
- package/lib/features/layout/NotFoundView.js.map +1 -1
- package/lib/features/magic-pdf/AnnotatedImageSlider.js +4 -12
- package/lib/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
- package/lib/features/magic-pdf/ExtractedContentView.js +4 -4
- package/lib/features/magic-pdf/ExtractedContentView.js.map +1 -1
- package/lib/features/magic-pdf/MagicPdfView.js +1 -1
- package/lib/features/magic-pdf/MagicPdfView.js.map +1 -1
- package/lib/features/oauth/McpConnectionsButton.d.ts.map +1 -1
- package/lib/features/oauth/McpConnectionsButton.js +4 -1
- package/lib/features/oauth/McpConnectionsButton.js.map +1 -1
- package/lib/features/oauth/McpConnectionsDialog.d.ts.map +1 -1
- package/lib/features/oauth/McpConnectionsDialog.js +3 -2
- package/lib/features/oauth/McpConnectionsDialog.js.map +1 -1
- package/lib/features/oauth/useMcpConnections.d.ts +6 -7
- package/lib/features/oauth/useMcpConnections.d.ts.map +1 -1
- package/lib/features/oauth/useMcpConnections.js +27 -20
- package/lib/features/oauth/useMcpConnections.js.map +1 -1
- package/lib/features/pdf-viewer/PdfPageRenderer.js +2 -2
- package/lib/features/pdf-viewer/PdfPageRenderer.js.map +1 -1
- package/lib/features/pdf-viewer/PdfPageSlider.js +3 -3
- package/lib/features/pdf-viewer/PdfPageSlider.js.map +1 -1
- package/lib/features/pdf-viewer/SimplePdfViewer.js +1 -1
- package/lib/features/pdf-viewer/SimplePdfViewer.js.map +1 -1
- package/lib/features/permissions/UserPermissionsProvider.d.ts +2 -1
- package/lib/features/permissions/UserPermissionsProvider.d.ts.map +1 -1
- package/lib/features/permissions/UserPermissionsProvider.js +35 -22
- package/lib/features/permissions/UserPermissionsProvider.js.map +1 -1
- package/lib/features/permissions/useRoleMappings.d.ts +19 -0
- package/lib/features/permissions/useRoleMappings.d.ts.map +1 -0
- package/lib/features/permissions/useRoleMappings.js +87 -0
- package/lib/features/permissions/useRoleMappings.js.map +1 -0
- package/lib/features/store/collections/SelectCollection.js +1 -1
- package/lib/features/store/collections/SelectCollection.js.map +1 -1
- package/lib/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -1
- package/lib/features/store/objects/DocumentPreviewPanel.js +9 -9
- package/lib/features/store/objects/DocumentPreviewPanel.js.map +1 -1
- package/lib/features/store/objects/DocumentTable.js +1 -1
- package/lib/features/store/objects/DocumentTable.js.map +1 -1
- package/lib/features/store/objects/components/DocumentIcon.js +2 -2
- package/lib/features/store/objects/components/DocumentIcon.js.map +1 -1
- package/lib/features/store/objects/components/DocumentInput.js +1 -1
- package/lib/features/store/objects/components/DocumentInput.js.map +1 -1
- package/lib/features/store/objects/components/PropertiesEditorModal.js +1 -1
- package/lib/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
- package/lib/features/store/objects/components/SaveVersionConfirmModal.js +1 -1
- package/lib/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
- package/lib/features/store/objects/layout/documentLayout.d.ts.map +1 -1
- package/lib/features/store/objects/layout/documentLayout.js +2 -2
- package/lib/features/store/objects/layout/documentLayout.js.map +1 -1
- package/lib/features/store/objects/selection/SelectionActions.js +1 -1
- package/lib/features/store/objects/selection/SelectionActions.js.map +1 -1
- package/lib/features/store/types/IntakePolicyEditor.d.ts +10 -1
- package/lib/features/store/types/IntakePolicyEditor.d.ts.map +1 -1
- package/lib/features/store/types/IntakePolicyEditor.js +29 -19
- package/lib/features/store/types/IntakePolicyEditor.js.map +1 -1
- package/lib/features/store/types/IntakePolicyForm.d.ts +1 -1
- package/lib/features/store/types/IntakePolicyForm.d.ts.map +1 -1
- package/lib/features/store/types/IntakePolicyForm.js +5 -3
- package/lib/features/store/types/IntakePolicyForm.js.map +1 -1
- package/lib/features/store/types/SelectContentTypeModal.js +1 -1
- package/lib/features/store/types/SelectContentTypeModal.js.map +1 -1
- package/lib/features/store/types/TypeRegistry.d.ts +10 -5
- package/lib/features/store/types/TypeRegistry.d.ts.map +1 -1
- package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts +10 -5
- package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts.map +1 -1
- package/lib/features/user/UserAvatar.js +2 -2
- package/lib/features/user/UserAvatar.js.map +1 -1
- package/lib/features/user/UserInfo.d.ts.map +1 -1
- package/lib/features/user/UserInfo.js +7 -7
- package/lib/features/user/UserInfo.js.map +1 -1
- package/lib/features/utils/index.d.ts +1 -0
- package/lib/features/utils/index.d.ts.map +1 -1
- package/lib/features/utils/index.js +1 -0
- package/lib/features/utils/index.js.map +1 -1
- package/lib/features/utils/interaction.d.ts +55 -0
- package/lib/features/utils/interaction.d.ts.map +1 -0
- package/lib/features/utils/interaction.js +77 -0
- package/lib/features/utils/interaction.js.map +1 -0
- package/lib/features/views/ViewResults.js +2 -2
- package/lib/features/views/ViewResults.js.map +1 -1
- package/lib/i18n/locales/ar.json +17 -1
- package/lib/i18n/locales/de.json +13 -1
- package/lib/i18n/locales/en.json +13 -1
- package/lib/i18n/locales/es.json +13 -1
- package/lib/i18n/locales/fr.json +13 -1
- package/lib/i18n/locales/it.json +13 -1
- package/lib/i18n/locales/ja.json +13 -1
- package/lib/i18n/locales/ko.json +13 -1
- package/lib/i18n/locales/pt.json +13 -1
- package/lib/i18n/locales/ru.json +15 -1
- package/lib/i18n/locales/tr.json +13 -1
- package/lib/i18n/locales/zh-TW.json +13 -1
- package/lib/i18n/locales/zh.json +13 -1
- package/lib/layout/FullHeightLayout.js +2 -2
- package/lib/layout/FullHeightLayout.js.map +1 -1
- package/lib/layout/Navbar.js +4 -4
- package/lib/layout/Navbar.js.map +1 -1
- package/lib/layout/Sidebar.js +1 -1
- package/lib/layout/Sidebar.js.map +1 -1
- package/lib/router/NestedNavigationContext.d.ts +3 -1
- package/lib/router/NestedNavigationContext.d.ts.map +1 -1
- package/lib/router/NestedNavigationContext.js +2 -2
- package/lib/router/NestedNavigationContext.js.map +1 -1
- package/lib/session/UserSessionProvider.d.ts.map +1 -1
- package/lib/session/UserSessionProvider.js +2 -13
- package/lib/session/UserSessionProvider.js.map +1 -1
- package/lib/session/auth/authState.d.ts +13 -0
- package/lib/session/auth/authState.d.ts.map +1 -0
- package/lib/session/auth/authState.js +37 -0
- package/lib/session/auth/authState.js.map +1 -0
- package/lib/session/auth/domainRouting.d.ts +39 -0
- package/lib/session/auth/domainRouting.d.ts.map +1 -1
- package/lib/session/auth/domainRouting.js +85 -0
- package/lib/session/auth/domainRouting.js.map +1 -1
- package/lib/session/auth/useAuthState.d.ts +4 -7
- package/lib/session/auth/useAuthState.d.ts.map +1 -1
- package/lib/session/auth/useAuthState.js +5 -41
- package/lib/session/auth/useAuthState.js.map +1 -1
- package/lib/session/index.d.ts +1 -0
- package/lib/session/index.d.ts.map +1 -1
- package/lib/session/index.js +2 -0
- package/lib/session/index.js.map +1 -1
- package/lib/shell/SplashScreen.d.ts +1 -1
- package/lib/shell/SplashScreen.d.ts.map +1 -1
- package/lib/shell/SplashScreen.js +6 -2
- package/lib/shell/SplashScreen.js.map +1 -1
- package/lib/shell/VertesiaShell.js +1 -1
- package/lib/shell/VertesiaShell.js.map +1 -1
- package/lib/shell/apps/AppProjectSelector.js +1 -1
- package/lib/shell/apps/AppProjectSelector.js.map +1 -1
- package/lib/shell/apps/StandaloneApp.js +2 -2
- package/lib/shell/apps/StandaloneApp.js.map +1 -1
- package/lib/shell/login/SignInPrimitives.js +2 -2
- package/lib/shell/login/SignInPrimitives.js.map +1 -1
- package/lib/shell/login/SigninScreen.js +1 -1
- package/lib/shell/login/SigninScreen.js.map +1 -1
- package/lib/shell/login/SignupForm.js +1 -1
- package/lib/shell/login/SignupForm.js.map +1 -1
- package/lib/shell/login/TerminalLogin.js +2 -2
- package/lib/shell/login/TerminalLogin.js.map +1 -1
- package/lib/shell/login/UserInfo.d.ts.map +1 -1
- package/lib/shell/login/UserInfo.js +1 -1
- package/lib/shell/login/UserInfo.js.map +1 -1
- package/lib/shell/login/UserSessionMenu.js +1 -1
- package/lib/shell/login/UserSessionMenu.js.map +1 -1
- package/lib/vertesia-ui-core.js +7 -7
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +179 -182
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-i18n.BfN7iOHb.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.BfN7iOHb.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.BjH2zEZw.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.BjH2zEZw.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.BjSwAZXl.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.BjSwAZXl.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.C7PUm5Au.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.C7PUm5Au.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.CF_1mUS5.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.CF_1mUS5.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.ChfUl3_-.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.ChfUl3_-.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.D-Sk-5d1.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.D-Sk-5d1.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.D4rnu1_S.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.D4rnu1_S.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.DDf0-laK.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.DDf0-laK.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.DN79y06J.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.DN79y06J.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.DWLIciYQ.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.DWLIciYQ.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.DvF_YaAJ.chunk.js +5 -0
- package/lib/vertesia-ui-i18n.DvF_YaAJ.chunk.js.map +1 -0
- package/lib/vertesia-ui-i18n.js +2 -2
- package/lib/vertesia-ui-layout.js +1 -1
- package/lib/vertesia-ui-layout.js.map +1 -1
- package/lib/vertesia-ui-rich-text.js +24 -24
- package/lib/vertesia-ui-rich-text.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-session.js +1 -1
- package/lib/vertesia-ui-session.js.map +1 -1
- package/lib/vertesia-ui-shell.js +3 -3
- package/lib/vertesia-ui-shell.js.map +1 -1
- package/lib/vertesia-ui-widgets.js +54 -54
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/lib/widgets/Progress.js +1 -1
- package/lib/widgets/Progress.js.map +1 -1
- package/lib/widgets/form/Form.js +2 -2
- package/lib/widgets/form/Form.js.map +1 -1
- package/lib/widgets/form/fields.js +2 -2
- package/lib/widgets/form/fields.js.map +1 -1
- package/lib/widgets/json-view/JSONView.js +1 -1
- package/lib/widgets/json-view/JSONView.js.map +1 -1
- package/lib/widgets/markdown/MermaidDiagram.js +1 -1
- package/lib/widgets/markdown/MermaidDiagram.js.map +1 -1
- package/lib/widgets/markdown/remarkDirectiveHandler.d.ts +7 -2
- package/lib/widgets/markdown/remarkDirectiveHandler.d.ts.map +1 -1
- package/lib/widgets/markdown/remarkDirectiveHandler.js +19 -4
- package/lib/widgets/markdown/remarkDirectiveHandler.js.map +1 -1
- package/lib/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -1
- package/lib/widgets/monacoEditor/MonacoEditor.js +4 -2
- package/lib/widgets/monacoEditor/MonacoEditor.js.map +1 -1
- package/lib/widgets/monacoEditor/index.d.ts +1 -0
- package/lib/widgets/monacoEditor/index.d.ts.map +1 -1
- package/lib/widgets/monacoEditor/index.js +1 -0
- package/lib/widgets/monacoEditor/index.js.map +1 -1
- package/lib/widgets/monacoEditor/loadMonaco.d.ts +45 -0
- package/lib/widgets/monacoEditor/loadMonaco.d.ts.map +1 -0
- package/lib/widgets/monacoEditor/loadMonaco.js +62 -0
- package/lib/widgets/monacoEditor/loadMonaco.js.map +1 -0
- package/lib/widgets/properties/PropertiesView.js +1 -1
- package/lib/widgets/properties/PropertiesView.js.map +1 -1
- package/lib/widgets/schema-editor/editor/Editable.js +2 -2
- package/lib/widgets/schema-editor/editor/Editable.js.map +1 -1
- package/lib/widgets/schema-editor/editor/PropertyEditor.js +1 -1
- package/lib/widgets/schema-editor/editor/PropertyEditor.js.map +1 -1
- package/lib/widgets/schema-editor/editor/SchemaEditor.js +2 -2
- package/lib/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
- package/lib/widgets/upload/DropZone.js +1 -1
- package/lib/widgets/upload/DropZone.js.map +1 -1
- package/lib/widgets/upload/UploadResultCategory.d.ts +1 -1
- package/lib/widgets/upload/UploadResultCategory.d.ts.map +1 -1
- package/lib/widgets/upload/UploadResultCategory.js +3 -3
- package/lib/widgets/upload/UploadResultCategory.js.map +1 -1
- package/lib/widgets/upload/UploadSummary.js +1 -1
- package/lib/widgets/upload/UploadSummary.js.map +1 -1
- package/lib/widgets/xml-viewer/components/XMLViewer.d.ts.map +1 -1
- package/lib/widgets/xml-viewer/components/XMLViewer.js +7 -3
- package/lib/widgets/xml-viewer/components/XMLViewer.js.map +1 -1
- package/lib/widgets/xml-viewer/hooks/useCollapsible.d.ts +1 -1
- package/lib/widgets/xml-viewer/hooks/useXMLViewer.d.ts +11 -13
- package/lib/widgets/xml-viewer/hooks/useXMLViewer.d.ts.map +1 -1
- package/lib/widgets/xml-viewer/hooks/useXMLViewer.js +41 -14
- package/lib/widgets/xml-viewer/hooks/useXMLViewer.js.map +1 -1
- package/package.json +7 -7
- package/src/__tests__/contrast.test.ts +1 -0
- package/src/core/components/Avatar.tsx +3 -3
- package/src/core/components/ComboBox.tsx +1 -1
- package/src/core/components/FileUpload.tsx +4 -4
- package/src/core/components/Link.tsx +1 -1
- package/src/core/components/SelectList.tsx +1 -1
- package/src/core/components/SidePanel.tsx +1 -1
- package/src/core/components/Spinner.tsx +1 -1
- package/src/core/components/TagsInput.tsx +8 -8
- package/src/core/components/shadcn/MessageBox.tsx +1 -1
- package/src/core/components/shadcn/button.tsx +1 -1
- package/src/core/components/shadcn/card.tsx +1 -3
- package/src/core/components/shadcn/command.tsx +5 -5
- package/src/core/components/shadcn/filters/DynamicLabel.tsx +1 -1
- package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +3 -3
- package/src/core/components/shadcn/input.tsx +3 -3
- package/src/core/components/shadcn/modal/ConfirmModal.tsx +3 -3
- package/src/core/components/shadcn/modal/dialog.tsx +2 -4
- package/src/core/components/shadcn/overflowTabs.tsx +2 -2
- package/src/core/components/shadcn/popover.tsx +1 -1
- package/src/core/components/shadcn/radioGroup.tsx +5 -7
- package/src/core/components/shadcn/selectBox.tsx +1 -1
- package/src/core/components/shadcn/tabs.tsx +4 -2
- package/src/core/components/styles.ts +1 -1
- package/src/core/components/table/index.tsx +1 -1
- package/src/core/hooks/useFetch.test.ts +20 -0
- package/src/core/hooks/useFetch.ts +2 -0
- package/src/css/base.css +1 -1
- package/src/css/color.css +4 -0
- package/src/css/theme.css +1 -0
- package/src/css/typography.css +2 -2
- package/src/features/activity-doc/ActivityDoc.tsx +11 -11
- package/src/features/agent/chat/AgentChart.tsx +1 -1
- package/src/features/agent/chat/AgentRightPanel.tsx +4 -8
- package/src/features/agent/chat/AskUserWidget.tsx +19 -23
- package/src/features/agent/chat/DocumentPanel.tsx +39 -48
- package/src/features/agent/chat/DocumentsTab.test.tsx +87 -0
- package/src/features/agent/chat/DocumentsTab.tsx +124 -0
- package/src/features/agent/chat/JumpingDots.tsx +3 -3
- package/src/features/agent/chat/ModernAgentConversation.test.tsx +0 -1
- package/src/features/agent/chat/ModernAgentConversation.tsx +3 -5
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +60 -1
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +44 -24
- package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +12 -12
- package/src/features/agent/chat/ModernAgentOutput/Header.tsx +28 -15
- package/src/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.tsx +4 -4
- package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +2 -2
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +7 -12
- package/src/features/agent/chat/ModernAgentOutput/MessagesContainer.tsx +1 -1
- package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +16 -22
- package/src/features/agent/chat/ModernAgentOutput/SlideInPanel.tsx +4 -4
- package/src/features/agent/chat/ModernAgentOutput/SlidingMessages.tsx +2 -4
- package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +21 -21
- package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +4 -4
- package/src/features/agent/chat/ModernAgentOutput/SummaryConversation.ts +16 -1
- package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +19 -40
- package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.test.ts +41 -0
- package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.ts +19 -0
- package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +93 -0
- package/src/features/agent/chat/SlidingThinkingIndicator.tsx +5 -2
- package/src/features/agent/chat/VegaLiteChart.tsx +6 -2
- package/src/features/agent/chat/hooks/useDocumentPanel.test.tsx +33 -0
- package/src/features/agent/chat/hooks/useDocumentPanel.ts +3 -20
- package/src/features/errors/RowErrorBoundary.tsx +1 -1
- package/src/features/facets/AgentRunnerFacetsNav.tsx +1 -1
- package/src/features/facets/utils/VInteractionFacet.tsx +22 -34
- package/src/features/facets/utils/VUserFacet.tsx +1 -1
- package/src/features/layout/GenericPageNavHeader.tsx +9 -1
- package/src/features/layout/NotFoundView.tsx +1 -1
- package/src/features/magic-pdf/AnnotatedImageSlider.tsx +8 -16
- package/src/features/magic-pdf/ExtractedContentView.tsx +4 -4
- package/src/features/magic-pdf/MagicPdfView.tsx +1 -1
- package/src/features/oauth/McpConnectionsButton.test.tsx +79 -8
- package/src/features/oauth/McpConnectionsButton.tsx +6 -3
- package/src/features/oauth/McpConnectionsDialog.tsx +9 -3
- package/src/features/oauth/useMcpConnections.ts +33 -27
- package/src/features/pdf-viewer/PdfPageRenderer.tsx +2 -2
- package/src/features/pdf-viewer/PdfPageSlider.tsx +4 -4
- package/src/features/pdf-viewer/SimplePdfViewer.tsx +1 -1
- package/src/features/permissions/UserPermissionsProvider.test.tsx +172 -0
- package/src/features/permissions/UserPermissionsProvider.tsx +68 -21
- package/src/features/permissions/useRoleMappings.ts +105 -0
- package/src/features/store/collections/SelectCollection.tsx +1 -1
- package/src/features/store/objects/DocumentPreviewPanel.tsx +43 -53
- package/src/features/store/objects/DocumentTable.tsx +2 -2
- package/src/features/store/objects/components/DocumentIcon.tsx +4 -4
- package/src/features/store/objects/components/DocumentInput.tsx +3 -3
- package/src/features/store/objects/components/PropertiesEditorModal.tsx +2 -2
- package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +2 -2
- package/src/features/store/objects/layout/documentLayout.tsx +2 -4
- package/src/features/store/objects/selection/SelectionActions.tsx +1 -1
- package/src/features/store/types/IntakePolicyEditor.tsx +70 -36
- package/src/features/store/types/IntakePolicyForm.tsx +11 -3
- package/src/features/store/types/SelectContentTypeModal.tsx +1 -1
- package/src/features/user/UserAvatar.tsx +3 -3
- package/src/features/user/UserInfo.tsx +11 -16
- package/src/features/utils/index.ts +1 -0
- package/src/features/utils/interaction.test.tsx +93 -0
- package/src/features/utils/interaction.tsx +125 -0
- package/src/features/views/ViewResults.tsx +3 -3
- package/src/i18n/locales/ar.json +17 -1
- package/src/i18n/locales/de.json +13 -1
- package/src/i18n/locales/en.json +13 -1
- package/src/i18n/locales/es.json +13 -1
- package/src/i18n/locales/fr.json +13 -1
- package/src/i18n/locales/it.json +13 -1
- package/src/i18n/locales/ja.json +13 -1
- package/src/i18n/locales/ko.json +13 -1
- package/src/i18n/locales/pt.json +13 -1
- package/src/i18n/locales/ru.json +15 -1
- package/src/i18n/locales/tr.json +13 -1
- package/src/i18n/locales/zh-TW.json +13 -1
- package/src/i18n/locales/zh.json +13 -1
- package/src/layout/FullHeightLayout.tsx +2 -2
- package/src/layout/Navbar.tsx +5 -5
- package/src/layout/Sidebar.tsx +1 -1
- package/src/router/NestedNavigationContext.test.tsx +54 -0
- package/src/router/NestedNavigationContext.tsx +9 -2
- package/src/session/UserSessionProvider.tsx +2 -15
- package/src/session/auth/authState.test.ts +35 -0
- package/src/session/auth/authState.ts +42 -0
- package/src/session/auth/domainRouting.test.ts +169 -1
- package/src/session/auth/domainRouting.ts +89 -0
- package/src/session/auth/useAuthState.ts +5 -49
- package/src/session/index.ts +6 -0
- package/src/shell/SplashScreen.test.tsx +22 -0
- package/src/shell/SplashScreen.tsx +6 -2
- package/src/shell/VertesiaShell.tsx +1 -1
- package/src/shell/apps/AppProjectSelector.tsx +1 -1
- package/src/shell/apps/StandaloneApp.tsx +9 -9
- package/src/shell/login/SignInPrimitives.tsx +2 -2
- package/src/shell/login/SigninScreen.tsx +1 -1
- package/src/shell/login/SignupForm.tsx +2 -2
- package/src/shell/login/TerminalLogin.tsx +5 -5
- package/src/shell/login/UserInfo.tsx +2 -5
- package/src/shell/login/UserSessionMenu.tsx +2 -2
- package/src/widgets/Progress.tsx +2 -2
- package/src/widgets/form/Form.tsx +4 -4
- package/src/widgets/form/fields.tsx +2 -2
- package/src/widgets/json-view/JSONView.tsx +1 -6
- package/src/widgets/markdown/ArtifactEditingSurface.test.tsx +33 -29
- package/src/widgets/markdown/MarkdownRenderer.test.tsx +52 -0
- package/src/widgets/markdown/MermaidDiagram.tsx +2 -2
- package/src/widgets/markdown/remarkDirectiveHandler.ts +21 -5
- package/src/widgets/monacoEditor/MonacoEditor.tsx +4 -2
- package/src/widgets/monacoEditor/index.ts +1 -0
- package/src/widgets/monacoEditor/loadMonaco.test.ts +63 -0
- package/src/widgets/monacoEditor/loadMonaco.ts +70 -0
- package/src/widgets/properties/PropertiesView.tsx +1 -1
- package/src/widgets/schema-editor/editor/Editable.tsx +2 -2
- package/src/widgets/schema-editor/editor/PropertyEditor.tsx +1 -1
- package/src/widgets/schema-editor/editor/SchemaEditor.tsx +2 -2
- package/src/widgets/upload/DropZone.tsx +1 -1
- package/src/widgets/upload/UploadResultCategory.tsx +7 -7
- package/src/widgets/upload/UploadSummary.tsx +4 -4
- package/src/widgets/xml-viewer/components/XMLViewer.tsx +7 -3
- package/src/widgets/xml-viewer/hooks/useXMLViewer.test.ts +60 -7
- package/src/widgets/xml-viewer/hooks/useXMLViewer.ts +70 -16
- package/lib/features/agent/chat/DocumentTabBar.d.ts +0 -9
- package/lib/features/agent/chat/DocumentTabBar.d.ts.map +0 -1
- package/lib/features/agent/chat/DocumentTabBar.js +0 -9
- package/lib/features/agent/chat/DocumentTabBar.js.map +0 -1
- package/lib/vertesia-ui-i18n.BJBGsq-8.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.BJBGsq-8.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.BY5YG5cX.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.BY5YG5cX.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.Bd5_1BXO.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.Bd5_1BXO.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.Bvwej2HH.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.Bvwej2HH.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.CMT3f4gf.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.CMT3f4gf.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.D56DNPJW.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.D56DNPJW.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.DDzKLNx6.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.DDzKLNx6.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.D_Am1LpF.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.D_Am1LpF.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.DrZizgGV.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.DrZizgGV.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.DwHsq86z.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.DwHsq86z.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.PLpo0Bbz.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.PLpo0Bbz.chunk.js.map +0 -1
- package/lib/vertesia-ui-i18n.xVbXALqz.chunk.js +0 -5
- package/lib/vertesia-ui-i18n.xVbXALqz.chunk.js.map +0 -1
- package/src/features/agent/chat/DocumentTabBar.tsx +0 -41
|
@@ -83,7 +83,7 @@ function BatchProgressPanelComponent({
|
|
|
83
83
|
if (overallStatus === 'error' || overallStatus === 'warning') {
|
|
84
84
|
return <AlertCircle className="size-4 text-destructive" />;
|
|
85
85
|
}
|
|
86
|
-
return <Layers className="size-4 text-
|
|
86
|
+
return <Layers className="size-4 text-done" />;
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
// Border color based on status
|
|
@@ -91,14 +91,14 @@ function BatchProgressPanelComponent({
|
|
|
91
91
|
if (overallStatus === 'completed') return 'border-s-success';
|
|
92
92
|
if (overallStatus === 'error') return 'border-s-destructive';
|
|
93
93
|
if (overallStatus === 'warning') return 'border-s-attention';
|
|
94
|
-
return 'border-s-
|
|
94
|
+
return 'border-s-info';
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
// Progress bar color
|
|
98
98
|
const getProgressColor = () => {
|
|
99
99
|
if (hasErrors) return 'bg-attention';
|
|
100
100
|
if (isComplete) return 'bg-success';
|
|
101
|
-
return 'bg-
|
|
101
|
+
return 'bg-primary';
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
const copyToClipboard = () => {
|
|
@@ -118,7 +118,7 @@ function BatchProgressPanelComponent({
|
|
|
118
118
|
return (
|
|
119
119
|
<div
|
|
120
120
|
className={cn(
|
|
121
|
-
'border-s-4 shadow-md overflow-hidden bg-white dark:bg-
|
|
121
|
+
'border-s-4 shadow-md overflow-hidden bg-white dark:bg-muted mb-5',
|
|
122
122
|
getBorderColor(),
|
|
123
123
|
className,
|
|
124
124
|
)}
|
|
@@ -130,7 +130,7 @@ function BatchProgressPanelComponent({
|
|
|
130
130
|
tabIndex={0}
|
|
131
131
|
aria-expanded={isExpanded}
|
|
132
132
|
className={cn(
|
|
133
|
-
'flex items-center justify-between px-4 py-2 border-b border-
|
|
133
|
+
'flex items-center justify-between px-4 py-2 border-b border-border/80 bg-info/50 dark:bg-info/10 cursor-pointer',
|
|
134
134
|
headerClassName,
|
|
135
135
|
)}
|
|
136
136
|
onClick={() => setIsExpanded(!isExpanded)}
|
|
@@ -139,7 +139,7 @@ function BatchProgressPanelComponent({
|
|
|
139
139
|
<div className="flex items-center gap-2">
|
|
140
140
|
{renderStatusIndicator()}
|
|
141
141
|
<span className={cn('text-xs font-medium text-muted', senderClassName)}>{t('agent.batch')}</span>
|
|
142
|
-
<span className="text-xs text-
|
|
142
|
+
<span className="text-xs text-info font-medium">{tool_name}</span>
|
|
143
143
|
<span className="text-xs text-muted">
|
|
144
144
|
{completed}/{total}
|
|
145
145
|
</span>
|
|
@@ -169,9 +169,9 @@ function BatchProgressPanelComponent({
|
|
|
169
169
|
</div>
|
|
170
170
|
|
|
171
171
|
{/* Progress bar */}
|
|
172
|
-
<div className={cn('px-4 py-2 bg-
|
|
172
|
+
<div className={cn('px-4 py-2 bg-muted/50 dark:bg-muted/30', progressBarClassName)}>
|
|
173
173
|
<div className="flex items-center gap-3">
|
|
174
|
-
<div className="flex-1 h-2 bg-
|
|
174
|
+
<div className="flex-1 h-2 bg-muted rounded-full overflow-hidden">
|
|
175
175
|
<div
|
|
176
176
|
className={`h-full ${getProgressColor()} transition-all duration-300 ease-out`}
|
|
177
177
|
style={{ width: `${progress}%` }}
|
|
@@ -191,7 +191,7 @@ function BatchProgressPanelComponent({
|
|
|
191
191
|
</span>
|
|
192
192
|
)}
|
|
193
193
|
{isRunning && completed < total && (
|
|
194
|
-
<span className="text-
|
|
194
|
+
<span className="text-info flex items-center gap-1">
|
|
195
195
|
<Loader2 className="size-3 animate-spin" />
|
|
196
196
|
{total - completed}
|
|
197
197
|
</span>
|
|
@@ -207,7 +207,7 @@ function BatchProgressPanelComponent({
|
|
|
207
207
|
<div
|
|
208
208
|
key={item.id}
|
|
209
209
|
className={cn(
|
|
210
|
-
'flex items-center gap-2 px-4 py-1.5 text-xs border-b border-
|
|
210
|
+
'flex items-center gap-2 px-4 py-1.5 text-xs border-b border-border last:border-b-0 hover:bg-muted',
|
|
211
211
|
itemClassName,
|
|
212
212
|
)}
|
|
213
213
|
>
|
|
@@ -215,9 +215,9 @@ function BatchProgressPanelComponent({
|
|
|
215
215
|
<div className="w-4 flex-shrink-0">
|
|
216
216
|
{item.status === 'success' && <CheckCircle className="size-3 text-success" />}
|
|
217
217
|
{item.status === 'error' && <AlertCircle className="size-3 text-destructive" />}
|
|
218
|
-
{item.status === 'running' && <Loader2 className="size-3 text-
|
|
218
|
+
{item.status === 'running' && <Loader2 className="size-3 text-info animate-spin" />}
|
|
219
219
|
{item.status === 'pending' && (
|
|
220
|
-
<div className="size-3 rounded-full border border-
|
|
220
|
+
<div className="size-3 rounded-full border border-border" />
|
|
221
221
|
)}
|
|
222
222
|
</div>
|
|
223
223
|
|
|
@@ -65,6 +65,19 @@ export interface HeaderProps {
|
|
|
65
65
|
className?: string;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Opens an internal route in a new browser tab, carrying the active tenant sticky params (a/p) so
|
|
70
|
+
* the new tab keeps the current account/project; absolute/external URLs are left untouched.
|
|
71
|
+
*/
|
|
72
|
+
function useOpenInNewTab() {
|
|
73
|
+
const { router } = useRouterContext();
|
|
74
|
+
return (url: string) => {
|
|
75
|
+
const href = url.startsWith('/') ? router.getTopRouter().navigator.addStickyParams(url) : url;
|
|
76
|
+
window.open(href, '_blank', 'noopener,noreferrer');
|
|
77
|
+
return href;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
68
81
|
export default function Header({
|
|
69
82
|
title,
|
|
70
83
|
variant = 'full',
|
|
@@ -93,6 +106,7 @@ export default function Header({
|
|
|
93
106
|
className,
|
|
94
107
|
}: HeaderProps) {
|
|
95
108
|
const { t } = useUITranslation();
|
|
109
|
+
const openInNewTab = useOpenInNewTab();
|
|
96
110
|
const isCompact = variant === 'compact';
|
|
97
111
|
const nextViewMode: AgentConversationViewMode = viewMode === 'sliding' ? 'stacked' : 'sliding';
|
|
98
112
|
const verboseLabel = t('agent.verbose');
|
|
@@ -195,6 +209,19 @@ export default function Header({
|
|
|
195
209
|
</Button>
|
|
196
210
|
)}
|
|
197
211
|
|
|
212
|
+
{agentRunId && (
|
|
213
|
+
<Button
|
|
214
|
+
type="button"
|
|
215
|
+
size={isCompact ? 'icon' : 'xs'}
|
|
216
|
+
variant="ghost"
|
|
217
|
+
onClick={() => openInNewTab(`/store/agent-runner/${agentRunId}`)}
|
|
218
|
+
title={t('agent.openInNewTab')}
|
|
219
|
+
className={cn('transition-all duration-200 rounded-md', isCompact && 'size-8 rounded-lg')}
|
|
220
|
+
>
|
|
221
|
+
<ExternalLink className="size-4" />
|
|
222
|
+
</Button>
|
|
223
|
+
)}
|
|
224
|
+
|
|
198
225
|
{resetWorkflow && (
|
|
199
226
|
<Button
|
|
200
227
|
type="button"
|
|
@@ -271,7 +298,7 @@ export default function Header({
|
|
|
271
298
|
'w-2 h-2 rounded-full transition-colors duration-200',
|
|
272
299
|
isReceivingChunks
|
|
273
300
|
? 'bg-purple-500 shadow-[0_0_6px_2px_rgba(168,85,247,0.6)]'
|
|
274
|
-
: 'bg-
|
|
301
|
+
: 'bg-muted',
|
|
275
302
|
)}
|
|
276
303
|
/>
|
|
277
304
|
</span>
|
|
@@ -316,7 +343,6 @@ function MoreDropdown({
|
|
|
316
343
|
const toast = useToast();
|
|
317
344
|
const { client } = useUserSession();
|
|
318
345
|
const builder = usePayloadBuilder();
|
|
319
|
-
const { router } = useRouterContext();
|
|
320
346
|
|
|
321
347
|
const cancelWorkflow = async () => {
|
|
322
348
|
try {
|
|
@@ -360,14 +386,6 @@ function MoreDropdown({
|
|
|
360
386
|
}
|
|
361
387
|
};
|
|
362
388
|
|
|
363
|
-
const openUrl = (url: string) => {
|
|
364
|
-
// Carry the active tenant sticky params (a/p) on internal routes so the new tab keeps the
|
|
365
|
-
// current account/project; leave absolute/external URLs untouched.
|
|
366
|
-
const href = url.startsWith('/') ? router.getTopRouter().navigator.addStickyParams(url) : url;
|
|
367
|
-
window.open(href, '_blank');
|
|
368
|
-
return href;
|
|
369
|
-
};
|
|
370
|
-
|
|
371
389
|
const copyAgentRunId = () => {
|
|
372
390
|
navigator.clipboard.writeText(agentRunId);
|
|
373
391
|
toast({
|
|
@@ -401,11 +419,6 @@ function MoreDropdown({
|
|
|
401
419
|
}
|
|
402
420
|
>
|
|
403
421
|
<MenuGroup label="Actions">
|
|
404
|
-
{isModal && (
|
|
405
|
-
<MenuItem onClick={() => openUrl(`/store/agent-runner/${agentRunId}`)}>
|
|
406
|
-
<ExternalLink className="size-3.5 text-muted" /> {t('agent.openInNewTab')}
|
|
407
|
-
</MenuItem>
|
|
408
|
-
)}
|
|
409
422
|
<MenuItem onClick={copyAgentRunId}>
|
|
410
423
|
<CopyIcon className="size-3.5 text-muted" /> {t('agent.copyAgentRunId')}
|
|
411
424
|
</MenuItem>
|
|
@@ -45,15 +45,15 @@ export default function InlineSlideInPanel({
|
|
|
45
45
|
|
|
46
46
|
return (
|
|
47
47
|
<div
|
|
48
|
-
className={`absolute top-12 end-0 bottom-0 z-40 bg-white dark:bg-
|
|
48
|
+
className={`absolute top-12 end-0 bottom-0 z-40 bg-white dark:bg-muted shadow-lg border-s border-border border-4 border-destructive`}
|
|
49
49
|
style={{ width, transform: 'none' }}
|
|
50
50
|
>
|
|
51
51
|
{/* Header */}
|
|
52
|
-
<div className="flex items-center justify-between p-3 border-b border-
|
|
53
|
-
<h3 className="font-medium text-
|
|
52
|
+
<div className="flex items-center justify-between p-3 border-b border-border">
|
|
53
|
+
<h3 className="font-medium text-foreground text-sm">{title}</h3>
|
|
54
54
|
<Button
|
|
55
55
|
variant="unstyled"
|
|
56
|
-
className="p-1 text-
|
|
56
|
+
className="p-1 text-muted hover:text-foreground rounded-full"
|
|
57
57
|
onClick={onClose}
|
|
58
58
|
aria-label="Close"
|
|
59
59
|
>
|
|
@@ -456,8 +456,8 @@ export default function MessageInput({
|
|
|
456
456
|
>
|
|
457
457
|
{/* Drag overlay */}
|
|
458
458
|
{isDragOver && canDropFiles && (
|
|
459
|
-
<div className="absolute inset-0 flex items-center justify-center bg-
|
|
460
|
-
<div className="text-
|
|
459
|
+
<div className="absolute inset-0 flex items-center justify-center bg-info/80 dark:bg-info/40 rounded-lg z-10 pointer-events-none">
|
|
460
|
+
<div className="text-info font-medium flex items-center gap-2">
|
|
461
461
|
<UploadIcon className="size-5" />
|
|
462
462
|
{t('agent.dropFilesToUpload')}
|
|
463
463
|
</div>
|
|
@@ -140,8 +140,8 @@ export const MESSAGE_STYLES: Record<AgentMessageType | 'default', MessageStyleCo
|
|
|
140
140
|
},
|
|
141
141
|
[AgentMessageType.QUESTION]: { borderColor: 'border-s-muted', iconColor: 'text-muted', sender: 'User', Icon: User },
|
|
142
142
|
[AgentMessageType.THOUGHT]: {
|
|
143
|
-
borderColor: 'border-s-
|
|
144
|
-
iconColor: 'text-
|
|
143
|
+
borderColor: 'border-s-done',
|
|
144
|
+
iconColor: 'text-done',
|
|
145
145
|
sender: 'Agent',
|
|
146
146
|
Icon: Bot,
|
|
147
147
|
},
|
|
@@ -183,8 +183,8 @@ export const MESSAGE_STYLES: Record<AgentMessageType | 'default', MessageStyleCo
|
|
|
183
183
|
Icon: Bot,
|
|
184
184
|
},
|
|
185
185
|
[AgentMessageType.BATCH_PROGRESS]: {
|
|
186
|
-
borderColor: 'border-s-
|
|
187
|
-
iconColor: 'text-
|
|
186
|
+
borderColor: 'border-s-info',
|
|
187
|
+
iconColor: 'text-info',
|
|
188
188
|
sender: 'Batch',
|
|
189
189
|
Icon: Layers,
|
|
190
190
|
},
|
|
@@ -412,7 +412,7 @@ function MessageItemComponent({
|
|
|
412
412
|
// Handle object content (JSON)
|
|
413
413
|
if (typeof content === 'object') {
|
|
414
414
|
return (
|
|
415
|
-
<pre className="text-xs font-mono whitespace-pre-wrap overflow-x-auto bg-
|
|
415
|
+
<pre className="text-xs font-mono whitespace-pre-wrap overflow-x-auto bg-muted p-2 rounded text-foreground">
|
|
416
416
|
{JSON.stringify(content, null, 2)}
|
|
417
417
|
</pre>
|
|
418
418
|
);
|
|
@@ -548,7 +548,7 @@ function MessageItemComponent({
|
|
|
548
548
|
<div className={cn('w-full max-w-full', resolvedStyle.className)}>
|
|
549
549
|
<div
|
|
550
550
|
className={cn(
|
|
551
|
-
'border-s-4 bg-white dark:bg-
|
|
551
|
+
'border-s-4 bg-white dark:bg-muted mb-4 w-full max-w-full overflow-hidden',
|
|
552
552
|
resolvedStyle.borderColor,
|
|
553
553
|
resolvedStyle.cardClassName,
|
|
554
554
|
)}
|
|
@@ -611,12 +611,7 @@ function MessageItemComponent({
|
|
|
611
611
|
</div>
|
|
612
612
|
|
|
613
613
|
{/* Message content */}
|
|
614
|
-
<div
|
|
615
|
-
className={cn(
|
|
616
|
-
'px-4 pb-3 bg-white dark:bg-gray-900 overflow-hidden',
|
|
617
|
-
resolvedStyle.contentClassName,
|
|
618
|
-
)}
|
|
619
|
-
>
|
|
614
|
+
<div className={cn('px-4 pb-3 bg-white dark:bg-muted overflow-hidden', resolvedStyle.contentClassName)}>
|
|
620
615
|
{/* Check for REQUEST_INPUT with UX config - render AskUserWidget instead of plain text */}
|
|
621
616
|
{askUserUx ? (
|
|
622
617
|
<AskUserWidget
|
|
@@ -50,7 +50,7 @@ export default function MessagesContainer({
|
|
|
50
50
|
>
|
|
51
51
|
{sortedMessages.length === 0 ? (
|
|
52
52
|
<div className={`flex items-center justify-center h-full text-center py-8 ${emptyClassName || ''}`}>
|
|
53
|
-
<div className="flex items-center px-4 py-3 text-
|
|
53
|
+
<div className="flex items-center px-4 py-3 text-muted">Waiting for agent response...</div>
|
|
54
54
|
</div>
|
|
55
55
|
) : (
|
|
56
56
|
<div className={`flex-1 flex flex-col justify-start h-full min-h-0 ${messagesClassName || ''}`}>
|
|
@@ -14,8 +14,8 @@ export default function PlanPanel({ plan, workstreamStatus, isVisible }: PlanPan
|
|
|
14
14
|
if (!isVisible) return null;
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
|
-
<div className="border-b border-
|
|
18
|
-
<div className="text-xs font-medium mb-2 text-
|
|
17
|
+
<div className="border-b border-border bg-muted p-3 shadow-sm transition-all duration-300 ease-in-out transform">
|
|
18
|
+
<div className="text-xs font-medium mb-2 text-foreground">{t('agent.agentPlan')}</div>
|
|
19
19
|
|
|
20
20
|
{/* Plan Steps */}
|
|
21
21
|
{plan.plan && plan.plan.length > 0 ? (
|
|
@@ -34,14 +34,14 @@ export default function PlanPanel({ plan, workstreamStatus, isVisible }: PlanPan
|
|
|
34
34
|
|
|
35
35
|
// Determine status icon and style
|
|
36
36
|
let StatusIcon = Circle;
|
|
37
|
-
let statusColor = 'text-
|
|
37
|
+
let statusColor = 'text-muted';
|
|
38
38
|
|
|
39
39
|
if (status === 'in_progress') {
|
|
40
40
|
StatusIcon = Clock;
|
|
41
|
-
statusColor = 'text-
|
|
41
|
+
statusColor = 'text-info';
|
|
42
42
|
} else if (status === 'completed') {
|
|
43
43
|
StatusIcon = CheckCircle;
|
|
44
|
-
statusColor = 'text-
|
|
44
|
+
statusColor = 'text-success';
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
return (
|
|
@@ -50,8 +50,8 @@ export default function PlanPanel({ plan, workstreamStatus, isVisible }: PlanPan
|
|
|
50
50
|
<StatusIcon className="h-3.5 w-3.5" />
|
|
51
51
|
</div>
|
|
52
52
|
<div className="text-xs">
|
|
53
|
-
<span className="text-
|
|
54
|
-
<span className="ms-1 bg-
|
|
53
|
+
<span className="text-foreground">{taskGoal}</span>
|
|
54
|
+
<span className="ms-1 bg-muted px-1 py-0.5 rounded text-[10px] font-mono">
|
|
55
55
|
{taskId}
|
|
56
56
|
</span>
|
|
57
57
|
</div>
|
|
@@ -60,18 +60,16 @@ export default function PlanPanel({ plan, workstreamStatus, isVisible }: PlanPan
|
|
|
60
60
|
})}
|
|
61
61
|
</div>
|
|
62
62
|
) : (
|
|
63
|
-
<div className="text-xs text-
|
|
64
|
-
<AlertCircle className="h-3.5 w-3.5 me-1.5 text-
|
|
63
|
+
<div className="text-xs text-muted italic flex items-center">
|
|
64
|
+
<AlertCircle className="h-3.5 w-3.5 me-1.5 text-attention" />
|
|
65
65
|
{t('agent.noPlanDetected')}
|
|
66
66
|
</div>
|
|
67
67
|
)}
|
|
68
68
|
|
|
69
69
|
{/* Workstream Status Summary */}
|
|
70
70
|
{workstreamStatus.size > 1 && (
|
|
71
|
-
<div className="mt-3 pt-2 border-t border-
|
|
72
|
-
<div className="text-xs font-medium mb-1.5 text-
|
|
73
|
-
{t('agent.workstreams')}
|
|
74
|
-
</div>
|
|
71
|
+
<div className="mt-3 pt-2 border-t border-border">
|
|
72
|
+
<div className="text-xs font-medium mb-1.5 text-foreground">{t('agent.workstreams')}</div>
|
|
75
73
|
<div className="grid grid-cols-2 gap-1.5">
|
|
76
74
|
{Array.from(workstreamStatus.entries())
|
|
77
75
|
// Filter to only show real workstreams (main or those with valid names - not numeric IDs)
|
|
@@ -91,16 +89,16 @@ export default function PlanPanel({ plan, workstreamStatus, isVisible }: PlanPan
|
|
|
91
89
|
})
|
|
92
90
|
.map(([id, status]) => {
|
|
93
91
|
let StatusIcon = Circle;
|
|
94
|
-
let statusColor = 'text-
|
|
92
|
+
let statusColor = 'text-muted';
|
|
95
93
|
let statusText = t('agent.pending');
|
|
96
94
|
|
|
97
95
|
if (status === 'in_progress') {
|
|
98
96
|
StatusIcon = Clock;
|
|
99
|
-
statusColor = 'text-
|
|
97
|
+
statusColor = 'text-info';
|
|
100
98
|
statusText = t('agent.inProgress');
|
|
101
99
|
} else if (status === 'completed') {
|
|
102
100
|
StatusIcon = CheckCircle;
|
|
103
|
-
statusColor = 'text-
|
|
101
|
+
statusColor = 'text-success';
|
|
104
102
|
statusText = t('agent.completed');
|
|
105
103
|
}
|
|
106
104
|
|
|
@@ -112,12 +110,8 @@ export default function PlanPanel({ plan, workstreamStatus, isVisible }: PlanPan
|
|
|
112
110
|
<div className={`me-1.5 ${statusColor}`}>
|
|
113
111
|
<StatusIcon className="h-3 w-3" />
|
|
114
112
|
</div>
|
|
115
|
-
<span className="text-[10px] font-medium text-
|
|
116
|
-
|
|
117
|
-
</span>
|
|
118
|
-
<span className="text-[10px] text-gray-500 dark:text-gray-500 ms-1">
|
|
119
|
-
{statusText}
|
|
120
|
-
</span>
|
|
113
|
+
<span className="text-[10px] font-medium text-muted">{displayId}</span>
|
|
114
|
+
<span className="text-[10px] text-muted ms-1">{statusText}</span>
|
|
121
115
|
</div>
|
|
122
116
|
);
|
|
123
117
|
})}
|
|
@@ -48,15 +48,15 @@ export default function SlideInPanel({ isOpen, onClose, title, children, width =
|
|
|
48
48
|
|
|
49
49
|
{/* Slide-in panel */}
|
|
50
50
|
<div
|
|
51
|
-
className={`fixed top-0 end-0 bottom-0 z-50 bg-white dark:bg-
|
|
51
|
+
className={`fixed top-0 end-0 bottom-0 z-50 bg-white dark:bg-muted shadow-lg border-s border-border transition-transform duration-300 ease-in-out ${panelTranslateClass}`}
|
|
52
52
|
style={{ width }}
|
|
53
53
|
>
|
|
54
54
|
{/* Header */}
|
|
55
|
-
<div className="flex items-center justify-between p-4 border-b border-
|
|
56
|
-
<h3 className="font-medium text-
|
|
55
|
+
<div className="flex items-center justify-between p-4 border-b border-border">
|
|
56
|
+
<h3 className="font-medium text-foreground">{title}</h3>
|
|
57
57
|
<Button
|
|
58
58
|
variant="unstyled"
|
|
59
|
-
className="p-1 text-
|
|
59
|
+
className="p-1 text-muted hover:text-foreground rounded-full"
|
|
60
60
|
onClick={onClose}
|
|
61
61
|
aria-label="Close"
|
|
62
62
|
>
|
|
@@ -82,10 +82,8 @@ export default function SlidingMessages({ messages, isCompleted }: SlidingMessag
|
|
|
82
82
|
{/* If no messages and not completed, show a placeholder thinking message */}
|
|
83
83
|
{messages.length === 0 && !isCompleted && (
|
|
84
84
|
<div className="flex items-center justify-center flex-1 text-center py-8">
|
|
85
|
-
<div className="flex items-center gap-3 bg-
|
|
86
|
-
<div className="text-sm text-
|
|
87
|
-
{ThinkingMessages[thinkingMessageIndex]}
|
|
88
|
-
</div>
|
|
85
|
+
<div className="flex items-center gap-3 bg-info rounded-lg border border-info px-4 py-3">
|
|
86
|
+
<div className="text-sm text-info font-medium">{ThinkingMessages[thinkingMessageIndex]}</div>
|
|
89
87
|
</div>
|
|
90
88
|
</div>
|
|
91
89
|
)}
|
|
@@ -51,7 +51,7 @@ export default function SlidingPlanPanel({ plan, workstreamStatus, isOpen, onClo
|
|
|
51
51
|
<div className="font-medium text-sm">{t('agent.stepByStepPlan')}</div>
|
|
52
52
|
</div>
|
|
53
53
|
|
|
54
|
-
<div className="divide-y divide-
|
|
54
|
+
<div className="divide-y divide-border">
|
|
55
55
|
{plan.plan && plan.plan.length > 0 ? (
|
|
56
56
|
plan.plan.map((task, index) => {
|
|
57
57
|
// Extract task info with null checks
|
|
@@ -68,16 +68,16 @@ export default function SlidingPlanPanel({ plan, workstreamStatus, isOpen, onClo
|
|
|
68
68
|
|
|
69
69
|
// Determine status icon and style
|
|
70
70
|
let StatusIcon = Circle;
|
|
71
|
-
let statusColor = 'text-
|
|
71
|
+
let statusColor = 'text-muted';
|
|
72
72
|
let bgColor = '';
|
|
73
73
|
|
|
74
74
|
if (status === 'in_progress') {
|
|
75
75
|
StatusIcon = Clock;
|
|
76
|
-
statusColor = 'text-
|
|
77
|
-
bgColor = 'bg-
|
|
76
|
+
statusColor = 'text-info';
|
|
77
|
+
bgColor = 'bg-info/50 dark:bg-info/10';
|
|
78
78
|
} else if (status === 'completed') {
|
|
79
79
|
StatusIcon = CheckCircle;
|
|
80
|
-
statusColor = 'text-
|
|
80
|
+
statusColor = 'text-success';
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
return (
|
|
@@ -86,18 +86,18 @@ export default function SlidingPlanPanel({ plan, workstreamStatus, isOpen, onClo
|
|
|
86
86
|
<StatusIcon className="h-4 w-4" />
|
|
87
87
|
</div>
|
|
88
88
|
<div>
|
|
89
|
-
<div className="text-sm text-
|
|
89
|
+
<div className="text-sm text-foreground">{taskGoal}</div>
|
|
90
90
|
<div className="mt-1">
|
|
91
|
-
<span className="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-
|
|
91
|
+
<span className="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-muted text-foreground">
|
|
92
92
|
{taskId}
|
|
93
93
|
</span>
|
|
94
94
|
<span
|
|
95
95
|
className={`ms-2 text-xs ${
|
|
96
96
|
status === 'completed'
|
|
97
|
-
? 'text-
|
|
97
|
+
? 'text-success'
|
|
98
98
|
: status === 'in_progress'
|
|
99
|
-
? 'text-
|
|
100
|
-
: 'text-
|
|
99
|
+
? 'text-info'
|
|
100
|
+
: 'text-muted'
|
|
101
101
|
}`}
|
|
102
102
|
>
|
|
103
103
|
{status === 'completed'
|
|
@@ -112,8 +112,8 @@ export default function SlidingPlanPanel({ plan, workstreamStatus, isOpen, onClo
|
|
|
112
112
|
);
|
|
113
113
|
})
|
|
114
114
|
) : (
|
|
115
|
-
<div className="p-4 text-center text-
|
|
116
|
-
<AlertCircle className="h-5 w-5 mx-auto mb-2 text-
|
|
115
|
+
<div className="p-4 text-center text-muted italic">
|
|
116
|
+
<AlertCircle className="h-5 w-5 mx-auto mb-2 text-attention" />
|
|
117
117
|
<p>{t('agent.noPlanDetected')}</p>
|
|
118
118
|
<p className="text-xs mt-1">{t('agent.plansWillAppear')}</p>
|
|
119
119
|
</div>
|
|
@@ -123,8 +123,8 @@ export default function SlidingPlanPanel({ plan, workstreamStatus, isOpen, onClo
|
|
|
123
123
|
|
|
124
124
|
{/* Workstream Status Summary */}
|
|
125
125
|
{workstreamStatus.size > 1 && (
|
|
126
|
-
<div className="mt-4 rounded-md border border-
|
|
127
|
-
<div className="p-3 border-b border-
|
|
126
|
+
<div className="mt-4 rounded-md border border-border">
|
|
127
|
+
<div className="p-3 border-b border-border bg-muted">
|
|
128
128
|
<div className="font-medium text-sm">{t('agent.workstreams')}</div>
|
|
129
129
|
</div>
|
|
130
130
|
<div className="p-3">
|
|
@@ -147,19 +147,19 @@ export default function SlidingPlanPanel({ plan, workstreamStatus, isOpen, onClo
|
|
|
147
147
|
})
|
|
148
148
|
.map(([id, status]) => {
|
|
149
149
|
let StatusIcon = Circle;
|
|
150
|
-
let statusColor = 'text-
|
|
151
|
-
let statusBg = 'bg-
|
|
150
|
+
let statusColor = 'text-muted';
|
|
151
|
+
let statusBg = 'bg-muted';
|
|
152
152
|
let statusText = t('agent.pending');
|
|
153
153
|
|
|
154
154
|
if (status === 'in_progress') {
|
|
155
155
|
StatusIcon = Clock;
|
|
156
|
-
statusColor = 'text-
|
|
157
|
-
statusBg = 'bg-
|
|
156
|
+
statusColor = 'text-info';
|
|
157
|
+
statusBg = 'bg-info';
|
|
158
158
|
statusText = t('agent.inProgress');
|
|
159
159
|
} else if (status === 'completed') {
|
|
160
160
|
StatusIcon = CheckCircle;
|
|
161
|
-
statusColor = 'text-
|
|
162
|
-
statusBg = 'bg-
|
|
161
|
+
statusColor = 'text-success';
|
|
162
|
+
statusBg = 'bg-success';
|
|
163
163
|
statusText = t('agent.completed');
|
|
164
164
|
}
|
|
165
165
|
|
|
@@ -172,7 +172,7 @@ export default function SlidingPlanPanel({ plan, workstreamStatus, isOpen, onClo
|
|
|
172
172
|
<StatusIcon className="h-4 w-4" />
|
|
173
173
|
</div>
|
|
174
174
|
<div className="flex-1">
|
|
175
|
-
<span className="text-sm font-medium text-
|
|
175
|
+
<span className="text-sm font-medium text-foreground">
|
|
176
176
|
{displayId}
|
|
177
177
|
</span>
|
|
178
178
|
</div>
|
|
@@ -273,7 +273,7 @@ function StreamingMessageComponent({
|
|
|
273
273
|
{/* Card wrapper matching MessageItem structure */}
|
|
274
274
|
<div
|
|
275
275
|
className={cn(
|
|
276
|
-
'border-s-4 bg-white dark:bg-
|
|
276
|
+
'border-s-4 bg-white dark:bg-muted mb-4 border-s-done w-full max-w-full overflow-hidden',
|
|
277
277
|
cardClassName,
|
|
278
278
|
)}
|
|
279
279
|
data-workstream-id={workstreamId}
|
|
@@ -283,9 +283,9 @@ function StreamingMessageComponent({
|
|
|
283
283
|
<div className="flex items-center gap-1.5">
|
|
284
284
|
<div className={cn('animate-fadeIn', iconClassName)}>
|
|
285
285
|
{isTyping ? (
|
|
286
|
-
<span className="size-2 rounded-full bg-
|
|
286
|
+
<span className="size-2 rounded-full bg-primary animate-pulse inline-block" />
|
|
287
287
|
) : (
|
|
288
|
-
<Bot className="size-4 text-
|
|
288
|
+
<Bot className="size-4 text-done" />
|
|
289
289
|
)}
|
|
290
290
|
</div>
|
|
291
291
|
<span className={cn('text-xs font-medium text-muted', senderClassName)}>Agent</span>
|
|
@@ -299,7 +299,7 @@ function StreamingMessageComponent({
|
|
|
299
299
|
variant="ghost"
|
|
300
300
|
size="xs"
|
|
301
301
|
onClick={copyToClipboard}
|
|
302
|
-
className="size-6 p-0 hover:bg-
|
|
302
|
+
className="size-6 p-0 hover:bg-muted"
|
|
303
303
|
title={t('agent.copyMessage')}
|
|
304
304
|
>
|
|
305
305
|
<CopyIcon className="size-3" />
|
|
@@ -133,7 +133,22 @@ export function isSummaryAssistantProseMessage(message: AgentMessage): boolean {
|
|
|
133
133
|
|
|
134
134
|
if (message.type === AgentMessageType.ANSWER) return true;
|
|
135
135
|
|
|
136
|
-
if (isToolPreambleMessage(message))
|
|
136
|
+
if (isToolPreambleMessage(message)) {
|
|
137
|
+
// Text accompanying ask_user can be the draft the question asks the user to review.
|
|
138
|
+
// Keep it visible for both persisted messages and reconstructed streaming messages.
|
|
139
|
+
return (
|
|
140
|
+
message.details?.display_role === 'tool_preamble' &&
|
|
141
|
+
(message.details.tool === 'ask_user' ||
|
|
142
|
+
(Array.isArray(message.details.tools) &&
|
|
143
|
+
message.details.tools.some((tool: unknown) => {
|
|
144
|
+
if (typeof tool === 'string') return tool === 'ask_user';
|
|
145
|
+
if (!tool || typeof tool !== 'object') return false;
|
|
146
|
+
return (
|
|
147
|
+
('name' in tool && tool.name === 'ask_user') || ('tool' in tool && tool.tool === 'ask_user')
|
|
148
|
+
);
|
|
149
|
+
})))
|
|
150
|
+
);
|
|
151
|
+
}
|
|
137
152
|
|
|
138
153
|
// Streamed thoughts without tool metadata are model-visible prose. They remain
|
|
139
154
|
// in the conversation unless buildSummaryDisplayMessages classifies them as
|