@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
|
@@ -3,28 +3,25 @@ import { useUITranslation } from '@vertesia/ui/i18n';
|
|
|
3
3
|
import { NavLink } from '@vertesia/ui/router';
|
|
4
4
|
import { useUserSession } from '@vertesia/ui/session';
|
|
5
5
|
import { MarkdownRenderer } from '@vertesia/ui/widgets';
|
|
6
|
-
import { ExternalLinkIcon, FileTextIcon, Loader2Icon
|
|
6
|
+
import { ArrowLeftIcon, ExternalLinkIcon, FileTextIcon, Loader2Icon } from 'lucide-react';
|
|
7
7
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
8
|
-
import { DocumentTabBar } from './DocumentTabBar.js';
|
|
9
|
-
import type { OpenDocument } from './types/document.js';
|
|
10
8
|
|
|
11
9
|
interface DocumentPanelProps {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
/** Document currently displayed. */
|
|
11
|
+
documentId: string;
|
|
12
|
+
/** Title known by the list, shown until the document itself is loaded. */
|
|
13
|
+
title?: string;
|
|
14
|
+
/** Return to the document list. */
|
|
15
|
+
onBack: () => void;
|
|
17
16
|
onUpdateDocumentTitle?: (id: string, title: string) => void;
|
|
18
17
|
refreshKey: number;
|
|
19
18
|
runId?: string;
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
function DocumentPanelComponent({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
onSelectDocument,
|
|
27
|
-
onCloseDocument,
|
|
22
|
+
documentId,
|
|
23
|
+
title,
|
|
24
|
+
onBack,
|
|
28
25
|
onUpdateDocumentTitle,
|
|
29
26
|
refreshKey,
|
|
30
27
|
runId,
|
|
@@ -60,48 +57,42 @@ function DocumentPanelComponent({
|
|
|
60
57
|
[client, onUpdateDocumentTitle, t],
|
|
61
58
|
);
|
|
62
59
|
|
|
63
|
-
// Fetch content when
|
|
60
|
+
// Fetch content when the displayed document changes or refreshKey bumps
|
|
64
61
|
useEffect(() => {
|
|
65
62
|
void refreshKey;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
}, [activeDocumentId, refreshKey, isOpen, fetchContent]);
|
|
70
|
-
|
|
71
|
-
if (!isOpen || documents.length === 0) {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
63
|
+
void fetchContent(documentId);
|
|
64
|
+
}, [documentId, refreshKey, fetchContent]);
|
|
74
65
|
|
|
75
66
|
return (
|
|
76
|
-
<div className="h-full
|
|
67
|
+
<div className="h-full overflow-hidden flex flex-col">
|
|
77
68
|
{/* Header */}
|
|
78
|
-
<div className="flex items-center justify-between px-
|
|
79
|
-
<
|
|
69
|
+
<div className="flex items-center justify-between gap-1 px-2 py-1 border-b border-border/60 shrink-0">
|
|
70
|
+
<Button
|
|
71
|
+
variant="ghost"
|
|
72
|
+
size="sm"
|
|
73
|
+
className="size-8 shrink-0 rounded-md p-0"
|
|
74
|
+
onClick={onBack}
|
|
75
|
+
aria-label={t('agent.backToDocuments')}
|
|
76
|
+
title={t('agent.backToDocuments')}
|
|
77
|
+
>
|
|
78
|
+
<ArrowLeftIcon className="size-4 cn-rtl-flip" />
|
|
79
|
+
</Button>
|
|
80
|
+
<div className="flex items-center gap-1.5 min-w-0 flex-1">
|
|
80
81
|
<FileTextIcon className="size-4 text-muted shrink-0" />
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
<DocumentTabBar documents={documents} activeId={activeDocumentId} onSelect={onSelectDocument} />
|
|
85
|
-
{activeDocumentId && (
|
|
86
|
-
<NavLink
|
|
87
|
-
href={`/store/objects/${activeDocumentId}#overview`}
|
|
88
|
-
topLevelNav
|
|
89
|
-
className="inline-flex items-center justify-center rounded-md text-sm font-medium h-8 w-8 hover:bg-muted/20 text-muted hover:text-foreground"
|
|
90
|
-
>
|
|
91
|
-
<VTooltip description={t('agent.openDocument')} placement="top" size="xs">
|
|
92
|
-
<ExternalLinkIcon className="size-4" />
|
|
93
|
-
</VTooltip>
|
|
94
|
-
</NavLink>
|
|
95
|
-
)}
|
|
96
|
-
<Button
|
|
97
|
-
variant="ghost"
|
|
98
|
-
size="sm"
|
|
99
|
-
onClick={() => activeDocumentId && onCloseDocument(activeDocumentId)}
|
|
100
|
-
title={t('agent.close')}
|
|
101
|
-
>
|
|
102
|
-
<X className="size-4" />
|
|
103
|
-
</Button>
|
|
82
|
+
<span className="truncate text-sm font-medium" title={docName || title}>
|
|
83
|
+
{docName || title || t('agent.document')}
|
|
84
|
+
</span>
|
|
104
85
|
</div>
|
|
86
|
+
<NavLink
|
|
87
|
+
href={`/store/objects/${documentId}#overview`}
|
|
88
|
+
topLevelNav
|
|
89
|
+
className="inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted hover:bg-muted/20 hover:text-foreground"
|
|
90
|
+
>
|
|
91
|
+
<VTooltip description={t('agent.openDocument')} placement="top" size="xs" asChild>
|
|
92
|
+
<ExternalLinkIcon className="size-4" aria-hidden="true" />
|
|
93
|
+
</VTooltip>
|
|
94
|
+
<span className="sr-only">{t('agent.openDocument')}</span>
|
|
95
|
+
</NavLink>
|
|
105
96
|
</div>
|
|
106
97
|
|
|
107
98
|
{/* Content area */}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/** @vitest-environment jsdom */
|
|
2
|
+
|
|
3
|
+
import { cleanup, fireEvent, render, screen } from '@testing-library/react';
|
|
4
|
+
import type { ComponentProps } from 'react';
|
|
5
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
6
|
+
import { I18nProvider } from '../../../i18n/index.js';
|
|
7
|
+
import { DocumentsTab } from './DocumentsTab.js';
|
|
8
|
+
|
|
9
|
+
vi.mock('@vertesia/ui/session', () => ({
|
|
10
|
+
useUserSession: () => ({
|
|
11
|
+
client: {
|
|
12
|
+
store: {
|
|
13
|
+
objects: {
|
|
14
|
+
getObjectText: vi.fn().mockResolvedValue({ text: 'Brief body' }),
|
|
15
|
+
retrieve: vi.fn().mockResolvedValue({ name: 'Brief' }),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
}),
|
|
20
|
+
}));
|
|
21
|
+
|
|
22
|
+
vi.mock('@vertesia/ui/router', () => ({
|
|
23
|
+
NavLink: ({ href, children }: { href: string; children: React.ReactNode }) => <a href={href}>{children}</a>,
|
|
24
|
+
}));
|
|
25
|
+
|
|
26
|
+
vi.mock('@vertesia/ui/widgets', () => ({
|
|
27
|
+
MarkdownRenderer: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
|
|
28
|
+
}));
|
|
29
|
+
|
|
30
|
+
afterEach(cleanup);
|
|
31
|
+
|
|
32
|
+
const documents = [
|
|
33
|
+
{ id: 'doc-1', title: 'Brief' },
|
|
34
|
+
{ id: 'doc-2', title: 'Summary' },
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
function renderDocumentsTab(props?: Partial<ComponentProps<typeof DocumentsTab>>) {
|
|
38
|
+
const onSelectDocument = vi.fn();
|
|
39
|
+
render(
|
|
40
|
+
<I18nProvider lng="en">
|
|
41
|
+
<DocumentsTab
|
|
42
|
+
documents={documents}
|
|
43
|
+
activeDocumentId={null}
|
|
44
|
+
onSelectDocument={onSelectDocument}
|
|
45
|
+
refreshKey={0}
|
|
46
|
+
{...props}
|
|
47
|
+
/>
|
|
48
|
+
</I18nProvider>,
|
|
49
|
+
);
|
|
50
|
+
return { onSelectDocument };
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
describe('DocumentsTab', () => {
|
|
54
|
+
it('lists the open documents when none is selected', () => {
|
|
55
|
+
renderDocumentsTab();
|
|
56
|
+
|
|
57
|
+
expect(screen.getByText('2 documents')).toBeTruthy();
|
|
58
|
+
expect(screen.getByRole('button', { name: 'Brief' })).toBeTruthy();
|
|
59
|
+
expect(screen.getByRole('button', { name: 'Summary' })).toBeTruthy();
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('links each list entry to its document page', () => {
|
|
63
|
+
renderDocumentsTab();
|
|
64
|
+
|
|
65
|
+
const links = screen.getAllByRole('link', { name: 'Open document' });
|
|
66
|
+
expect(links.map((link) => link.getAttribute('href'))).toEqual([
|
|
67
|
+
'/store/objects/doc-1#overview',
|
|
68
|
+
'/store/objects/doc-2#overview',
|
|
69
|
+
]);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('selects a document when its list entry is clicked', () => {
|
|
73
|
+
const { onSelectDocument } = renderDocumentsTab();
|
|
74
|
+
|
|
75
|
+
fireEvent.click(screen.getByRole('button', { name: 'Brief' }));
|
|
76
|
+
|
|
77
|
+
expect(onSelectDocument).toHaveBeenCalledWith('doc-1');
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it('goes back to the list from the selected document', () => {
|
|
81
|
+
const { onSelectDocument } = renderDocumentsTab({ activeDocumentId: 'doc-1' });
|
|
82
|
+
|
|
83
|
+
fireEvent.click(screen.getByRole('button', { name: 'Back to documents' }));
|
|
84
|
+
|
|
85
|
+
expect(onSelectDocument).toHaveBeenCalledWith(null);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Button, Input, VTooltip } from '@vertesia/ui/core';
|
|
2
|
+
import { useUITranslation } from '@vertesia/ui/i18n';
|
|
3
|
+
import { NavLink } from '@vertesia/ui/router';
|
|
4
|
+
import { ExternalLinkIcon, FileTextIcon } from 'lucide-react';
|
|
5
|
+
import React, { useCallback, useId, useMemo, useState } from 'react';
|
|
6
|
+
import { DocumentPanel } from './DocumentPanel.js';
|
|
7
|
+
import type { OpenDocument } from './types/document.js';
|
|
8
|
+
|
|
9
|
+
/** Below this many documents the list is short enough that a filter box is just noise. */
|
|
10
|
+
const FILTER_VISIBILITY_THRESHOLD = 5;
|
|
11
|
+
|
|
12
|
+
interface DocumentsTabProps {
|
|
13
|
+
documents: OpenDocument[];
|
|
14
|
+
/** Document shown in the detail view; `null` shows the list. */
|
|
15
|
+
activeDocumentId: string | null;
|
|
16
|
+
onSelectDocument: (id: string | null) => void;
|
|
17
|
+
onUpdateDocumentTitle?: (id: string, title: string) => void;
|
|
18
|
+
refreshKey: number;
|
|
19
|
+
runId?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function DocumentsTabComponent({
|
|
23
|
+
documents,
|
|
24
|
+
activeDocumentId,
|
|
25
|
+
onSelectDocument,
|
|
26
|
+
onUpdateDocumentTitle,
|
|
27
|
+
refreshKey,
|
|
28
|
+
runId,
|
|
29
|
+
}: DocumentsTabProps) {
|
|
30
|
+
const { t } = useUITranslation();
|
|
31
|
+
const [filterValue, setFilterValue] = useState('');
|
|
32
|
+
const filterInputId = useId();
|
|
33
|
+
|
|
34
|
+
const normalizedFilterValue = filterValue.trim().toLocaleLowerCase();
|
|
35
|
+
const filteredDocuments = useMemo(() => {
|
|
36
|
+
if (!normalizedFilterValue) return documents;
|
|
37
|
+
return documents.filter((doc) => doc.title.toLocaleLowerCase().includes(normalizedFilterValue));
|
|
38
|
+
}, [documents, normalizedFilterValue]);
|
|
39
|
+
|
|
40
|
+
const handleBack = useCallback(() => onSelectDocument(null), [onSelectDocument]);
|
|
41
|
+
|
|
42
|
+
const activeDocument = activeDocumentId ? documents.find((doc) => doc.id === activeDocumentId) : undefined;
|
|
43
|
+
|
|
44
|
+
if (activeDocumentId) {
|
|
45
|
+
return (
|
|
46
|
+
<DocumentPanel
|
|
47
|
+
documentId={activeDocumentId}
|
|
48
|
+
title={activeDocument?.title}
|
|
49
|
+
onBack={handleBack}
|
|
50
|
+
onUpdateDocumentTitle={onUpdateDocumentTitle}
|
|
51
|
+
refreshKey={refreshKey}
|
|
52
|
+
runId={runId}
|
|
53
|
+
/>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<div className="flex flex-col h-full">
|
|
59
|
+
{/* Top bar */}
|
|
60
|
+
<div className="flex shrink-0 flex-col gap-2 border-b px-3 py-2">
|
|
61
|
+
<span className="text-xs text-muted">
|
|
62
|
+
{normalizedFilterValue
|
|
63
|
+
? t('agent.documentsFiltered', {
|
|
64
|
+
visible: filteredDocuments.length,
|
|
65
|
+
total: documents.length,
|
|
66
|
+
})
|
|
67
|
+
: t('agent.documentCount', { count: documents.length })}
|
|
68
|
+
</span>
|
|
69
|
+
{documents.length > FILTER_VISIBILITY_THRESHOLD && (
|
|
70
|
+
<>
|
|
71
|
+
<label htmlFor={filterInputId} className="sr-only">
|
|
72
|
+
{t('form.filter')}
|
|
73
|
+
</label>
|
|
74
|
+
<Input
|
|
75
|
+
id={filterInputId}
|
|
76
|
+
type="text"
|
|
77
|
+
role="searchbox"
|
|
78
|
+
autoComplete="off"
|
|
79
|
+
placeholder={t('store.searchPlaceholder')}
|
|
80
|
+
value={filterValue}
|
|
81
|
+
onChange={setFilterValue}
|
|
82
|
+
clearable={true}
|
|
83
|
+
/>
|
|
84
|
+
</>
|
|
85
|
+
)}
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
{/* List */}
|
|
89
|
+
<div className="flex-1 overflow-y-auto px-3 py-2">
|
|
90
|
+
{filteredDocuments.length > 0 ? (
|
|
91
|
+
<div className="min-w-0">
|
|
92
|
+
{filteredDocuments.map((doc) => (
|
|
93
|
+
<div key={doc.id} className="flex min-w-0 items-center gap-1">
|
|
94
|
+
<Button
|
|
95
|
+
variant="unstyled"
|
|
96
|
+
className="flex min-w-0 flex-1 items-center justify-start gap-1.5 rounded px-1 py-1 text-start text-sm hover:bg-muted/30"
|
|
97
|
+
onClick={() => onSelectDocument(doc.id)}
|
|
98
|
+
title={doc.title}
|
|
99
|
+
>
|
|
100
|
+
<FileTextIcon className="size-4 shrink-0 text-muted" />
|
|
101
|
+
<span className="min-w-0 truncate">{doc.title}</span>
|
|
102
|
+
</Button>
|
|
103
|
+
<NavLink
|
|
104
|
+
href={`/store/objects/${doc.id}#overview`}
|
|
105
|
+
topLevelNav
|
|
106
|
+
className="inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted hover:bg-muted/20 hover:text-foreground"
|
|
107
|
+
>
|
|
108
|
+
<VTooltip description={t('agent.openDocument')} placement="top" size="xs" asChild>
|
|
109
|
+
<ExternalLinkIcon className="size-3.5" aria-hidden="true" />
|
|
110
|
+
</VTooltip>
|
|
111
|
+
<span className="sr-only">{t('agent.openDocument')}</span>
|
|
112
|
+
</NavLink>
|
|
113
|
+
</div>
|
|
114
|
+
))}
|
|
115
|
+
</div>
|
|
116
|
+
) : (
|
|
117
|
+
<div className="px-1 py-6 text-sm text-muted">{t('agent.noMatchingDocuments')}</div>
|
|
118
|
+
)}
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export const DocumentsTab = React.memo(DocumentsTabComponent);
|
|
@@ -9,15 +9,15 @@ export function JumpingDots({ className, inline = false }: JumpingDotsProps) {
|
|
|
9
9
|
return (
|
|
10
10
|
<div className={cn('flex items-center gap-1', inline ? 'inline-flex' : '', className)}>
|
|
11
11
|
<div
|
|
12
|
-
className="w-2 h-2 bg-
|
|
12
|
+
className="w-2 h-2 bg-primary rounded-full animate-[jumping_1s_infinite_ease-in-out] hover:bg-primary"
|
|
13
13
|
style={{ transform: 'translateY(0)', animationRange: '0px -8px' }}
|
|
14
14
|
/>
|
|
15
15
|
<div
|
|
16
|
-
className="w-2 h-2 bg-
|
|
16
|
+
className="w-2 h-2 bg-primary rounded-full animate-[jumping_1s_0.3s_infinite_ease-in-out] hover:bg-primary"
|
|
17
17
|
style={{ transform: 'translateY(0)', animationRange: '0px -8px' }}
|
|
18
18
|
/>
|
|
19
19
|
<div
|
|
20
|
-
className="w-2 h-2 bg-
|
|
20
|
+
className="w-2 h-2 bg-primary rounded-full animate-[jumping_1s_0.6s_infinite_ease-in-out] hover:bg-primary"
|
|
21
21
|
style={{ transform: 'translateY(0)', animationRange: '0px -8px' }}
|
|
22
22
|
/>
|
|
23
23
|
</div>
|
|
@@ -282,7 +282,6 @@ describe('ModernAgentConversation send handling', () => {
|
|
|
282
282
|
isDocPanelOpen: false,
|
|
283
283
|
docRefreshKey: 0,
|
|
284
284
|
closeDocPanel: vi.fn(),
|
|
285
|
-
closeDocument: vi.fn(),
|
|
286
285
|
selectDocument: vi.fn(),
|
|
287
286
|
openDocInPanel: vi.fn(),
|
|
288
287
|
updateDocumentTitle: vi.fn(),
|
|
@@ -1561,7 +1561,6 @@ function ModernAgentConversationInner({
|
|
|
1561
1561
|
isDocPanelOpen,
|
|
1562
1562
|
docRefreshKey,
|
|
1563
1563
|
closeDocPanel: handleCloseDocPanel,
|
|
1564
|
-
closeDocument: handleCloseDocument,
|
|
1565
1564
|
selectDocument,
|
|
1566
1565
|
openDocInPanel,
|
|
1567
1566
|
updateDocumentTitle,
|
|
@@ -2971,7 +2970,7 @@ function ModernAgentConversationInner({
|
|
|
2971
2970
|
ref={conversationLayoutRef}
|
|
2972
2971
|
className={cn(
|
|
2973
2972
|
'flex flex-col lg:flex-row gap-2 w-full h-full relative overflow-hidden',
|
|
2974
|
-
canUploadFiles && isDragOver && 'ring-2 ring-
|
|
2973
|
+
canUploadFiles && isDragOver && 'ring-2 ring-info ring-inset',
|
|
2975
2974
|
className,
|
|
2976
2975
|
)}
|
|
2977
2976
|
onDragEnter={canUploadFiles ? handleDragEnter : undefined}
|
|
@@ -2981,8 +2980,8 @@ function ModernAgentConversationInner({
|
|
|
2981
2980
|
>
|
|
2982
2981
|
{/* Drag overlay for full-panel file drop */}
|
|
2983
2982
|
{canUploadFiles && isDragOver && (
|
|
2984
|
-
<div className="absolute inset-0 flex items-center justify-center bg-
|
|
2985
|
-
<div className="text-
|
|
2983
|
+
<div className="absolute inset-0 flex items-center justify-center bg-info/80 dark:bg-info/40 z-50 pointer-events-none rounded-lg">
|
|
2984
|
+
<div className="text-info font-medium flex items-center gap-2 text-lg">
|
|
2986
2985
|
<UploadIcon className="size-6" />
|
|
2987
2986
|
Drop files to upload
|
|
2988
2987
|
</div>
|
|
@@ -3062,7 +3061,6 @@ function ModernAgentConversationInner({
|
|
|
3062
3061
|
openDocuments={openDocuments}
|
|
3063
3062
|
activeDocumentId={activeDocumentId}
|
|
3064
3063
|
onSelectDocument={selectDocument}
|
|
3065
|
-
onCloseDocument={handleCloseDocument}
|
|
3066
3064
|
onUpdateDocumentTitle={updateDocumentTitle}
|
|
3067
3065
|
docRefreshKey={docRefreshKey}
|
|
3068
3066
|
runId={agentRunId}
|
|
@@ -133,6 +133,41 @@ describe('AllMessagesMixed summary view', () => {
|
|
|
133
133
|
vi.useRealTimers();
|
|
134
134
|
});
|
|
135
135
|
|
|
136
|
+
it('keeps the draft accompanying ask_user visible outside collapsed work', () => {
|
|
137
|
+
renderSummary([
|
|
138
|
+
makeMessage({
|
|
139
|
+
timestamp: 1000,
|
|
140
|
+
message: '## Draft agenda\n9:00 Welcome\n9:15 Platform foundations',
|
|
141
|
+
details: {
|
|
142
|
+
event_class: 'activity',
|
|
143
|
+
display_role: 'tool_preamble',
|
|
144
|
+
tools: ['ask_user'],
|
|
145
|
+
activity_group_id: 'review-1',
|
|
146
|
+
streamed: true,
|
|
147
|
+
},
|
|
148
|
+
}),
|
|
149
|
+
makeMessage({
|
|
150
|
+
timestamp: 2000,
|
|
151
|
+
message: 'Waiting for review...',
|
|
152
|
+
details: {
|
|
153
|
+
tool: 'ask_user',
|
|
154
|
+
tool_status: 'running',
|
|
155
|
+
activity_group_id: 'review-1',
|
|
156
|
+
},
|
|
157
|
+
}),
|
|
158
|
+
makeMessage({
|
|
159
|
+
timestamp: 3000,
|
|
160
|
+
type: AgentMessageType.REQUEST_INPUT,
|
|
161
|
+
message: 'Does this agenda work?',
|
|
162
|
+
details: { tool: 'ask_user', request_id: 'ask-1' },
|
|
163
|
+
}),
|
|
164
|
+
]);
|
|
165
|
+
|
|
166
|
+
expect(screen.getByRole('heading', { name: 'Draft agenda' })).not.toBeNull();
|
|
167
|
+
expect(screen.getByText('Does this agenda work?')).not.toBeNull();
|
|
168
|
+
expect(screen.getByRole('button', { name: /Worked\s*for/ }).getAttribute('aria-expanded')).toBe('false');
|
|
169
|
+
});
|
|
170
|
+
|
|
136
171
|
it('renders delivery status on user bubbles in summary view', () => {
|
|
137
172
|
renderSummary([
|
|
138
173
|
makeMessage({
|
|
@@ -1109,7 +1144,9 @@ describe('AllMessagesMixed summary view', () => {
|
|
|
1109
1144
|
|
|
1110
1145
|
const columns = Array.from(screen.getByRole('table').querySelectorAll('col'));
|
|
1111
1146
|
const contentWidths = [columns[0], columns[2]].map((column) =>
|
|
1112
|
-
Number.parseFloat(
|
|
1147
|
+
Number.parseFloat(
|
|
1148
|
+
column.style.getPropertyValue('--agent-markdown-table-column-width').replace('calc(', ''),
|
|
1149
|
+
),
|
|
1113
1150
|
);
|
|
1114
1151
|
|
|
1115
1152
|
expect(columns).toHaveLength(3);
|
|
@@ -1117,6 +1154,28 @@ describe('AllMessagesMixed summary view', () => {
|
|
|
1117
1154
|
expect(contentWidths[1]).toBeGreaterThan(contentWidths[0]);
|
|
1118
1155
|
});
|
|
1119
1156
|
|
|
1157
|
+
it('reserves readable widths for agenda columns beside long descriptions', () => {
|
|
1158
|
+
renderSummary([
|
|
1159
|
+
makeMessage({
|
|
1160
|
+
type: AgentMessageType.ANSWER,
|
|
1161
|
+
message: [
|
|
1162
|
+
'| Time | Duration | Topic | Facilitator |',
|
|
1163
|
+
'| --- | --- | --- | --- |',
|
|
1164
|
+
'| 9:15 a.m. | 90 min | Advanced capabilities: sub-agents, workstreams, skills, tools and human review | Vertesia |',
|
|
1165
|
+
'| 10:45 a.m. | 15 min | Break | All |',
|
|
1166
|
+
].join('\n'),
|
|
1167
|
+
}),
|
|
1168
|
+
]);
|
|
1169
|
+
|
|
1170
|
+
const table = screen.getByRole('table');
|
|
1171
|
+
const widths = Array.from(table.querySelectorAll('col')).map((column) =>
|
|
1172
|
+
column.style.getPropertyValue('--agent-markdown-table-column-width'),
|
|
1173
|
+
);
|
|
1174
|
+
expect(widths).toEqual(['8rem', '8rem', 'calc(100.000% - 24.000rem)', '8rem']);
|
|
1175
|
+
expect(table.style.minWidth).toBe('32rem');
|
|
1176
|
+
expect(table.parentElement?.classList.contains('overflow-x-auto')).toBe(true);
|
|
1177
|
+
});
|
|
1178
|
+
|
|
1120
1179
|
it('merges legacy activity progress rows with different tool run ids', () => {
|
|
1121
1180
|
renderSummary(
|
|
1122
1181
|
[
|
|
@@ -475,11 +475,15 @@ function getTableColumnLayouts(node?: Element): AgentMarkdownTableColumnLayout[]
|
|
|
475
475
|
return clampNumber(avgLength * 0.7 + maxLength * 0.25 + longestTokenLength * 0.45, 18, 90);
|
|
476
476
|
});
|
|
477
477
|
|
|
478
|
-
const totalWeight = weights.reduce((sum, weight) => sum + weight, 0);
|
|
478
|
+
const totalWeight = weights.reduce((sum, weight, index) => sum + (compactColumns.has(index) ? 0 : weight), 0);
|
|
479
479
|
if (totalWeight <= 0) return [];
|
|
480
480
|
|
|
481
481
|
return weights.map((weight, columnIndex) => {
|
|
482
|
-
const
|
|
482
|
+
const share = weight / totalWeight;
|
|
483
|
+
// Reserve actual space for short values and headers before distributing prose columns.
|
|
484
|
+
const width = compactColumns.has(columnIndex)
|
|
485
|
+
? '8rem'
|
|
486
|
+
: `calc(${(share * 100).toFixed(3)}% - ${(compactColumns.size * 8 * share).toFixed(3)}rem)`;
|
|
483
487
|
return {
|
|
484
488
|
key: `agent-markdown-table-column-${columnIndex}`,
|
|
485
489
|
compact: compactColumns.has(columnIndex),
|
|
@@ -500,24 +504,30 @@ function AgentMarkdownTable({
|
|
|
500
504
|
const columnLayouts = getTableColumnLayouts(node);
|
|
501
505
|
|
|
502
506
|
return (
|
|
503
|
-
<
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
507
|
+
<div className="overflow-x-auto">
|
|
508
|
+
<table
|
|
509
|
+
{...props}
|
|
510
|
+
className={className}
|
|
511
|
+
style={{ minWidth: `${columnLayouts.length * 8}rem`, ...props.style }}
|
|
512
|
+
>
|
|
513
|
+
{columnLayouts.length > 0 ? (
|
|
514
|
+
<colgroup>
|
|
515
|
+
{columnLayouts.map((columnLayout) => (
|
|
516
|
+
<col
|
|
517
|
+
key={columnLayout.key}
|
|
518
|
+
className={columnLayout.compact ? 'agent-markdown-table-compact-col' : undefined}
|
|
519
|
+
style={
|
|
520
|
+
{
|
|
521
|
+
'--agent-markdown-table-column-width': columnLayout.width,
|
|
522
|
+
} as React.CSSProperties
|
|
523
|
+
}
|
|
524
|
+
/>
|
|
525
|
+
))}
|
|
526
|
+
</colgroup>
|
|
527
|
+
) : null}
|
|
528
|
+
{children}
|
|
529
|
+
</table>
|
|
530
|
+
</div>
|
|
521
531
|
);
|
|
522
532
|
}
|
|
523
533
|
|
|
@@ -1210,6 +1220,15 @@ function getToolTarget(details: Record<string, unknown>): string | undefined {
|
|
|
1210
1220
|
return undefined;
|
|
1211
1221
|
}
|
|
1212
1222
|
|
|
1223
|
+
/**
|
|
1224
|
+
* An approval decision that stopped the tool from running — a denial, a timeout, or a cancellation
|
|
1225
|
+
* — as opposed to one that released it. Unknown decisions count as blocking: every decision the
|
|
1226
|
+
* agent has ever emitted except `auto_approved` is one, so that is the safer default.
|
|
1227
|
+
*/
|
|
1228
|
+
function isBlockingApprovalDecision(decision: unknown): boolean {
|
|
1229
|
+
return typeof decision === 'string' && decision !== 'auto_approved';
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1213
1232
|
function getApprovalDecisionLabel(decision: unknown, toolLabel: string): string | undefined {
|
|
1214
1233
|
switch (decision) {
|
|
1215
1234
|
case 'denied':
|
|
@@ -1221,6 +1240,8 @@ function getApprovalDecisionLabel(decision: unknown, toolLabel: string): string
|
|
|
1221
1240
|
return `Approval reviewer denied ${toolLabel}.`;
|
|
1222
1241
|
case 'cancelled_after_denial':
|
|
1223
1242
|
return `Cancelled ${toolLabel} after another tool was denied.`;
|
|
1243
|
+
case 'auto_approved':
|
|
1244
|
+
return `Approval no longer required for ${toolLabel}.`;
|
|
1224
1245
|
default:
|
|
1225
1246
|
return undefined;
|
|
1226
1247
|
}
|
|
@@ -1237,6 +1258,8 @@ function getApprovalDecisionStatusText(decision: unknown): string | undefined {
|
|
|
1237
1258
|
return 'Denied by reviewer';
|
|
1238
1259
|
case 'cancelled_after_denial':
|
|
1239
1260
|
return 'Cancelled after denial';
|
|
1261
|
+
case 'auto_approved':
|
|
1262
|
+
return 'Approved without asking';
|
|
1240
1263
|
default:
|
|
1241
1264
|
return undefined;
|
|
1242
1265
|
}
|
|
@@ -1467,7 +1490,7 @@ function getToolDetailSections(message: AgentMessage): SummaryToolDetailSection[
|
|
|
1467
1490
|
addSection(
|
|
1468
1491
|
'Output',
|
|
1469
1492
|
['output', 'stdout', 'result', 'results', 'content', 'result_summary', 'observation', 'display_message'],
|
|
1470
|
-
|
|
1493
|
+
isBlockingApprovalDecision(details.approval_decision) ? 'error' : undefined,
|
|
1471
1494
|
);
|
|
1472
1495
|
addSection('Files', ['files', 'outputFiles']);
|
|
1473
1496
|
addSection('Error', ['error', 'stderr'], 'error');
|
|
@@ -3322,9 +3345,6 @@ function AllMessagesMixedComponent({
|
|
|
3322
3345
|
.agent-markdown col {
|
|
3323
3346
|
width: var(--agent-markdown-table-column-width);
|
|
3324
3347
|
}
|
|
3325
|
-
.agent-markdown .agent-markdown-table-compact-col {
|
|
3326
|
-
width: clamp(4.75rem, var(--agent-markdown-table-column-width), 7rem);
|
|
3327
|
-
}
|
|
3328
3348
|
.agent-markdown tr:last-child td {
|
|
3329
3349
|
border-bottom: 0;
|
|
3330
3350
|
}
|