@vertesia/ui 1.0.0-dev.20260305.083323Z → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (770) hide show
  1. package/lib/esm/core/components/SelectList.js +3 -1
  2. package/lib/esm/core/components/SelectList.js.map +1 -1
  3. package/lib/esm/core/components/SidePanel.js +2 -2
  4. package/lib/esm/core/components/SidePanel.js.map +1 -1
  5. package/lib/esm/core/components/index.js +0 -5
  6. package/lib/esm/core/components/index.js.map +1 -1
  7. package/lib/esm/core/components/shadcn/breadcrumb.js +11 -7
  8. package/lib/esm/core/components/shadcn/breadcrumb.js.map +1 -1
  9. package/lib/esm/core/components/shadcn/button.js +5 -3
  10. package/lib/esm/core/components/shadcn/button.js.map +1 -1
  11. package/lib/esm/core/components/shadcn/collaspible.js +14 -0
  12. package/lib/esm/core/components/shadcn/collaspible.js.map +1 -0
  13. package/lib/esm/core/components/shadcn/dropdown.js +61 -0
  14. package/lib/esm/core/components/shadcn/dropdown.js.map +1 -0
  15. package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +3 -1
  16. package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -1
  17. package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +3 -1
  18. package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -1
  19. package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +1 -1
  20. package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -1
  21. package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js +1 -1
  22. package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +1 -1
  23. package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +4 -2
  24. package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +1 -1
  25. package/lib/esm/core/components/shadcn/filters/filterBar.js +7 -4
  26. package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
  27. package/lib/esm/core/components/shadcn/index.js +4 -0
  28. package/lib/esm/core/components/shadcn/index.js.map +1 -1
  29. package/lib/esm/core/components/shadcn/modal/ConfirmModal.js +4 -2
  30. package/lib/esm/core/components/shadcn/modal/ConfirmModal.js.map +1 -1
  31. package/lib/esm/core/components/shadcn/modal/DeleteModal.js +5 -3
  32. package/lib/esm/core/components/shadcn/modal/DeleteModal.js.map +1 -1
  33. package/lib/esm/core/components/shadcn/popover.js +11 -7
  34. package/lib/esm/core/components/shadcn/popover.js.map +1 -1
  35. package/lib/esm/core/components/shadcn/radioGroup.js +29 -0
  36. package/lib/esm/core/components/shadcn/radioGroup.js.map +1 -0
  37. package/lib/esm/core/components/shadcn/switch.js +19 -0
  38. package/lib/esm/core/components/shadcn/switch.js.map +1 -0
  39. package/lib/esm/core/components/shadcn/tabs.js +6 -6
  40. package/lib/esm/core/components/shadcn/tabs.js.map +1 -1
  41. package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js +7 -4
  42. package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -1
  43. package/lib/esm/core/components/toast/NotificationPanel.js +3 -3
  44. package/lib/esm/core/components/toast/NotificationPanel.js.map +1 -1
  45. package/lib/esm/env/index.js +11 -1
  46. package/lib/esm/env/index.js.map +1 -1
  47. package/lib/esm/features/agent/PayloadBuilder.js +87 -15
  48. package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
  49. package/lib/esm/features/agent/chat/AgentRightPanel.js +159 -0
  50. package/lib/esm/features/agent/chat/AgentRightPanel.js.map +1 -0
  51. package/lib/esm/features/agent/chat/ArtifactsTab.js +69 -0
  52. package/lib/esm/features/agent/chat/ArtifactsTab.js.map +1 -0
  53. package/lib/esm/features/agent/chat/AskUserWidget.js +12 -6
  54. package/lib/esm/features/agent/chat/AskUserWidget.js.map +1 -1
  55. package/lib/esm/features/agent/chat/DocumentPanel.js +6 -3
  56. package/lib/esm/features/agent/chat/DocumentPanel.js.map +1 -1
  57. package/lib/esm/features/agent/chat/ImageLightbox.js +3 -1
  58. package/lib/esm/features/agent/chat/ImageLightbox.js.map +1 -1
  59. package/lib/esm/features/agent/chat/ModernAgentConversation.js +243 -106
  60. package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
  61. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +122 -52
  62. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  63. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +5 -3
  64. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -1
  65. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +57 -18
  66. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  67. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +82 -83
  68. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -1
  69. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +16 -14
  70. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
  71. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +20 -5
  72. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  73. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +8 -6
  74. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -1
  75. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +12 -10
  76. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -1
  77. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js +5 -3
  78. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -1
  79. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +104 -13
  80. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
  81. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +9 -5
  82. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
  83. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +160 -76
  84. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
  85. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +3 -1
  86. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +1 -1
  87. package/lib/esm/features/agent/chat/VegaLiteChart.js +14 -2
  88. package/lib/esm/features/agent/chat/VegaLiteChart.js.map +1 -1
  89. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js +3 -8
  90. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js.map +1 -1
  91. package/lib/esm/features/agent/chat/hooks/useAgentStream.js +75 -16
  92. package/lib/esm/features/agent/chat/hooks/useAgentStream.js.map +1 -1
  93. package/lib/esm/features/agent/chat/hooks/useArtifacts.js +108 -0
  94. package/lib/esm/features/agent/chat/hooks/useArtifacts.js.map +1 -0
  95. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js +56 -5
  96. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js.map +1 -1
  97. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js +12 -10
  98. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js.map +1 -1
  99. package/lib/esm/features/errors/PanelErrorBoundary.js +3 -1
  100. package/lib/esm/features/errors/PanelErrorBoundary.js.map +1 -1
  101. package/lib/esm/features/facets/AgentRunnerFacetsNav.js +45 -33
  102. package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +1 -1
  103. package/lib/esm/features/facets/RunsFacetsNav.js +1 -1
  104. package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -1
  105. package/lib/esm/features/facets/index.js +1 -1
  106. package/lib/esm/features/facets/index.js.map +1 -1
  107. package/lib/esm/features/layout/GenericPageNavHeader.js +40 -28
  108. package/lib/esm/features/layout/GenericPageNavHeader.js.map +1 -1
  109. package/lib/esm/features/layout/NotFoundView.js +3 -1
  110. package/lib/esm/features/layout/NotFoundView.js.map +1 -1
  111. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js +9 -5
  112. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
  113. package/lib/esm/features/magic-pdf/DownloadPopover.js +5 -4
  114. package/lib/esm/features/magic-pdf/DownloadPopover.js.map +1 -1
  115. package/lib/esm/features/magic-pdf/MagicPdfView.js +8 -5
  116. package/lib/esm/features/magic-pdf/MagicPdfView.js.map +1 -1
  117. package/lib/esm/features/pdf-viewer/PdfPageSlider.js +9 -5
  118. package/lib/esm/features/pdf-viewer/PdfPageSlider.js.map +1 -1
  119. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js +5 -3
  120. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js.map +1 -1
  121. package/lib/esm/features/permissions/UserPermissionsProvider.js +3 -1
  122. package/lib/esm/features/permissions/UserPermissionsProvider.js.map +1 -1
  123. package/lib/esm/features/store/collections/BrowseCollectionView.js +9 -1
  124. package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
  125. package/lib/esm/features/store/collections/CollectionsTable.js +14 -7
  126. package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -1
  127. package/lib/esm/features/store/collections/CreateCollection.js +12 -9
  128. package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
  129. package/lib/esm/features/store/collections/EditCollectionView.js +23 -19
  130. package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
  131. package/lib/esm/features/store/collections/SelectCollection.js +25 -10
  132. package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
  133. package/lib/esm/features/store/collections/SharedPropsEditor.js +5 -3
  134. package/lib/esm/features/store/collections/SharedPropsEditor.js.map +1 -1
  135. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js +5 -3
  136. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js.map +1 -1
  137. package/lib/esm/features/store/objects/DocumentPreviewPanel.js +14 -12
  138. package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +1 -1
  139. package/lib/esm/features/store/objects/DocumentSearchResults.js +15 -5
  140. package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
  141. package/lib/esm/features/store/objects/DocumentTable.js +10 -7
  142. package/lib/esm/features/store/objects/DocumentTable.js.map +1 -1
  143. package/lib/esm/features/store/objects/ExportPropertiesModal.js +5 -2
  144. package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +1 -1
  145. package/lib/esm/features/store/objects/components/ContentDispositionButton.js +3 -1
  146. package/lib/esm/features/store/objects/components/ContentDispositionButton.js.map +1 -1
  147. package/lib/esm/features/store/objects/components/ContentOverview.js +55 -40
  148. package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
  149. package/lib/esm/features/store/objects/components/DocumentIcon.js +4 -3
  150. package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
  151. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +13 -11
  152. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
  153. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +15 -18
  154. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
  155. package/lib/esm/features/store/objects/components/SelectDocument.js +9 -6
  156. package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
  157. package/lib/esm/features/store/objects/components/TextEditorPanel.js +97 -0
  158. package/lib/esm/features/store/objects/components/TextEditorPanel.js.map +1 -0
  159. package/lib/esm/features/store/objects/components/VectorSearchWidget.js +3 -1
  160. package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
  161. package/lib/esm/features/store/objects/components/useContentPanelHooks.js +4 -2
  162. package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +1 -1
  163. package/lib/esm/features/store/objects/components/useDownloadFile.js +12 -10
  164. package/lib/esm/features/store/objects/components/useDownloadFile.js.map +1 -1
  165. package/lib/esm/features/store/objects/layout/documentLayout.js +10 -6
  166. package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
  167. package/lib/esm/features/store/objects/layout/renderers.js +10 -1
  168. package/lib/esm/features/store/objects/layout/renderers.js.map +1 -1
  169. package/lib/esm/features/store/objects/search/DocumentSearchContext.js +3 -2
  170. package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
  171. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +3 -0
  172. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +1 -1
  173. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +22 -109
  174. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -1
  175. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js +50 -0
  176. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js.map +1 -0
  177. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js +27 -0
  178. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js.map +1 -0
  179. package/lib/esm/features/store/objects/selection/SelectionActions.js +10 -6
  180. package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
  181. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +17 -12
  182. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
  183. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +9 -5
  184. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -1
  185. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js +4 -2
  186. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js.map +1 -1
  187. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +24 -23
  188. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
  189. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +10 -5
  190. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -1
  191. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +13 -9
  192. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +1 -1
  193. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +14 -8
  194. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +1 -1
  195. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +42 -39
  196. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
  197. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +4 -2
  198. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -1
  199. package/lib/esm/features/store/objects/upload/useUploadHandler.js +9 -7
  200. package/lib/esm/features/store/objects/upload/useUploadHandler.js.map +1 -1
  201. package/lib/esm/features/store/types/ContentObjectTypesSearch.js +6 -4
  202. package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +1 -1
  203. package/lib/esm/features/store/types/ContentObjectTypesTable.js +3 -1
  204. package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +1 -1
  205. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +6 -7
  206. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -1
  207. package/lib/esm/features/store/types/ObjectSchemaEditor.js +9 -7
  208. package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
  209. package/lib/esm/features/store/types/SelectContentType.js +9 -7
  210. package/lib/esm/features/store/types/SelectContentType.js.map +1 -1
  211. package/lib/esm/features/store/types/SelectContentTypeModal.js +5 -2
  212. package/lib/esm/features/store/types/SelectContentTypeModal.js.map +1 -1
  213. package/lib/esm/features/store/types/TableLayoutEditor.js +6 -4
  214. package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -1
  215. package/lib/esm/features/user/UserInfo.js +40 -50
  216. package/lib/esm/features/user/UserInfo.js.map +1 -1
  217. package/lib/esm/i18n/index.js +31 -0
  218. package/lib/esm/i18n/index.js.map +1 -0
  219. package/lib/esm/i18n/instance.js +46 -0
  220. package/lib/esm/i18n/instance.js.map +1 -0
  221. package/lib/esm/i18n/locales/ar.json +694 -0
  222. package/lib/esm/i18n/locales/de.json +662 -0
  223. package/lib/esm/i18n/locales/en.json +663 -0
  224. package/lib/esm/i18n/locales/es.json +668 -0
  225. package/lib/esm/i18n/locales/fr.json +670 -0
  226. package/lib/esm/i18n/locales/it.json +668 -0
  227. package/lib/esm/i18n/locales/ja.json +662 -0
  228. package/lib/esm/i18n/locales/ko.json +662 -0
  229. package/lib/esm/i18n/locales/pt.json +668 -0
  230. package/lib/esm/i18n/locales/ru.json +678 -0
  231. package/lib/esm/i18n/locales/tr.json +662 -0
  232. package/lib/esm/i18n/locales/zh-TW.json +662 -0
  233. package/lib/esm/i18n/locales/zh.json +662 -0
  234. package/lib/esm/layout/FullHeightLayout.js +3 -0
  235. package/lib/esm/layout/FullHeightLayout.js.map +1 -1
  236. package/lib/esm/layout/Navbar.js +3 -1
  237. package/lib/esm/layout/Navbar.js.map +1 -1
  238. package/lib/esm/layout/RegionTag.js +15 -0
  239. package/lib/esm/layout/RegionTag.js.map +1 -0
  240. package/lib/esm/layout/Sidebar.js +2 -2
  241. package/lib/esm/layout/Sidebar.js.map +1 -1
  242. package/lib/esm/layout/index.js +1 -0
  243. package/lib/esm/layout/index.js.map +1 -1
  244. package/lib/esm/router/HistoryNavigator.js +1 -1
  245. package/lib/esm/router/HistoryNavigator.js.map +1 -1
  246. package/lib/esm/router/Nav.js +5 -3
  247. package/lib/esm/router/Nav.js.map +1 -1
  248. package/lib/esm/router/NestedNavigationContext.js +4 -0
  249. package/lib/esm/router/NestedNavigationContext.js.map +1 -1
  250. package/lib/esm/router/NestedRouterProvider.js +3 -1
  251. package/lib/esm/router/NestedRouterProvider.js.map +1 -1
  252. package/lib/esm/router/Router.js +21 -6
  253. package/lib/esm/router/Router.js.map +1 -1
  254. package/lib/esm/session/UserSession.js +23 -0
  255. package/lib/esm/session/UserSession.js.map +1 -1
  256. package/lib/esm/session/UserSessionProvider.js +4 -0
  257. package/lib/esm/session/UserSessionProvider.js.map +1 -1
  258. package/lib/esm/session/auth/composable.js +1 -1
  259. package/lib/esm/session/auth/composable.js.map +1 -1
  260. package/lib/esm/session/auth/firebase.js +1 -1
  261. package/lib/esm/session/auth/firebase.js.map +1 -1
  262. package/lib/esm/session/auth/useCurrentTenant.js +3 -1
  263. package/lib/esm/session/auth/useCurrentTenant.js.map +1 -1
  264. package/lib/esm/shell/SplashScreen.js +3 -7
  265. package/lib/esm/shell/SplashScreen.js.map +1 -1
  266. package/lib/esm/shell/apps/StandaloneApp.js +5 -2
  267. package/lib/esm/shell/apps/StandaloneApp.js.map +1 -1
  268. package/lib/esm/shell/login/EnterpriseSigninButton.js +5 -3
  269. package/lib/esm/shell/login/EnterpriseSigninButton.js.map +1 -1
  270. package/lib/esm/shell/login/GitHubSignInButton.js +3 -7
  271. package/lib/esm/shell/login/GitHubSignInButton.js.map +1 -1
  272. package/lib/esm/shell/login/GoogleSignInButton.js +3 -1
  273. package/lib/esm/shell/login/GoogleSignInButton.js.map +1 -1
  274. package/lib/esm/shell/login/InviteAcceptModal.js +5 -2
  275. package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -1
  276. package/lib/esm/shell/login/MicrosoftSigninButton.js +4 -6
  277. package/lib/esm/shell/login/MicrosoftSigninButton.js.map +1 -1
  278. package/lib/esm/shell/login/SigninScreen.js +6 -2
  279. package/lib/esm/shell/login/SigninScreen.js.map +1 -1
  280. package/lib/esm/shell/login/SignupForm.js +36 -34
  281. package/lib/esm/shell/login/SignupForm.js.map +1 -1
  282. package/lib/esm/shell/login/TerminalLogin.js +28 -21
  283. package/lib/esm/shell/login/TerminalLogin.js.map +1 -1
  284. package/lib/esm/shell/login/UserInfo.js +6 -4
  285. package/lib/esm/shell/login/UserInfo.js.map +1 -1
  286. package/lib/esm/shell/login/UserSessionMenu.js +3 -4
  287. package/lib/esm/shell/login/UserSessionMenu.js.map +1 -1
  288. package/lib/esm/widgets/index.js +0 -1
  289. package/lib/esm/widgets/index.js.map +1 -1
  290. package/lib/esm/widgets/json-view/JSONCode.js +1 -1
  291. package/lib/esm/widgets/json-view/JSONCode.js.map +1 -1
  292. package/lib/esm/widgets/json-view/JSONDisplay.js +6 -2
  293. package/lib/esm/widgets/json-view/JSONDisplay.js.map +1 -1
  294. package/lib/esm/widgets/json-view/JSONSwitcher.js +6 -0
  295. package/lib/esm/widgets/json-view/JSONSwitcher.js.map +1 -0
  296. package/lib/esm/widgets/json-view/JSONView.js +1 -1
  297. package/lib/esm/widgets/json-view/JSONView.js.map +1 -1
  298. package/lib/esm/widgets/json-view/index.js +1 -0
  299. package/lib/esm/widgets/json-view/index.js.map +1 -1
  300. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js +6 -5
  301. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js.map +1 -1
  302. package/lib/esm/widgets/markdown/CodeBlockContext.js +11 -0
  303. package/lib/esm/widgets/markdown/CodeBlockContext.js.map +1 -0
  304. package/lib/esm/widgets/markdown/MarkdownRenderer.js +11 -10
  305. package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +1 -1
  306. package/lib/esm/widgets/markdown/codeBlockHandlers.js +11 -12
  307. package/lib/esm/widgets/markdown/codeBlockHandlers.js.map +1 -1
  308. package/lib/esm/widgets/markdown/index.js +10 -9
  309. package/lib/esm/widgets/markdown/index.js.map +1 -1
  310. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js +0 -1
  311. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js.map +1 -1
  312. package/lib/esm/widgets/schema-editor/ManagedSchema.js +6 -5
  313. package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +1 -1
  314. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +7 -3
  315. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +1 -1
  316. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +3 -1
  317. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
  318. package/lib/esm/widgets/upload/DropZone.js +9 -11
  319. package/lib/esm/widgets/upload/DropZone.js.map +1 -1
  320. package/lib/esm/widgets/upload/UploadResultCategory.js +3 -1
  321. package/lib/esm/widgets/upload/UploadResultCategory.js.map +1 -1
  322. package/lib/esm/widgets/upload/UploadSummary.js +3 -1
  323. package/lib/esm/widgets/upload/UploadSummary.js.map +1 -1
  324. package/lib/tsconfig.tsbuildinfo +1 -1
  325. package/lib/types/core/components/SelectList.d.ts.map +1 -1
  326. package/lib/types/core/components/SidePanel.d.ts +4 -2
  327. package/lib/types/core/components/SidePanel.d.ts.map +1 -1
  328. package/lib/types/core/components/index.d.ts +0 -5
  329. package/lib/types/core/components/index.d.ts.map +1 -1
  330. package/lib/types/core/components/shadcn/badge.d.ts +2 -2
  331. package/lib/types/core/components/shadcn/breadcrumb.d.ts +1 -1
  332. package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -1
  333. package/lib/types/core/components/shadcn/button.d.ts.map +1 -1
  334. package/lib/types/core/components/shadcn/collaspible.d.ts +6 -0
  335. package/lib/types/core/components/shadcn/collaspible.d.ts.map +1 -0
  336. package/lib/types/core/components/shadcn/dropdown.d.ts +44 -0
  337. package/lib/types/core/components/shadcn/dropdown.d.ts.map +1 -0
  338. package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +1 -1
  339. package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +1 -1
  340. package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -1
  341. package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
  342. package/lib/types/core/components/shadcn/index.d.ts +4 -0
  343. package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
  344. package/lib/types/core/components/shadcn/input.d.ts +1 -1
  345. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts +2 -1
  346. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -1
  347. package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts.map +1 -1
  348. package/lib/types/core/components/shadcn/popover.d.ts +11 -3
  349. package/lib/types/core/components/shadcn/popover.d.ts.map +1 -1
  350. package/lib/types/core/components/shadcn/radioGroup.d.ts +26 -0
  351. package/lib/types/core/components/shadcn/radioGroup.d.ts.map +1 -0
  352. package/lib/types/core/components/shadcn/switch.d.ts +12 -0
  353. package/lib/types/core/components/shadcn/switch.d.ts.map +1 -0
  354. package/lib/types/core/components/shadcn/tabs.d.ts +4 -2
  355. package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -1
  356. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +3 -2
  357. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -1
  358. package/lib/types/core/components/toast/NotificationPanel.d.ts.map +1 -1
  359. package/lib/types/env/index.d.ts +8 -1
  360. package/lib/types/env/index.d.ts.map +1 -1
  361. package/lib/types/features/agent/PayloadBuilder.d.ts +31 -3
  362. package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
  363. package/lib/types/features/agent/chat/AgentRightPanel.d.ts +50 -0
  364. package/lib/types/features/agent/chat/AgentRightPanel.d.ts.map +1 -0
  365. package/lib/types/features/agent/chat/ArtifactsTab.d.ts +9 -0
  366. package/lib/types/features/agent/chat/ArtifactsTab.d.ts.map +1 -0
  367. package/lib/types/features/agent/chat/AskUserWidget.d.ts.map +1 -1
  368. package/lib/types/features/agent/chat/DocumentPanel.d.ts.map +1 -1
  369. package/lib/types/features/agent/chat/ImageLightbox.d.ts.map +1 -1
  370. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +22 -9
  371. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  372. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +3 -1
  373. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  374. package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts.map +1 -1
  375. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +12 -3
  376. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
  377. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +1 -1
  378. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -1
  379. package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
  380. package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  381. package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -1
  382. package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +1 -1
  383. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts +3 -1
  384. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +1 -1
  385. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts +5 -1
  386. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -1
  387. package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -1
  388. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +16 -1
  389. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
  390. package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -1
  391. package/lib/types/features/agent/chat/VegaLiteChart.d.ts.map +1 -1
  392. package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts.map +1 -1
  393. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts +3 -3
  394. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
  395. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts +18 -0
  396. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts.map +1 -0
  397. package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -1
  398. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts +4 -4
  399. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts.map +1 -1
  400. package/lib/types/features/agent/chat/types/document.d.ts +2 -0
  401. package/lib/types/features/agent/chat/types/document.d.ts.map +1 -1
  402. package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +1 -1
  403. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts +2 -1
  404. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -1
  405. package/lib/types/features/facets/index.d.ts +1 -1
  406. package/lib/types/features/facets/index.d.ts.map +1 -1
  407. package/lib/types/features/layout/GenericPageNavHeader.d.ts +2 -2
  408. package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -1
  409. package/lib/types/features/layout/NotFoundView.d.ts.map +1 -1
  410. package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts.map +1 -1
  411. package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +1 -1
  412. package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +1 -1
  413. package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts.map +1 -1
  414. package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -1
  415. package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +1 -1
  416. package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
  417. package/lib/types/features/store/collections/CollectionsTable.d.ts +4 -0
  418. package/lib/types/features/store/collections/CollectionsTable.d.ts.map +1 -1
  419. package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -1
  420. package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
  421. package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -1
  422. package/lib/types/features/store/collections/SharedPropsEditor.d.ts.map +1 -1
  423. package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts.map +1 -1
  424. package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -1
  425. package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
  426. package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -1
  427. package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +1 -1
  428. package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -1
  429. package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  430. package/lib/types/features/store/objects/components/DocumentIcon.d.ts +2 -1
  431. package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -1
  432. package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -1
  433. package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -1
  434. package/lib/types/features/store/objects/components/SelectDocument.d.ts +3 -1
  435. package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +1 -1
  436. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts +10 -0
  437. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts.map +1 -0
  438. package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -1
  439. package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
  440. package/lib/types/features/store/objects/components/useDownloadFile.d.ts.map +1 -1
  441. package/lib/types/features/store/objects/layout/documentLayout.d.ts +3 -2
  442. package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -1
  443. package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -1
  444. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
  445. package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +1 -1
  446. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +3 -20
  447. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
  448. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts +16 -0
  449. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts.map +1 -0
  450. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts +7 -0
  451. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts.map +1 -0
  452. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +4 -1
  453. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -1
  454. package/lib/types/features/store/objects/selection/SelectionActions.d.ts +6 -1
  455. package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
  456. package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +1 -1
  457. package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -1
  458. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +1 -1
  459. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +1 -1
  460. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
  461. package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -1
  462. package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +1 -1
  463. package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +1 -1
  464. package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
  465. package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -1
  466. package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +1 -1
  467. package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -1
  468. package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
  469. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +2 -1
  470. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +1 -1
  471. package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
  472. package/lib/types/features/store/types/SelectContentType.d.ts.map +1 -1
  473. package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +1 -1
  474. package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -1
  475. package/lib/types/features/user/UserInfo.d.ts +2 -2
  476. package/lib/types/features/user/UserInfo.d.ts.map +1 -1
  477. package/lib/types/i18n/index.d.ts +14 -0
  478. package/lib/types/i18n/index.d.ts.map +1 -0
  479. package/lib/types/i18n/instance.d.ts +5 -0
  480. package/lib/types/i18n/instance.d.ts.map +1 -0
  481. package/lib/types/layout/FullHeightLayout.d.ts +3 -0
  482. package/lib/types/layout/FullHeightLayout.d.ts.map +1 -1
  483. package/lib/types/layout/Navbar.d.ts.map +1 -1
  484. package/lib/types/layout/RegionTag.d.ts +4 -0
  485. package/lib/types/layout/RegionTag.d.ts.map +1 -0
  486. package/lib/types/layout/Sidebar.d.ts +2 -1
  487. package/lib/types/layout/Sidebar.d.ts.map +1 -1
  488. package/lib/types/layout/index.d.ts +1 -0
  489. package/lib/types/layout/index.d.ts.map +1 -1
  490. package/lib/types/router/Nav.d.ts +5 -1
  491. package/lib/types/router/Nav.d.ts.map +1 -1
  492. package/lib/types/router/NestedNavigationContext.d.ts.map +1 -1
  493. package/lib/types/router/NestedRouterProvider.d.ts.map +1 -1
  494. package/lib/types/router/Router.d.ts +2 -0
  495. package/lib/types/router/Router.d.ts.map +1 -1
  496. package/lib/types/session/UserSession.d.ts +1 -0
  497. package/lib/types/session/UserSession.d.ts.map +1 -1
  498. package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
  499. package/lib/types/session/auth/useCurrentTenant.d.ts.map +1 -1
  500. package/lib/types/shell/SplashScreen.d.ts.map +1 -1
  501. package/lib/types/shell/apps/StandaloneApp.d.ts.map +1 -1
  502. package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +1 -1
  503. package/lib/types/shell/login/GitHubSignInButton.d.ts.map +1 -1
  504. package/lib/types/shell/login/GoogleSignInButton.d.ts.map +1 -1
  505. package/lib/types/shell/login/InviteAcceptModal.d.ts.map +1 -1
  506. package/lib/types/shell/login/MicrosoftSigninButton.d.ts +1 -1
  507. package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +1 -1
  508. package/lib/types/shell/login/SigninScreen.d.ts.map +1 -1
  509. package/lib/types/shell/login/SignupForm.d.ts.map +1 -1
  510. package/lib/types/shell/login/TerminalLogin.d.ts.map +1 -1
  511. package/lib/types/shell/login/UserInfo.d.ts.map +1 -1
  512. package/lib/types/shell/login/UserSessionMenu.d.ts.map +1 -1
  513. package/lib/types/widgets/index.d.ts +0 -1
  514. package/lib/types/widgets/index.d.ts.map +1 -1
  515. package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +1 -1
  516. package/lib/types/widgets/json-view/JSONSwitcher.d.ts +6 -0
  517. package/lib/types/widgets/json-view/JSONSwitcher.d.ts.map +1 -0
  518. package/lib/types/widgets/json-view/index.d.ts +1 -0
  519. package/lib/types/widgets/json-view/index.d.ts.map +1 -1
  520. package/lib/types/widgets/markdown/ArtifactContentRenderer.d.ts.map +1 -1
  521. package/lib/types/widgets/markdown/CodeBlockContext.d.ts +21 -0
  522. package/lib/types/widgets/markdown/CodeBlockContext.d.ts.map +1 -0
  523. package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
  524. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts +0 -12
  525. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts.map +1 -1
  526. package/lib/types/widgets/markdown/index.d.ts +10 -9
  527. package/lib/types/widgets/markdown/index.d.ts.map +1 -1
  528. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +1 -1
  529. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +1 -1
  530. package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +1 -1
  531. package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -1
  532. package/lib/types/widgets/upload/DropZone.d.ts.map +1 -1
  533. package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +1 -1
  534. package/lib/types/widgets/upload/UploadSummary.d.ts.map +1 -1
  535. package/lib/vertesia-ui-core.js +1 -1
  536. package/lib/vertesia-ui-core.js.map +1 -1
  537. package/lib/vertesia-ui-env.js +1 -1
  538. package/lib/vertesia-ui-env.js.map +1 -1
  539. package/lib/vertesia-ui-features.js +1 -1
  540. package/lib/vertesia-ui-features.js.map +1 -1
  541. package/lib/vertesia-ui-i18n.js +2 -0
  542. package/lib/vertesia-ui-i18n.js.map +1 -0
  543. package/lib/vertesia-ui-layout.js +1 -1
  544. package/lib/vertesia-ui-layout.js.map +1 -1
  545. package/lib/vertesia-ui-router.js +1 -1
  546. package/lib/vertesia-ui-router.js.map +1 -1
  547. package/lib/vertesia-ui-session.js +1 -1
  548. package/lib/vertesia-ui-session.js.map +1 -1
  549. package/lib/vertesia-ui-shell.js +1 -1
  550. package/lib/vertesia-ui-shell.js.map +1 -1
  551. package/lib/vertesia-ui-widgets.js +1 -1
  552. package/lib/vertesia-ui-widgets.js.map +1 -1
  553. package/package.json +36 -22
  554. package/src/core/components/SelectList.tsx +3 -1
  555. package/src/core/components/SidePanel.tsx +5 -4
  556. package/src/core/components/index.ts +0 -5
  557. package/src/core/components/shadcn/breadcrumb.tsx +16 -9
  558. package/src/core/components/shadcn/button.tsx +5 -3
  559. package/src/core/components/shadcn/collaspible.tsx +33 -0
  560. package/src/core/components/shadcn/dropdown.tsx +309 -0
  561. package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +3 -1
  562. package/src/core/components/shadcn/filters/comboBox/SelectCombobox.tsx +3 -1
  563. package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +1 -1
  564. package/src/core/components/shadcn/filters/filter/StringListFilter.tsx +1 -1
  565. package/src/core/components/shadcn/filters/filter/dateFilter.tsx +5 -3
  566. package/src/core/components/shadcn/filters/filterBar.tsx +8 -5
  567. package/src/core/components/shadcn/index.ts +5 -1
  568. package/src/core/components/shadcn/modal/ConfirmModal.tsx +7 -3
  569. package/src/core/components/shadcn/modal/DeleteModal.tsx +5 -3
  570. package/src/core/components/shadcn/popover.tsx +12 -7
  571. package/src/core/components/shadcn/radioGroup.tsx +100 -0
  572. package/src/core/components/shadcn/switch.tsx +60 -0
  573. package/src/core/components/shadcn/tabs.tsx +29 -27
  574. package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +13 -9
  575. package/src/core/components/toast/NotificationPanel.tsx +38 -44
  576. package/src/env/index.ts +16 -3
  577. package/src/features/agent/PayloadBuilder.tsx +100 -13
  578. package/src/features/agent/chat/AgentRightPanel.tsx +424 -0
  579. package/src/features/agent/chat/ArtifactsTab.tsx +197 -0
  580. package/src/features/agent/chat/AskUserWidget.tsx +14 -8
  581. package/src/features/agent/chat/DocumentPanel.tsx +24 -9
  582. package/src/features/agent/chat/ImageLightbox.tsx +6 -3
  583. package/src/features/agent/chat/ModernAgentConversation.tsx +461 -271
  584. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +151 -55
  585. package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +6 -4
  586. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +126 -46
  587. package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +21 -31
  588. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +119 -114
  589. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +26 -9
  590. package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +9 -7
  591. package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +15 -13
  592. package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +8 -3
  593. package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +149 -49
  594. package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +9 -5
  595. package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +229 -0
  596. package/src/features/agent/chat/ModernAgentOutput/utils.ts +202 -97
  597. package/src/features/agent/chat/SlidingThinkingIndicator.tsx +5 -3
  598. package/src/features/agent/chat/VegaLiteChart.tsx +20 -8
  599. package/src/features/agent/chat/hooks/useAgentPlans.ts +3 -9
  600. package/src/features/agent/chat/hooks/useAgentStream.ts +80 -19
  601. package/src/features/agent/chat/hooks/useArtifacts.ts +151 -0
  602. package/src/features/agent/chat/hooks/useDocumentPanel.ts +65 -5
  603. package/src/features/agent/chat/hooks/useFileProcessing.ts +14 -13
  604. package/src/features/agent/chat/types/document.ts +2 -0
  605. package/src/features/errors/PanelErrorBoundary.tsx +5 -3
  606. package/src/features/facets/AgentRunnerFacetsNav.tsx +54 -35
  607. package/src/features/facets/RunsFacetsNav.tsx +6 -6
  608. package/src/features/facets/index.ts +1 -1
  609. package/src/features/layout/GenericPageNavHeader.tsx +64 -41
  610. package/src/features/layout/NotFoundView.tsx +4 -1
  611. package/src/features/magic-pdf/AnnotatedImageSlider.tsx +12 -8
  612. package/src/features/magic-pdf/DownloadPopover.tsx +11 -10
  613. package/src/features/magic-pdf/MagicPdfView.tsx +10 -7
  614. package/src/features/pdf-viewer/PdfPageSlider.tsx +10 -6
  615. package/src/features/pdf-viewer/SimplePdfViewer.tsx +5 -3
  616. package/src/features/permissions/UserPermissionsProvider.tsx +3 -1
  617. package/src/features/store/collections/BrowseCollectionView.tsx +11 -1
  618. package/src/features/store/collections/CollectionsTable.tsx +20 -12
  619. package/src/features/store/collections/CreateCollection.tsx +14 -11
  620. package/src/features/store/collections/EditCollectionView.tsx +31 -28
  621. package/src/features/store/collections/SelectCollection.tsx +50 -14
  622. package/src/features/store/collections/SharedPropsEditor.tsx +7 -5
  623. package/src/features/store/collections/SyncMemberHeadsToggle.tsx +6 -4
  624. package/src/features/store/objects/DocumentPreviewPanel.tsx +30 -28
  625. package/src/features/store/objects/DocumentSearchResults.tsx +31 -21
  626. package/src/features/store/objects/DocumentTable.tsx +11 -5
  627. package/src/features/store/objects/ExportPropertiesModal.tsx +8 -5
  628. package/src/features/store/objects/components/ContentDispositionButton.tsx +3 -1
  629. package/src/features/store/objects/components/ContentOverview.tsx +96 -50
  630. package/src/features/store/objects/components/DocumentIcon.tsx +11 -3
  631. package/src/features/store/objects/components/PropertiesEditorModal.tsx +14 -12
  632. package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +24 -37
  633. package/src/features/store/objects/components/SelectDocument.tsx +15 -6
  634. package/src/features/store/objects/components/TextEditorPanel.tsx +143 -0
  635. package/src/features/store/objects/components/VectorSearchWidget.tsx +11 -8
  636. package/src/features/store/objects/components/useContentPanelHooks.ts +4 -2
  637. package/src/features/store/objects/components/useDownloadFile.ts +12 -10
  638. package/src/features/store/objects/layout/documentLayout.tsx +16 -6
  639. package/src/features/store/objects/layout/renderers.tsx +27 -1
  640. package/src/features/store/objects/search/DocumentSearchContext.ts +3 -2
  641. package/src/features/store/objects/search/DocumentSearchProvider.tsx +3 -0
  642. package/src/features/store/objects/selection/ObjectsActionContext.tsx +26 -128
  643. package/src/features/store/objects/selection/ObjectsActionContextClass.ts +59 -0
  644. package/src/features/store/objects/selection/ObjectsActionHooks.ts +33 -0
  645. package/src/features/store/objects/selection/ObjectsActionSpec.ts +4 -1
  646. package/src/features/store/objects/selection/SelectionActions.tsx +14 -6
  647. package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +19 -14
  648. package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +9 -5
  649. package/src/features/store/objects/selection/actions/ConfirmAction.tsx +4 -3
  650. package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +24 -23
  651. package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +10 -5
  652. package/src/features/store/objects/selection/actions/RemoveFromCollectionAction.tsx +13 -9
  653. package/src/features/store/objects/selection/actions/StartWorkflowComponent.tsx +14 -8
  654. package/src/features/store/objects/upload/DocumentUploadModal.tsx +56 -55
  655. package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +4 -2
  656. package/src/features/store/objects/upload/useUploadHandler.ts +9 -7
  657. package/src/features/store/types/ContentObjectTypesSearch.tsx +10 -8
  658. package/src/features/store/types/ContentObjectTypesTable.tsx +6 -4
  659. package/src/features/store/types/CreateOrUpdateTypeModal.tsx +11 -12
  660. package/src/features/store/types/ObjectSchemaEditor.tsx +11 -9
  661. package/src/features/store/types/SelectContentType.tsx +15 -13
  662. package/src/features/store/types/SelectContentTypeModal.tsx +16 -13
  663. package/src/features/store/types/TableLayoutEditor.tsx +16 -12
  664. package/src/features/user/UserInfo.tsx +47 -56
  665. package/src/i18n/index.tsx +45 -0
  666. package/src/i18n/instance.ts +49 -0
  667. package/src/i18n/locales/ar.json +694 -0
  668. package/src/i18n/locales/de.json +662 -0
  669. package/src/i18n/locales/en.json +663 -0
  670. package/src/i18n/locales/es.json +668 -0
  671. package/src/i18n/locales/fr.json +670 -0
  672. package/src/i18n/locales/it.json +668 -0
  673. package/src/i18n/locales/ja.json +662 -0
  674. package/src/i18n/locales/ko.json +662 -0
  675. package/src/i18n/locales/pt.json +668 -0
  676. package/src/i18n/locales/ru.json +678 -0
  677. package/src/i18n/locales/tr.json +662 -0
  678. package/src/i18n/locales/zh-TW.json +662 -0
  679. package/src/i18n/locales/zh.json +662 -0
  680. package/src/layout/FullHeightLayout.tsx +8 -0
  681. package/src/layout/Navbar.tsx +4 -2
  682. package/src/layout/RegionTag.tsx +25 -0
  683. package/src/layout/Sidebar.tsx +4 -3
  684. package/src/layout/index.ts +2 -1
  685. package/src/router/HistoryNavigator.ts +10 -10
  686. package/src/router/Nav.tsx +9 -3
  687. package/src/router/NestedNavigationContext.tsx +4 -0
  688. package/src/router/NestedRouterProvider.tsx +3 -1
  689. package/src/router/Router.tsx +23 -7
  690. package/src/session/UserSession.ts +24 -0
  691. package/src/session/UserSessionProvider.tsx +4 -0
  692. package/src/session/auth/composable.ts +1 -1
  693. package/src/session/auth/firebase.ts +1 -1
  694. package/src/session/auth/useCurrentTenant.ts +3 -1
  695. package/src/shell/SplashScreen.tsx +22 -26
  696. package/src/shell/apps/StandaloneApp.tsx +9 -6
  697. package/src/shell/login/EnterpriseSigninButton.tsx +6 -4
  698. package/src/shell/login/GitHubSignInButton.tsx +3 -7
  699. package/src/shell/login/GoogleSignInButton.tsx +3 -1
  700. package/src/shell/login/InviteAcceptModal.tsx +5 -2
  701. package/src/shell/login/MicrosoftSigninButton.tsx +4 -6
  702. package/src/shell/login/SigninScreen.tsx +18 -13
  703. package/src/shell/login/SignupForm.tsx +46 -46
  704. package/src/shell/login/TerminalLogin.tsx +35 -31
  705. package/src/shell/login/UserInfo.tsx +15 -13
  706. package/src/shell/login/UserSessionMenu.tsx +28 -31
  707. package/src/widgets/index.ts +0 -1
  708. package/src/widgets/json-view/JSONCode.tsx +1 -1
  709. package/src/widgets/json-view/JSONDisplay.tsx +8 -3
  710. package/src/widgets/json-view/JSONSwitcher.tsx +24 -0
  711. package/src/widgets/json-view/JSONView.tsx +1 -1
  712. package/src/widgets/json-view/index.ts +1 -0
  713. package/src/widgets/markdown/ArtifactContentRenderer.tsx +15 -7
  714. package/src/widgets/markdown/CodeBlockContext.tsx +34 -0
  715. package/src/widgets/markdown/MarkdownRenderer.tsx +14 -13
  716. package/src/widgets/markdown/codeBlockHandlers.tsx +17 -36
  717. package/src/widgets/markdown/index.ts +27 -34
  718. package/src/widgets/markdown/remarkDirectiveHandler.ts +1 -1
  719. package/src/widgets/schema-editor/ManagedSchema.ts +6 -5
  720. package/src/widgets/schema-editor/editor/PropertyEditor.tsx +7 -3
  721. package/src/widgets/schema-editor/editor/SchemaEditor.tsx +3 -1
  722. package/src/widgets/upload/DropZone.tsx +10 -13
  723. package/src/widgets/upload/UploadResultCategory.tsx +3 -1
  724. package/src/widgets/upload/UploadSummary.tsx +13 -11
  725. package/tsconfig.dist.json +1 -1
  726. package/lib/esm/core/components/Dropdown.js +0 -16
  727. package/lib/esm/core/components/Dropdown.js.map +0 -1
  728. package/lib/esm/core/components/DropdownList.js +0 -9
  729. package/lib/esm/core/components/DropdownList.js.map +0 -1
  730. package/lib/esm/core/components/RadioGroup.js +0 -34
  731. package/lib/esm/core/components/RadioGroup.js.map +0 -1
  732. package/lib/esm/core/components/SelectStack.js +0 -8
  733. package/lib/esm/core/components/SelectStack.js.map +0 -1
  734. package/lib/esm/core/components/Switch.js +0 -12
  735. package/lib/esm/core/components/Switch.js.map +0 -1
  736. package/lib/esm/widgets/popover/Popover.js +0 -73
  737. package/lib/esm/widgets/popover/Popover.js.map +0 -1
  738. package/lib/esm/widgets/popover/context.js +0 -7
  739. package/lib/esm/widgets/popover/context.js.map +0 -1
  740. package/lib/esm/widgets/popover/index.js +0 -3
  741. package/lib/esm/widgets/popover/index.js.map +0 -1
  742. package/lib/esm/widgets/popover/slots.js +0 -22
  743. package/lib/esm/widgets/popover/slots.js.map +0 -1
  744. package/lib/types/core/components/Dropdown.d.ts +0 -15
  745. package/lib/types/core/components/Dropdown.d.ts.map +0 -1
  746. package/lib/types/core/components/DropdownList.d.ts +0 -13
  747. package/lib/types/core/components/DropdownList.d.ts.map +0 -1
  748. package/lib/types/core/components/RadioGroup.d.ts +0 -26
  749. package/lib/types/core/components/RadioGroup.d.ts.map +0 -1
  750. package/lib/types/core/components/SelectStack.d.ts +0 -13
  751. package/lib/types/core/components/SelectStack.d.ts.map +0 -1
  752. package/lib/types/core/components/Switch.d.ts +0 -11
  753. package/lib/types/core/components/Switch.d.ts.map +0 -1
  754. package/lib/types/widgets/popover/Popover.d.ts +0 -38
  755. package/lib/types/widgets/popover/Popover.d.ts.map +0 -1
  756. package/lib/types/widgets/popover/context.d.ts +0 -8
  757. package/lib/types/widgets/popover/context.d.ts.map +0 -1
  758. package/lib/types/widgets/popover/index.d.ts +0 -3
  759. package/lib/types/widgets/popover/index.d.ts.map +0 -1
  760. package/lib/types/widgets/popover/slots.d.ts +0 -5
  761. package/lib/types/widgets/popover/slots.d.ts.map +0 -1
  762. package/src/core/components/Dropdown.tsx +0 -63
  763. package/src/core/components/DropdownList.tsx +0 -72
  764. package/src/core/components/RadioGroup.tsx +0 -100
  765. package/src/core/components/SelectStack.tsx +0 -63
  766. package/src/core/components/Switch.tsx +0 -30
  767. package/src/widgets/popover/Popover.tsx +0 -171
  768. package/src/widgets/popover/context.ts +0 -15
  769. package/src/widgets/popover/index.ts +0 -2
  770. package/src/widgets/popover/slots.ts +0 -24
@@ -3,6 +3,7 @@ import { Button, cn, useToast } from "@vertesia/ui/core";
3
3
  import { MarkdownRenderer } from "@vertesia/ui/widgets";
4
4
  import { Bot, CopyIcon } from "lucide-react";
5
5
  import dayjs from "dayjs";
6
+ import { useUITranslation } from '../../../../i18n/index.js';
6
7
 
7
8
  // PERFORMANCE: Unicode cursor character - rendered inline with text
8
9
  // This avoids expensive DOM manipulation with TreeWalker on every update
@@ -12,6 +13,8 @@ const CURSOR_CHAR = "│";
12
13
  export interface StreamingMessageProps {
13
14
  text: string;
14
15
  workstreamId?: string;
16
+ /** Run ID used to resolve artifact references in chart specs */
17
+ artifactRunId?: string;
15
18
  /** Characters per second for reveal animation (default: 300) */
16
19
  revealSpeed?: number;
17
20
  /** Whether streaming has completed (triggers fast catch-up) */
@@ -47,6 +50,7 @@ export type StreamingMessageClassNames = Partial<Pick<StreamingMessageProps,
47
50
  function StreamingMessageComponent({
48
51
  text,
49
52
  workstreamId,
53
+ artifactRunId,
50
54
  revealSpeed = 300,
51
55
  isComplete = false,
52
56
  timestamp,
@@ -58,6 +62,7 @@ function StreamingMessageComponent({
58
62
  senderClassName,
59
63
  iconClassName,
60
64
  }: StreamingMessageProps) {
65
+ const { t } = useUITranslation();
61
66
  const [displayedLength, setDisplayedLength] = useState(0);
62
67
  const [throttledText, setThrottledText] = useState("");
63
68
  const animationRef = useRef<number | null>(null);
@@ -254,7 +259,7 @@ function StreamingMessageComponent({
254
259
  navigator.clipboard.writeText(text).then(() => {
255
260
  toast({
256
261
  status: "success",
257
- title: "Copied to clipboard",
262
+ title: t('agent.copiedToClipboard'),
258
263
  duration: 2000,
259
264
  });
260
265
  });
@@ -289,7 +294,7 @@ function StreamingMessageComponent({
289
294
  size="xs"
290
295
  onClick={copyToClipboard}
291
296
  className="size-6 p-0 hover:bg-gray-100 dark:hover:bg-gray-800"
292
- title="Copy message"
297
+ title={t('agent.copyMessage')}
293
298
  >
294
299
  <CopyIcon className="size-3" />
295
300
  </Button>
@@ -305,7 +310,7 @@ function StreamingMessageComponent({
305
310
  )}
306
311
  >
307
312
  <div className={cn("vprose prose prose-slate dark:prose-invert prose-p:leading-relaxed prose-p:my-3 prose-headings:font-semibold prose-headings:tracking-normal prose-headings:mt-6 prose-headings:mb-3 prose-h1:text-xl prose-h2:text-lg prose-h3:text-base prose-li:my-1 prose-ul:my-3 prose-ol:my-3 prose-table:my-5 prose-pre:my-4 prose-hr:my-6 max-w-none text-[15px] break-words", proseClassName)} style={{ overflowWrap: 'anywhere' }}>
308
- <MarkdownRenderer>
313
+ <MarkdownRenderer artifactRunId={artifactRunId}>
309
314
  {displayTextWithCursor}
310
315
  </MarkdownRenderer>
311
316
  </div>
@@ -5,6 +5,7 @@ import { MarkdownRenderer } from "@vertesia/ui/widgets";
5
5
  import dayjs from "dayjs";
6
6
  import { Bot, ChevronDown, ChevronRight, CopyIcon, CheckCircle, AlertCircle, AlertTriangle } from "lucide-react";
7
7
  import { useState, memo, useEffect, useRef } from "react";
8
+ import { useUITranslation } from '../../../../i18n/index.js';
8
9
  import { PulsatingCircle } from "../AnimatedThinkingDots";
9
10
  import { useImageLightbox } from "../ImageLightbox";
10
11
  import { useArtifactUrlCache, getArtifactCacheKey } from "../useArtifactUrlCache.js";
@@ -14,7 +15,7 @@ import { ToolExecutionStatus } from "./utils";
14
15
  const META_KEYS = new Set([
15
16
  'tool', 'tool_run_id', 'activity_group_id', 'event_class',
16
17
  'tool_iteration', 'tool_status', 'tools', 'streamed',
17
- 'files', 'outputFiles',
18
+ 'files', 'outputFiles', 'display_role', 'observation',
18
19
  ]);
19
20
 
20
21
  /** Filter out internal metadata keys, return user-facing detail entries */
@@ -56,6 +57,10 @@ export interface ToolCallGroupProps {
56
57
  showPulsatingCircle?: boolean;
57
58
  toolRunId?: string;
58
59
  toolStatus?: ToolExecutionStatus;
60
+ /** LLM reasoning text from the preceding message, shown as the group header */
61
+ preambleText?: string;
62
+ /** The preceding AgentMessage that was consumed as preamble (for key/timestamp) */
63
+ preambleMessage?: AgentMessage;
59
64
  /** Additional className for the root container */
60
65
  rootClassName?: string;
61
66
  /** Additional className for the header row */
@@ -79,6 +84,70 @@ export type ToolCallGroupClassNames = Partial<Pick<ToolCallGroupProps,
79
84
  'rootClassName' | 'headerClassName' | 'senderClassName' | 'toolSummaryClassName' |
80
85
  'toolBadgeClassName' | 'itemClassName' | 'itemHeaderClassName' | 'itemContentClassName'>>;
81
86
 
87
+ /**
88
+ * Merge messages within a tool group by tool_run_id.
89
+ * Running + completed messages for the same tool_run_id are collapsed into
90
+ * a single visual item: the running message provides display text (message_to_human),
91
+ * while the completed message provides status, files, and observation.
92
+ */
93
+ function mergeByToolRunId(messages: AgentMessage[]): AgentMessage[] {
94
+ const byRunId = new Map<string, AgentMessage[]>();
95
+ const result: AgentMessage[] = [];
96
+
97
+ for (const msg of messages) {
98
+ const runId = msg.details?.tool_run_id as string | undefined;
99
+ if (runId) {
100
+ if (!byRunId.has(runId)) {
101
+ byRunId.set(runId, []);
102
+ }
103
+ byRunId.get(runId)?.push(msg);
104
+ } else {
105
+ result.push(msg);
106
+ }
107
+ }
108
+
109
+ // For each tool_run_id group, merge into one message
110
+ for (const [_runId, msgs] of byRunId) {
111
+ if (msgs.length <= 1) {
112
+ result.push(...msgs);
113
+ continue;
114
+ }
115
+
116
+ // Sort by timestamp: earliest first
117
+ msgs.sort((a, b) => {
118
+ const ta = typeof a.timestamp === 'number' ? a.timestamp : new Date(a.timestamp).getTime();
119
+ const tb = typeof b.timestamp === 'number' ? b.timestamp : new Date(b.timestamp).getTime();
120
+ return ta - tb;
121
+ });
122
+
123
+ // Take the last message as the base (has final status), but prefer
124
+ // message text from the running message (message_to_human) if the
125
+ // completed message has no text or empty text.
126
+ const base = msgs[msgs.length - 1];
127
+ const runningMsg = msgs.find(m => (m.details as any)?.tool_status === 'running');
128
+
129
+ if (runningMsg && (!base.message || base.message.trim() === '') && runningMsg.message) {
130
+ // Merge: use running message text with completed message details
131
+ const merged: AgentMessage = {
132
+ ...base,
133
+ message: runningMsg.message,
134
+ };
135
+ result.push(merged);
136
+ } else {
137
+ result.push(base);
138
+ }
139
+ }
140
+
141
+ // Re-sort by timestamp to maintain chronological order
142
+ result.sort((a, b) => {
143
+ const ta = typeof a.timestamp === 'number' ? a.timestamp : new Date(a.timestamp).getTime();
144
+ const tb = typeof b.timestamp === 'number' ? b.timestamp : new Date(b.timestamp).getTime();
145
+ return ta - tb;
146
+ });
147
+
148
+ return result;
149
+ }
150
+
82
151
  interface ToolCallItemClassNames {
83
152
  toolBadgeClassName?: string;
84
153
  itemClassName?: string;
@@ -99,6 +168,7 @@ const isImageUrl = (url: string) => /\.(png|jpg|jpeg|gif|webp|svg)(\?|$)/i.test(
99
168
 
100
169
  // Component to render files (images inline, others as links)
101
170
  function FileDisplay({ files, className: fileClassName }: { files: string[]; className?: string }) {
171
+ const { t } = useUITranslation();
102
172
  const { openImage } = useImageLightbox();
103
173
 
104
174
  if (!files || files.length === 0) return null;
@@ -113,7 +183,7 @@ function FileDisplay({ files, className: fileClassName }: { files: string[]; cla
113
183
  key={idx}
114
184
  className="cursor-pointer"
115
185
  onClick={() => openImage(file, fileName)}
116
- title="Click to enlarge"
186
+ title={t('agent.clickToEnlarge')}
117
187
  >
118
188
  <img
119
189
  src={file}
@@ -146,8 +216,17 @@ const getFilesFromDetails = (details: { files?: string[]; outputFiles?: string[]
146
216
  return Array.isArray(files) ? files : undefined;
147
217
  };
148
218
 
219
+ const TOOL_BADGE_CLASS = "text-[10px] px-1.5 py-0.5 rounded-md bg-purple-50 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 border border-purple-200 dark:border-purple-800 font-medium";
220
+ const ASSISTANT_BADGE_CLASS = "text-[10px] px-1.5 py-0.5 rounded-md bg-gray-50 dark:bg-gray-800 text-gray-700 dark:text-gray-300 border border-gray-200 dark:border-gray-700 font-medium";
221
+
222
+ const isToolPreambleMessage = (message: AgentMessage): boolean => {
223
+ const details = message.details as { display_role?: string } | undefined;
224
+ return message.type === AgentMessageType.THOUGHT && details?.display_role === "tool_preamble";
225
+ };
226
+
149
227
  const getMessageActivityLabel = (message: AgentMessage): string => {
150
228
  const details = message.details as { tool?: string } | undefined;
229
+ if (isToolPreambleMessage(message)) return "assistant";
151
230
  if (details?.tool) return details.tool;
152
231
 
153
232
  switch (message.type) {
@@ -164,7 +243,12 @@ const getMessageActivityLabel = (message: AgentMessage): string => {
164
243
  }
165
244
  };
166
245
 
246
+ const getMessageBadgeClass = (message: AgentMessage): string => {
247
+ return isToolPreambleMessage(message) ? ASSISTANT_BADGE_CLASS : TOOL_BADGE_CLASS;
248
+ };
249
+
167
250
  function ToolCallItem({ message, isExpanded, onToggle, artifactRunId, classNames = {} }: ToolCallItemProps) {
251
+ const { t } = useUITranslation();
168
252
  const [resolvedFiles, setResolvedFiles] = useState<string[]>([]);
169
253
  const toast = useToast();
170
254
  const { client } = useUserSession();
@@ -177,6 +261,7 @@ function ToolCallItem({ message, isExpanded, onToggle, artifactRunId, classNames
177
261
 
178
262
  const details = message.details as { tool?: string; files?: string[]; outputFiles?: string[]; [key: string]: unknown } | undefined;
179
263
  const toolName = getMessageActivityLabel(message);
264
+ const badgeClass = getMessageBadgeClass(message);
180
265
  const files = getFilesFromDetails(details);
181
266
  const messageContent = typeof message.message === "string" ? message.message : "";
182
267
 
@@ -243,7 +328,7 @@ function ToolCallItem({ message, isExpanded, onToggle, artifactRunId, classNames
243
328
  navigator.clipboard.writeText(textToCopy).then(() => {
244
329
  toast({
245
330
  status: "success",
246
- title: "Copied to clipboard",
331
+ title: t('agent.copiedToClipboard'),
247
332
  duration: 2000,
248
333
  });
249
334
  });
@@ -278,7 +363,7 @@ function ToolCallItem({ message, isExpanded, onToggle, artifactRunId, classNames
278
363
  <div className="flex items-center gap-2 flex-shrink-0">
279
364
  {/* Tool name badge on the right */}
280
365
  {!isExpanded && (
281
- <span className={cn("text-[10px] px-1.5 py-0.5 rounded-md bg-purple-50 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 border border-purple-200 dark:border-purple-800 font-medium", classNames.toolBadgeClassName)}>
366
+ <span className={cn(badgeClass, classNames.toolBadgeClassName)}>
282
367
  {toolName}
283
368
  </span>
284
369
  )}
@@ -290,7 +375,7 @@ function ToolCallItem({ message, isExpanded, onToggle, artifactRunId, classNames
290
375
  copyToClipboard();
291
376
  }}
292
377
  className="text-muted opacity-0 group-hover:opacity-100 transition-opacity"
293
- title="Copy message"
378
+ title={t('agent.copyMessage')}
294
379
  >
295
380
  <CopyIcon className="size-3" />
296
381
  </Button>
@@ -312,7 +397,7 @@ function ToolCallItem({ message, isExpanded, onToggle, artifactRunId, classNames
312
397
  <div className={cn("px-4 py-2 bg-gray-50/50 dark:bg-gray-800/30", classNames.itemContentClassName)}>
313
398
  {/* Badges row: tool name + status + timestamp */}
314
399
  <div className="flex items-center gap-2 mb-2 flex-wrap">
315
- <span className={cn("text-[10px] px-1.5 py-0.5 rounded-md bg-purple-50 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 border border-purple-200 dark:border-purple-800 font-medium", classNames.toolBadgeClassName)}>
400
+ <span className={cn(badgeClass, classNames.toolBadgeClassName)}>
316
401
  {toolName}
317
402
  </span>
318
403
  {toolStatusValue && (
@@ -337,24 +422,21 @@ function ToolCallItem({ message, isExpanded, onToggle, artifactRunId, classNames
337
422
  </div>
338
423
  )}
339
424
 
340
- {messageContent && (
341
- <div className="vprose prose prose-slate dark:prose-invert prose-p:leading-relaxed prose-p:my-1.5 max-w-none text-sm">
342
- <MarkdownRenderer artifactRunId={artifactRunId}>{messageContent}</MarkdownRenderer>
343
- </div>
344
- )}
425
+ {/* Show observation from details if available and different from header text */}
426
+ {(() => {
427
+ const observation = (details as any)?.observation as string | undefined;
428
+ if (observation && observation !== messageContent) {
429
+ return (
430
+ <div className="vprose prose prose-slate dark:prose-invert prose-p:leading-relaxed prose-p:my-1.5 max-w-none text-sm">
431
+ <MarkdownRenderer artifactRunId={artifactRunId}>{observation}</MarkdownRenderer>
432
+ </div>
433
+ );
434
+ }
435
+ return null;
436
+ })()}
345
437
 
346
438
  {/* Non-image files display */}
347
439
  {nonImageFiles.length > 0 && <FileDisplay files={nonImageFiles} />}
348
-
349
- {/* Raw details — demoted to collapsible */}
350
- {details && Object.keys(details).length > 1 && (
351
- <details className="mt-2 text-xs border rounded p-1.5 bg-muted/30" onClick={(e) => e.stopPropagation()}>
352
- <summary className="cursor-pointer text-muted">Raw details</summary>
353
- <pre className="mt-2 p-2 bg-muted rounded text-xs overflow-x-auto font-mono whitespace-pre-wrap">
354
- {JSON.stringify(details, null, 2)}
355
- </pre>
356
- </details>
357
- )}
358
440
  </div>
359
441
  );
360
442
  })()}
@@ -517,10 +599,12 @@ function GroupImageDisplay({ messages, artifactRunId }: { messages: AgentMessage
517
599
  }
518
600
 
519
601
  function ToolCallGroupComponent({
520
- messages,
602
+ messages: rawMessages,
521
603
  showPulsatingCircle = false,
522
604
  toolRunId: _toolRunId,
523
605
  toolStatus,
606
+ preambleText,
607
+ preambleMessage: _preambleMessage,
524
608
  rootClassName,
525
609
  headerClassName,
526
610
  senderClassName,
@@ -530,10 +614,14 @@ function ToolCallGroupComponent({
530
614
  itemHeaderClassName,
531
615
  itemContentClassName,
532
616
  }: ToolCallGroupProps) {
617
+ // Merge messages sharing the same tool_run_id into single visual items
618
+ const messages = mergeByToolRunId(rawMessages);
619
+
533
620
  const [isCollapsed, setIsCollapsed] = useState(true);
534
621
  const [expandedItems, setExpandedItems] = useState<Set<number>>(new Set());
535
622
  const [animatingIndices, setAnimatingIndices] = useState<Set<number>>(new Set());
536
623
  const prevCountRef = useRef(messages.length);
624
+ const { t } = useUITranslation();
537
625
  const toast = useToast();
538
626
 
539
627
  // Extract workflow_run_id from messages (any message in the group should have it)
@@ -628,7 +716,7 @@ function ToolCallGroupComponent({
628
716
  navigator.clipboard.writeText(allContent).then(() => {
629
717
  toast({
630
718
  status: "success",
631
- title: "Copied all tool calls to clipboard",
719
+ title: t('agent.copiedAllToolCalls'),
632
720
  duration: 2000,
633
721
  });
634
722
  });
@@ -643,20 +731,33 @@ function ToolCallGroupComponent({
643
731
  className={cn("flex items-center justify-between px-4 py-1.5 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors", headerClassName)}
644
732
  onClick={() => setIsCollapsed(!isCollapsed)}
645
733
  >
646
- <div className="flex items-center gap-1">
734
+ <div className="flex items-center gap-1 flex-1 min-w-0">
647
735
  {renderStatusIndicator()}
648
- <span className={cn("text-xs font-medium text-muted", senderClassName)}>Agent</span>
649
- <span className={cn("text-xs text-purple-600 dark:text-purple-400 font-medium", toolSummaryClassName)}>
650
- {toolSummary}
651
- </span>
736
+ {preambleText ? (
737
+ <span className={cn("text-xs text-foreground line-clamp-2 flex-1 min-w-0", toolSummaryClassName)}>
738
+ {preambleText}
739
+ </span>
740
+ ) : (
741
+ <>
742
+ <span className={cn("text-xs font-medium text-muted", senderClassName)}>Agent</span>
743
+ <span className={cn("text-xs text-purple-600 dark:text-purple-400 font-medium", toolSummaryClassName)}>
744
+ {toolSummary}
745
+ </span>
746
+ </>
747
+ )}
652
748
  {isCollapsed ? (
653
- <ChevronRight className="size-3 text-muted" />
749
+ <ChevronRight className="size-3 text-muted flex-shrink-0" />
654
750
  ) : (
655
- <ChevronDown className="size-3 text-muted" />
751
+ <ChevronDown className="size-3 text-muted flex-shrink-0" />
656
752
  )}
657
753
  </div>
658
754
 
659
- <div className="flex items-center gap-1">
755
+ <div className="flex items-center gap-1 flex-shrink-0">
756
+ {preambleText && (
757
+ <span className={cn("text-[10px] text-purple-600 dark:text-purple-400 font-medium", toolSummaryClassName)}>
758
+ {toolSummary}
759
+ </span>
760
+ )}
660
761
  <span className="text-[11px] text-muted/70">
661
762
  {dayjs(firstTimestamp).format("HH:mm:ss")}
662
763
  {messages.length > 1 && ` - ${dayjs(lastTimestamp).format("HH:mm:ss")}`}
@@ -669,7 +770,7 @@ function ToolCallGroupComponent({
669
770
  copyAllToClipboard();
670
771
  }}
671
772
  className="text-muted/50 hover:text-muted h-5 w-5 p-0"
672
- title="Copy all tool calls"
773
+ title={t('agent.copyAllToolCalls')}
673
774
  >
674
775
  <CopyIcon className="size-3" />
675
776
  </Button>
@@ -685,6 +786,7 @@ function ToolCallGroupComponent({
685
786
  {messages.map((m, idx) => {
686
787
  const details = m.details as { tool?: string; files?: string[]; outputFiles?: string[] } | undefined;
687
788
  const toolName = getMessageActivityLabel(m);
789
+ const badgeClass = getMessageBadgeClass(m);
688
790
  const fullMessage = typeof m.message === "string" ? m.message : "";
689
791
  const isAnimating = animatingIndices.has(idx);
690
792
  const isItemExpanded = expandedItems.has(idx);
@@ -728,7 +830,7 @@ function ToolCallGroupComponent({
728
830
  </div>
729
831
  {/* Tool name badge on the right */}
730
832
  {!isItemExpanded && (
731
- <span className={cn("text-[10px] px-1.5 py-0.5 rounded-md bg-purple-50 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 border border-purple-200 dark:border-purple-800 font-medium flex-shrink-0", toolBadgeClassName)}>
833
+ <span className={cn(badgeClass, "flex-shrink-0", toolBadgeClassName)}>
732
834
  {toolName}
733
835
  </span>
734
836
  )}
@@ -743,7 +845,7 @@ function ToolCallGroupComponent({
743
845
  <div className={cn("pl-5 pr-3 pb-2 text-sm", itemContentClassName)}>
744
846
  {/* Badges row: tool name + status + timestamp */}
745
847
  <div className="flex items-center gap-2 mb-1.5 flex-wrap">
746
- <span className={cn("text-[10px] px-1.5 py-0.5 rounded-md bg-purple-50 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300 border border-purple-200 dark:border-purple-800 font-medium", toolBadgeClassName)}>
848
+ <span className={cn(badgeClass, toolBadgeClassName)}>
747
849
  {toolName}
748
850
  </span>
749
851
  {toolStatusValue && (
@@ -768,21 +870,18 @@ function ToolCallGroupComponent({
768
870
  </div>
769
871
  )}
770
872
 
771
- {fullMessage && (
772
- <div className="vprose prose prose-slate dark:prose-invert prose-p:leading-relaxed prose-p:my-1.5 max-w-none text-sm">
773
- <MarkdownRenderer artifactRunId={artifactRunId}>{fullMessage}</MarkdownRenderer>
774
- </div>
775
- )}
776
-
777
- {/* Raw details — demoted to collapsible */}
778
- {details && Object.keys(details).length > 1 && (
779
- <details className="mt-1.5 text-xs">
780
- <summary className="text-muted cursor-pointer">Raw details</summary>
781
- <pre className="mt-1 p-2 bg-muted rounded text-xs overflow-x-auto">
782
- {JSON.stringify(details, null, 2)}
783
- </pre>
784
- </details>
785
- )}
873
+ {/* Show observation from details if different from header text */}
874
+ {(() => {
875
+ const observation = (details as any)?.observation as string | undefined;
876
+ if (observation && observation !== fullMessage) {
877
+ return (
878
+ <div className="vprose prose prose-slate dark:prose-invert prose-p:leading-relaxed prose-p:my-1.5 max-w-none text-sm">
879
+ <MarkdownRenderer artifactRunId={artifactRunId}>{observation}</MarkdownRenderer>
880
+ </div>
881
+ );
882
+ }
883
+ return null;
884
+ })()}
786
885
  </div>
787
886
  );
788
887
  })()}
@@ -831,6 +930,7 @@ const ToolCallGroup = memo(ToolCallGroupComponent, (prevProps, nextProps) => {
831
930
  if (prevProps.showPulsatingCircle !== nextProps.showPulsatingCircle) return false;
832
931
  if (prevProps.toolRunId !== nextProps.toolRunId) return false;
833
932
  if (prevProps.toolStatus !== nextProps.toolStatus) return false;
933
+ if (prevProps.preambleText !== nextProps.preambleText) return false;
834
934
  if (prevProps.rootClassName !== nextProps.rootClassName) return false;
835
935
  if (prevProps.headerClassName !== nextProps.headerClassName) return false;
836
936
  if (prevProps.senderClassName !== nextProps.senderClassName) return false;
@@ -1,6 +1,8 @@
1
1
  import { AgentMessage } from "@vertesia/common";
2
2
  import { cn } from "@vertesia/ui/core";
3
3
  import { CheckCircle, Clock } from "lucide-react";
4
+ import { useUITranslation } from '../../../../i18n/index.js';
5
+ import { i18nInstance, NAMESPACE } from '../../../../i18n/instance.js';
4
6
  import { getWorkstreamId } from "./utils";
5
7
 
6
8
  interface WorkstreamTabsProps {
@@ -21,10 +23,11 @@ export default function WorkstreamTabs({
21
23
  count,
22
24
  completionStatus,
23
25
  }: WorkstreamTabsProps) {
26
+ const { t } = useUITranslation();
24
27
  // Create a new map with just the core workstreams
25
28
  const filteredWorkstreams = new Map<string, string>();
26
- filteredWorkstreams.set("all", "All Messages");
27
- filteredWorkstreams.set("main", "Main");
29
+ filteredWorkstreams.set("all", t('agent.allMessages'));
30
+ filteredWorkstreams.set("main", t('agent.main'));
28
31
 
29
32
  // Only add actual workstreams from messages (not our test workstreams)
30
33
  workstreams.forEach((name, id) => {
@@ -113,10 +116,11 @@ export function extractWorkstreams(
113
116
  messages: AgentMessage[],
114
117
  ): Map<string, string> {
115
118
  const workstreams = new Map<string, string>();
119
+ const t = i18nInstance.getFixedT(null, NAMESPACE);
116
120
 
117
121
  // Always include "all" and "main" workstreams
118
- workstreams.set("all", "All Messages");
119
- workstreams.set("main", "Main");
122
+ workstreams.set("all", t('agent.allMessages'));
123
+ workstreams.set("main", t('agent.main'));
120
124
 
121
125
  // Extract workstream IDs directly from message.workstream_id only
122
126
  messages.forEach((message) => {
@@ -135,7 +139,7 @@ export function extractWorkstreams(
135
139
  // Special case: if there's only the 'main' workstream, we want to explicitly make sure it exists
136
140
  // This ensures that both 'all' and 'main' are added if no additional workstreams are found
137
141
  if (workstreams.size <= 2 && !workstreams.has("main")) {
138
- workstreams.set("main", "Main");
142
+ workstreams.set("main", t('agent.main'));
139
143
  }
140
144
 
141
145
  console.log("Final workstreams map:", workstreams);