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

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 (783) 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 +64 -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/core/hooks/PortalContainerProvider.js +9 -3
  46. package/lib/esm/core/hooks/PortalContainerProvider.js.map +1 -1
  47. package/lib/esm/env/index.js +16 -9
  48. package/lib/esm/env/index.js.map +1 -1
  49. package/lib/esm/features/agent/PayloadBuilder.js +87 -15
  50. package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
  51. package/lib/esm/features/agent/chat/AgentRightPanel.js +159 -0
  52. package/lib/esm/features/agent/chat/AgentRightPanel.js.map +1 -0
  53. package/lib/esm/features/agent/chat/ArtifactsTab.js +69 -0
  54. package/lib/esm/features/agent/chat/ArtifactsTab.js.map +1 -0
  55. package/lib/esm/features/agent/chat/AskUserWidget.js +12 -6
  56. package/lib/esm/features/agent/chat/AskUserWidget.js.map +1 -1
  57. package/lib/esm/features/agent/chat/DocumentPanel.js +6 -3
  58. package/lib/esm/features/agent/chat/DocumentPanel.js.map +1 -1
  59. package/lib/esm/features/agent/chat/ImageLightbox.js +3 -1
  60. package/lib/esm/features/agent/chat/ImageLightbox.js.map +1 -1
  61. package/lib/esm/features/agent/chat/ModernAgentConversation.js +241 -113
  62. package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
  63. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +122 -52
  64. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  65. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +5 -3
  66. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -1
  67. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +76 -33
  68. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  69. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +82 -83
  70. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -1
  71. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +16 -14
  72. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
  73. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +20 -5
  74. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  75. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +8 -6
  76. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -1
  77. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +12 -10
  78. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -1
  79. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js +5 -3
  80. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -1
  81. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +104 -13
  82. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
  83. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +9 -5
  84. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -1
  85. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +160 -76
  86. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
  87. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +3 -1
  88. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +1 -1
  89. package/lib/esm/features/agent/chat/VegaLiteChart.js +14 -2
  90. package/lib/esm/features/agent/chat/VegaLiteChart.js.map +1 -1
  91. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js +3 -8
  92. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js.map +1 -1
  93. package/lib/esm/features/agent/chat/hooks/useAgentStream.js +79 -16
  94. package/lib/esm/features/agent/chat/hooks/useAgentStream.js.map +1 -1
  95. package/lib/esm/features/agent/chat/hooks/useArtifacts.js +108 -0
  96. package/lib/esm/features/agent/chat/hooks/useArtifacts.js.map +1 -0
  97. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js +56 -5
  98. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js.map +1 -1
  99. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js +12 -10
  100. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js.map +1 -1
  101. package/lib/esm/features/errors/PanelErrorBoundary.js +3 -1
  102. package/lib/esm/features/errors/PanelErrorBoundary.js.map +1 -1
  103. package/lib/esm/features/facets/AgentRunnerFacetsNav.js +45 -33
  104. package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +1 -1
  105. package/lib/esm/features/facets/RunsFacetsNav.js +9 -2
  106. package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -1
  107. package/lib/esm/features/facets/index.js +1 -1
  108. package/lib/esm/features/facets/index.js.map +1 -1
  109. package/lib/esm/features/layout/GenericPageNavHeader.js +40 -28
  110. package/lib/esm/features/layout/GenericPageNavHeader.js.map +1 -1
  111. package/lib/esm/features/layout/NotFoundView.js +3 -1
  112. package/lib/esm/features/layout/NotFoundView.js.map +1 -1
  113. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js +9 -5
  114. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
  115. package/lib/esm/features/magic-pdf/DownloadPopover.js +5 -4
  116. package/lib/esm/features/magic-pdf/DownloadPopover.js.map +1 -1
  117. package/lib/esm/features/magic-pdf/MagicPdfView.js +8 -5
  118. package/lib/esm/features/magic-pdf/MagicPdfView.js.map +1 -1
  119. package/lib/esm/features/pdf-viewer/PdfPageSlider.js +9 -5
  120. package/lib/esm/features/pdf-viewer/PdfPageSlider.js.map +1 -1
  121. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js +5 -3
  122. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js.map +1 -1
  123. package/lib/esm/features/permissions/UserPermissionsProvider.js +3 -1
  124. package/lib/esm/features/permissions/UserPermissionsProvider.js.map +1 -1
  125. package/lib/esm/features/store/collections/BrowseCollectionView.js +9 -1
  126. package/lib/esm/features/store/collections/BrowseCollectionView.js.map +1 -1
  127. package/lib/esm/features/store/collections/CollectionsTable.js +14 -7
  128. package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -1
  129. package/lib/esm/features/store/collections/CreateCollection.js +12 -9
  130. package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
  131. package/lib/esm/features/store/collections/EditCollectionView.js +23 -19
  132. package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
  133. package/lib/esm/features/store/collections/SelectCollection.js +25 -10
  134. package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
  135. package/lib/esm/features/store/collections/SharedPropsEditor.js +5 -3
  136. package/lib/esm/features/store/collections/SharedPropsEditor.js.map +1 -1
  137. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js +5 -3
  138. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js.map +1 -1
  139. package/lib/esm/features/store/objects/DocumentPreviewPanel.js +14 -12
  140. package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +1 -1
  141. package/lib/esm/features/store/objects/DocumentSearchResults.js +15 -5
  142. package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
  143. package/lib/esm/features/store/objects/DocumentTable.js +10 -7
  144. package/lib/esm/features/store/objects/DocumentTable.js.map +1 -1
  145. package/lib/esm/features/store/objects/ExportPropertiesModal.js +5 -2
  146. package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +1 -1
  147. package/lib/esm/features/store/objects/components/ContentDispositionButton.js +3 -1
  148. package/lib/esm/features/store/objects/components/ContentDispositionButton.js.map +1 -1
  149. package/lib/esm/features/store/objects/components/ContentOverview.js +55 -40
  150. package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
  151. package/lib/esm/features/store/objects/components/DocumentIcon.js +4 -3
  152. package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
  153. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +13 -11
  154. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
  155. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +15 -18
  156. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
  157. package/lib/esm/features/store/objects/components/SelectDocument.js +9 -6
  158. package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
  159. package/lib/esm/features/store/objects/components/TextEditorPanel.js +97 -0
  160. package/lib/esm/features/store/objects/components/TextEditorPanel.js.map +1 -0
  161. package/lib/esm/features/store/objects/components/VectorSearchWidget.js +3 -1
  162. package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
  163. package/lib/esm/features/store/objects/components/useContentPanelHooks.js +4 -2
  164. package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +1 -1
  165. package/lib/esm/features/store/objects/components/useDownloadFile.js +12 -10
  166. package/lib/esm/features/store/objects/components/useDownloadFile.js.map +1 -1
  167. package/lib/esm/features/store/objects/layout/documentLayout.js +10 -6
  168. package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
  169. package/lib/esm/features/store/objects/layout/renderers.js +10 -1
  170. package/lib/esm/features/store/objects/layout/renderers.js.map +1 -1
  171. package/lib/esm/features/store/objects/search/DocumentSearchContext.js +3 -2
  172. package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
  173. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +3 -0
  174. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +1 -1
  175. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +22 -109
  176. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +1 -1
  177. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js +50 -0
  178. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js.map +1 -0
  179. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js +27 -0
  180. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js.map +1 -0
  181. package/lib/esm/features/store/objects/selection/SelectionActions.js +10 -6
  182. package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
  183. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +17 -12
  184. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
  185. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +9 -5
  186. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -1
  187. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js +4 -2
  188. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js.map +1 -1
  189. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +24 -23
  190. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
  191. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +10 -5
  192. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -1
  193. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +13 -9
  194. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +1 -1
  195. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +14 -8
  196. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +1 -1
  197. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +42 -39
  198. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
  199. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +4 -2
  200. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -1
  201. package/lib/esm/features/store/objects/upload/useUploadHandler.js +9 -7
  202. package/lib/esm/features/store/objects/upload/useUploadHandler.js.map +1 -1
  203. package/lib/esm/features/store/types/ContentObjectTypesSearch.js +6 -4
  204. package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +1 -1
  205. package/lib/esm/features/store/types/ContentObjectTypesTable.js +3 -1
  206. package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +1 -1
  207. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +6 -7
  208. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -1
  209. package/lib/esm/features/store/types/ObjectSchemaEditor.js +9 -7
  210. package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
  211. package/lib/esm/features/store/types/SelectContentType.js +9 -7
  212. package/lib/esm/features/store/types/SelectContentType.js.map +1 -1
  213. package/lib/esm/features/store/types/SelectContentTypeModal.js +5 -2
  214. package/lib/esm/features/store/types/SelectContentTypeModal.js.map +1 -1
  215. package/lib/esm/features/store/types/TableLayoutEditor.js +6 -4
  216. package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -1
  217. package/lib/esm/features/user/UserInfo.js +40 -50
  218. package/lib/esm/features/user/UserInfo.js.map +1 -1
  219. package/lib/esm/i18n/index.js +31 -0
  220. package/lib/esm/i18n/index.js.map +1 -0
  221. package/lib/esm/i18n/instance.js +46 -0
  222. package/lib/esm/i18n/instance.js.map +1 -0
  223. package/lib/esm/i18n/locales/ar.json +696 -0
  224. package/lib/esm/i18n/locales/de.json +664 -0
  225. package/lib/esm/i18n/locales/en.json +665 -0
  226. package/lib/esm/i18n/locales/es.json +670 -0
  227. package/lib/esm/i18n/locales/fr.json +672 -0
  228. package/lib/esm/i18n/locales/it.json +670 -0
  229. package/lib/esm/i18n/locales/ja.json +664 -0
  230. package/lib/esm/i18n/locales/ko.json +664 -0
  231. package/lib/esm/i18n/locales/pt.json +670 -0
  232. package/lib/esm/i18n/locales/ru.json +680 -0
  233. package/lib/esm/i18n/locales/tr.json +664 -0
  234. package/lib/esm/i18n/locales/zh-TW.json +664 -0
  235. package/lib/esm/i18n/locales/zh.json +664 -0
  236. package/lib/esm/layout/FullHeightLayout.js +3 -0
  237. package/lib/esm/layout/FullHeightLayout.js.map +1 -1
  238. package/lib/esm/layout/Navbar.js +3 -1
  239. package/lib/esm/layout/Navbar.js.map +1 -1
  240. package/lib/esm/layout/RegionTag.js +15 -0
  241. package/lib/esm/layout/RegionTag.js.map +1 -0
  242. package/lib/esm/layout/Sidebar.js +2 -2
  243. package/lib/esm/layout/Sidebar.js.map +1 -1
  244. package/lib/esm/layout/index.js +1 -0
  245. package/lib/esm/layout/index.js.map +1 -1
  246. package/lib/esm/router/HistoryNavigator.js +1 -1
  247. package/lib/esm/router/HistoryNavigator.js.map +1 -1
  248. package/lib/esm/router/Nav.js +5 -3
  249. package/lib/esm/router/Nav.js.map +1 -1
  250. package/lib/esm/router/NestedNavigationContext.js +4 -0
  251. package/lib/esm/router/NestedNavigationContext.js.map +1 -1
  252. package/lib/esm/router/NestedRouterProvider.js +3 -1
  253. package/lib/esm/router/NestedRouterProvider.js.map +1 -1
  254. package/lib/esm/router/Router.js +21 -6
  255. package/lib/esm/router/Router.js.map +1 -1
  256. package/lib/esm/session/UserSession.js +25 -4
  257. package/lib/esm/session/UserSession.js.map +1 -1
  258. package/lib/esm/session/UserSessionProvider.js +6 -13
  259. package/lib/esm/session/UserSessionProvider.js.map +1 -1
  260. package/lib/esm/session/auth/composable.js +1 -1
  261. package/lib/esm/session/auth/composable.js.map +1 -1
  262. package/lib/esm/session/auth/domainRouting.js +17 -0
  263. package/lib/esm/session/auth/domainRouting.js.map +1 -0
  264. package/lib/esm/session/auth/firebase.js +1 -1
  265. package/lib/esm/session/auth/firebase.js.map +1 -1
  266. package/lib/esm/session/auth/useCurrentTenant.js +3 -1
  267. package/lib/esm/session/auth/useCurrentTenant.js.map +1 -1
  268. package/lib/esm/shell/SplashScreen.js +3 -7
  269. package/lib/esm/shell/SplashScreen.js.map +1 -1
  270. package/lib/esm/shell/apps/StandaloneApp.js +5 -2
  271. package/lib/esm/shell/apps/StandaloneApp.js.map +1 -1
  272. package/lib/esm/shell/login/EnterpriseSigninButton.js +5 -3
  273. package/lib/esm/shell/login/EnterpriseSigninButton.js.map +1 -1
  274. package/lib/esm/shell/login/GitHubSignInButton.js +3 -7
  275. package/lib/esm/shell/login/GitHubSignInButton.js.map +1 -1
  276. package/lib/esm/shell/login/GoogleSignInButton.js +3 -1
  277. package/lib/esm/shell/login/GoogleSignInButton.js.map +1 -1
  278. package/lib/esm/shell/login/InviteAcceptModal.js +5 -2
  279. package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -1
  280. package/lib/esm/shell/login/MicrosoftSigninButton.js +4 -6
  281. package/lib/esm/shell/login/MicrosoftSigninButton.js.map +1 -1
  282. package/lib/esm/shell/login/SigninScreen.js +6 -2
  283. package/lib/esm/shell/login/SigninScreen.js.map +1 -1
  284. package/lib/esm/shell/login/SignupForm.js +36 -34
  285. package/lib/esm/shell/login/SignupForm.js.map +1 -1
  286. package/lib/esm/shell/login/TerminalLogin.js +28 -21
  287. package/lib/esm/shell/login/TerminalLogin.js.map +1 -1
  288. package/lib/esm/shell/login/UserInfo.js +6 -4
  289. package/lib/esm/shell/login/UserInfo.js.map +1 -1
  290. package/lib/esm/shell/login/UserSessionMenu.js +3 -4
  291. package/lib/esm/shell/login/UserSessionMenu.js.map +1 -1
  292. package/lib/esm/widgets/index.js +0 -1
  293. package/lib/esm/widgets/index.js.map +1 -1
  294. package/lib/esm/widgets/json-view/JSONCode.js +1 -1
  295. package/lib/esm/widgets/json-view/JSONCode.js.map +1 -1
  296. package/lib/esm/widgets/json-view/JSONDisplay.js +6 -2
  297. package/lib/esm/widgets/json-view/JSONDisplay.js.map +1 -1
  298. package/lib/esm/widgets/json-view/JSONSwitcher.js +6 -0
  299. package/lib/esm/widgets/json-view/JSONSwitcher.js.map +1 -0
  300. package/lib/esm/widgets/json-view/JSONView.js +1 -1
  301. package/lib/esm/widgets/json-view/JSONView.js.map +1 -1
  302. package/lib/esm/widgets/json-view/index.js +1 -0
  303. package/lib/esm/widgets/json-view/index.js.map +1 -1
  304. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js +6 -5
  305. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js.map +1 -1
  306. package/lib/esm/widgets/markdown/CodeBlockContext.js +11 -0
  307. package/lib/esm/widgets/markdown/CodeBlockContext.js.map +1 -0
  308. package/lib/esm/widgets/markdown/MarkdownRenderer.js +11 -10
  309. package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +1 -1
  310. package/lib/esm/widgets/markdown/codeBlockHandlers.js +11 -12
  311. package/lib/esm/widgets/markdown/codeBlockHandlers.js.map +1 -1
  312. package/lib/esm/widgets/markdown/index.js +10 -9
  313. package/lib/esm/widgets/markdown/index.js.map +1 -1
  314. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js +0 -1
  315. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js.map +1 -1
  316. package/lib/esm/widgets/schema-editor/ManagedSchema.js +6 -5
  317. package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +1 -1
  318. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +7 -3
  319. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +1 -1
  320. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +3 -1
  321. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
  322. package/lib/esm/widgets/upload/DropZone.js +9 -11
  323. package/lib/esm/widgets/upload/DropZone.js.map +1 -1
  324. package/lib/esm/widgets/upload/UploadResultCategory.js +3 -1
  325. package/lib/esm/widgets/upload/UploadResultCategory.js.map +1 -1
  326. package/lib/esm/widgets/upload/UploadSummary.js +3 -1
  327. package/lib/esm/widgets/upload/UploadSummary.js.map +1 -1
  328. package/lib/tsconfig.tsbuildinfo +1 -1
  329. package/lib/types/core/components/SelectList.d.ts.map +1 -1
  330. package/lib/types/core/components/SidePanel.d.ts +4 -2
  331. package/lib/types/core/components/SidePanel.d.ts.map +1 -1
  332. package/lib/types/core/components/index.d.ts +0 -5
  333. package/lib/types/core/components/index.d.ts.map +1 -1
  334. package/lib/types/core/components/shadcn/badge.d.ts +2 -2
  335. package/lib/types/core/components/shadcn/breadcrumb.d.ts +1 -1
  336. package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +1 -1
  337. package/lib/types/core/components/shadcn/button.d.ts.map +1 -1
  338. package/lib/types/core/components/shadcn/collaspible.d.ts +6 -0
  339. package/lib/types/core/components/shadcn/collaspible.d.ts.map +1 -0
  340. package/lib/types/core/components/shadcn/dropdown.d.ts +51 -0
  341. package/lib/types/core/components/shadcn/dropdown.d.ts.map +1 -0
  342. package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +1 -1
  343. package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +1 -1
  344. package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -1
  345. package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
  346. package/lib/types/core/components/shadcn/index.d.ts +4 -0
  347. package/lib/types/core/components/shadcn/index.d.ts.map +1 -1
  348. package/lib/types/core/components/shadcn/input.d.ts +1 -1
  349. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts +2 -1
  350. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -1
  351. package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts.map +1 -1
  352. package/lib/types/core/components/shadcn/popover.d.ts +11 -3
  353. package/lib/types/core/components/shadcn/popover.d.ts.map +1 -1
  354. package/lib/types/core/components/shadcn/radioGroup.d.ts +26 -0
  355. package/lib/types/core/components/shadcn/radioGroup.d.ts.map +1 -0
  356. package/lib/types/core/components/shadcn/switch.d.ts +12 -0
  357. package/lib/types/core/components/shadcn/switch.d.ts.map +1 -0
  358. package/lib/types/core/components/shadcn/tabs.d.ts +4 -2
  359. package/lib/types/core/components/shadcn/tabs.d.ts.map +1 -1
  360. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +3 -2
  361. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -1
  362. package/lib/types/core/components/toast/NotificationPanel.d.ts.map +1 -1
  363. package/lib/types/core/hooks/PortalContainerProvider.d.ts +1 -0
  364. package/lib/types/core/hooks/PortalContainerProvider.d.ts.map +1 -1
  365. package/lib/types/env/index.d.ts +12 -3
  366. package/lib/types/env/index.d.ts.map +1 -1
  367. package/lib/types/features/agent/PayloadBuilder.d.ts +31 -3
  368. package/lib/types/features/agent/PayloadBuilder.d.ts.map +1 -1
  369. package/lib/types/features/agent/chat/AgentRightPanel.d.ts +50 -0
  370. package/lib/types/features/agent/chat/AgentRightPanel.d.ts.map +1 -0
  371. package/lib/types/features/agent/chat/ArtifactsTab.d.ts +9 -0
  372. package/lib/types/features/agent/chat/ArtifactsTab.d.ts.map +1 -0
  373. package/lib/types/features/agent/chat/AskUserWidget.d.ts.map +1 -1
  374. package/lib/types/features/agent/chat/DocumentPanel.d.ts.map +1 -1
  375. package/lib/types/features/agent/chat/ImageLightbox.d.ts.map +1 -1
  376. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +22 -9
  377. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  378. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +3 -1
  379. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  380. package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts.map +1 -1
  381. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +13 -4
  382. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
  383. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +1 -1
  384. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -1
  385. package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
  386. package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  387. package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -1
  388. package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +1 -1
  389. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts +3 -1
  390. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +1 -1
  391. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts +5 -1
  392. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -1
  393. package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -1
  394. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +16 -1
  395. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
  396. package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -1
  397. package/lib/types/features/agent/chat/VegaLiteChart.d.ts.map +1 -1
  398. package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts.map +1 -1
  399. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts +5 -3
  400. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
  401. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts +18 -0
  402. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts.map +1 -0
  403. package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -1
  404. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts +4 -4
  405. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts.map +1 -1
  406. package/lib/types/features/agent/chat/types/document.d.ts +2 -0
  407. package/lib/types/features/agent/chat/types/document.d.ts.map +1 -1
  408. package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +1 -1
  409. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts +2 -1
  410. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -1
  411. package/lib/types/features/facets/RunsFacetsNav.d.ts.map +1 -1
  412. package/lib/types/features/facets/index.d.ts +1 -1
  413. package/lib/types/features/facets/index.d.ts.map +1 -1
  414. package/lib/types/features/layout/GenericPageNavHeader.d.ts +2 -2
  415. package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +1 -1
  416. package/lib/types/features/layout/NotFoundView.d.ts.map +1 -1
  417. package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts.map +1 -1
  418. package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +1 -1
  419. package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +1 -1
  420. package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts.map +1 -1
  421. package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -1
  422. package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +1 -1
  423. package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +1 -1
  424. package/lib/types/features/store/collections/CollectionsTable.d.ts +4 -0
  425. package/lib/types/features/store/collections/CollectionsTable.d.ts.map +1 -1
  426. package/lib/types/features/store/collections/CreateCollection.d.ts.map +1 -1
  427. package/lib/types/features/store/collections/EditCollectionView.d.ts.map +1 -1
  428. package/lib/types/features/store/collections/SelectCollection.d.ts.map +1 -1
  429. package/lib/types/features/store/collections/SharedPropsEditor.d.ts.map +1 -1
  430. package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts.map +1 -1
  431. package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -1
  432. package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
  433. package/lib/types/features/store/objects/DocumentTable.d.ts.map +1 -1
  434. package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +1 -1
  435. package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -1
  436. package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  437. package/lib/types/features/store/objects/components/DocumentIcon.d.ts +2 -1
  438. package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +1 -1
  439. package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -1
  440. package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -1
  441. package/lib/types/features/store/objects/components/SelectDocument.d.ts +3 -1
  442. package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +1 -1
  443. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts +10 -0
  444. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts.map +1 -0
  445. package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -1
  446. package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
  447. package/lib/types/features/store/objects/components/useDownloadFile.d.ts.map +1 -1
  448. package/lib/types/features/store/objects/layout/documentLayout.d.ts +3 -2
  449. package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +1 -1
  450. package/lib/types/features/store/objects/layout/renderers.d.ts.map +1 -1
  451. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
  452. package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +1 -1
  453. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +3 -20
  454. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
  455. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts +16 -0
  456. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts.map +1 -0
  457. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts +7 -0
  458. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts.map +1 -0
  459. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +4 -1
  460. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -1
  461. package/lib/types/features/store/objects/selection/SelectionActions.d.ts +6 -1
  462. package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
  463. package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +1 -1
  464. package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -1
  465. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +1 -1
  466. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +1 -1
  467. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -1
  468. package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -1
  469. package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +1 -1
  470. package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +1 -1
  471. package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -1
  472. package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -1
  473. package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +1 -1
  474. package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -1
  475. package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
  476. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +2 -1
  477. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +1 -1
  478. package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
  479. package/lib/types/features/store/types/SelectContentType.d.ts.map +1 -1
  480. package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +1 -1
  481. package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +1 -1
  482. package/lib/types/features/user/UserInfo.d.ts +2 -2
  483. package/lib/types/features/user/UserInfo.d.ts.map +1 -1
  484. package/lib/types/i18n/index.d.ts +14 -0
  485. package/lib/types/i18n/index.d.ts.map +1 -0
  486. package/lib/types/i18n/instance.d.ts +5 -0
  487. package/lib/types/i18n/instance.d.ts.map +1 -0
  488. package/lib/types/layout/FullHeightLayout.d.ts +3 -0
  489. package/lib/types/layout/FullHeightLayout.d.ts.map +1 -1
  490. package/lib/types/layout/Navbar.d.ts.map +1 -1
  491. package/lib/types/layout/RegionTag.d.ts +4 -0
  492. package/lib/types/layout/RegionTag.d.ts.map +1 -0
  493. package/lib/types/layout/Sidebar.d.ts +2 -1
  494. package/lib/types/layout/Sidebar.d.ts.map +1 -1
  495. package/lib/types/layout/index.d.ts +1 -0
  496. package/lib/types/layout/index.d.ts.map +1 -1
  497. package/lib/types/router/Nav.d.ts +5 -1
  498. package/lib/types/router/Nav.d.ts.map +1 -1
  499. package/lib/types/router/NestedNavigationContext.d.ts.map +1 -1
  500. package/lib/types/router/NestedRouterProvider.d.ts.map +1 -1
  501. package/lib/types/router/Router.d.ts +2 -0
  502. package/lib/types/router/Router.d.ts.map +1 -1
  503. package/lib/types/session/UserSession.d.ts +1 -0
  504. package/lib/types/session/UserSession.d.ts.map +1 -1
  505. package/lib/types/session/UserSessionProvider.d.ts +0 -1
  506. package/lib/types/session/UserSessionProvider.d.ts.map +1 -1
  507. package/lib/types/session/auth/domainRouting.d.ts +3 -0
  508. package/lib/types/session/auth/domainRouting.d.ts.map +1 -0
  509. package/lib/types/session/auth/useCurrentTenant.d.ts.map +1 -1
  510. package/lib/types/shell/SplashScreen.d.ts.map +1 -1
  511. package/lib/types/shell/apps/StandaloneApp.d.ts.map +1 -1
  512. package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +1 -1
  513. package/lib/types/shell/login/GitHubSignInButton.d.ts.map +1 -1
  514. package/lib/types/shell/login/GoogleSignInButton.d.ts.map +1 -1
  515. package/lib/types/shell/login/InviteAcceptModal.d.ts.map +1 -1
  516. package/lib/types/shell/login/MicrosoftSigninButton.d.ts +1 -1
  517. package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +1 -1
  518. package/lib/types/shell/login/SigninScreen.d.ts.map +1 -1
  519. package/lib/types/shell/login/SignupForm.d.ts.map +1 -1
  520. package/lib/types/shell/login/TerminalLogin.d.ts.map +1 -1
  521. package/lib/types/shell/login/UserInfo.d.ts.map +1 -1
  522. package/lib/types/shell/login/UserSessionMenu.d.ts.map +1 -1
  523. package/lib/types/widgets/index.d.ts +0 -1
  524. package/lib/types/widgets/index.d.ts.map +1 -1
  525. package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +1 -1
  526. package/lib/types/widgets/json-view/JSONSwitcher.d.ts +6 -0
  527. package/lib/types/widgets/json-view/JSONSwitcher.d.ts.map +1 -0
  528. package/lib/types/widgets/json-view/index.d.ts +1 -0
  529. package/lib/types/widgets/json-view/index.d.ts.map +1 -1
  530. package/lib/types/widgets/markdown/ArtifactContentRenderer.d.ts.map +1 -1
  531. package/lib/types/widgets/markdown/CodeBlockContext.d.ts +21 -0
  532. package/lib/types/widgets/markdown/CodeBlockContext.d.ts.map +1 -0
  533. package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
  534. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts +0 -12
  535. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts.map +1 -1
  536. package/lib/types/widgets/markdown/index.d.ts +10 -9
  537. package/lib/types/widgets/markdown/index.d.ts.map +1 -1
  538. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +1 -1
  539. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +1 -1
  540. package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +1 -1
  541. package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -1
  542. package/lib/types/widgets/upload/DropZone.d.ts.map +1 -1
  543. package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +1 -1
  544. package/lib/types/widgets/upload/UploadSummary.d.ts.map +1 -1
  545. package/lib/vertesia-ui-core.js +1 -1
  546. package/lib/vertesia-ui-core.js.map +1 -1
  547. package/lib/vertesia-ui-env.js +1 -1
  548. package/lib/vertesia-ui-env.js.map +1 -1
  549. package/lib/vertesia-ui-features.js +1 -1
  550. package/lib/vertesia-ui-features.js.map +1 -1
  551. package/lib/vertesia-ui-i18n.js +2 -0
  552. package/lib/vertesia-ui-i18n.js.map +1 -0
  553. package/lib/vertesia-ui-layout.js +1 -1
  554. package/lib/vertesia-ui-layout.js.map +1 -1
  555. package/lib/vertesia-ui-router.js +1 -1
  556. package/lib/vertesia-ui-router.js.map +1 -1
  557. package/lib/vertesia-ui-session.js +1 -1
  558. package/lib/vertesia-ui-session.js.map +1 -1
  559. package/lib/vertesia-ui-shell.js +1 -1
  560. package/lib/vertesia-ui-shell.js.map +1 -1
  561. package/lib/vertesia-ui-widgets.js +1 -1
  562. package/lib/vertesia-ui-widgets.js.map +1 -1
  563. package/package.json +36 -22
  564. package/src/core/components/SelectList.tsx +3 -1
  565. package/src/core/components/SidePanel.tsx +5 -4
  566. package/src/core/components/index.ts +0 -5
  567. package/src/core/components/shadcn/breadcrumb.tsx +16 -9
  568. package/src/core/components/shadcn/button.tsx +5 -3
  569. package/src/core/components/shadcn/collaspible.tsx +33 -0
  570. package/src/core/components/shadcn/dropdown.tsx +325 -0
  571. package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +3 -1
  572. package/src/core/components/shadcn/filters/comboBox/SelectCombobox.tsx +3 -1
  573. package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +1 -1
  574. package/src/core/components/shadcn/filters/filter/StringListFilter.tsx +1 -1
  575. package/src/core/components/shadcn/filters/filter/dateFilter.tsx +5 -3
  576. package/src/core/components/shadcn/filters/filterBar.tsx +8 -5
  577. package/src/core/components/shadcn/index.ts +5 -1
  578. package/src/core/components/shadcn/modal/ConfirmModal.tsx +7 -3
  579. package/src/core/components/shadcn/modal/DeleteModal.tsx +5 -3
  580. package/src/core/components/shadcn/popover.tsx +12 -7
  581. package/src/core/components/shadcn/radioGroup.tsx +100 -0
  582. package/src/core/components/shadcn/switch.tsx +60 -0
  583. package/src/core/components/shadcn/tabs.tsx +29 -27
  584. package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +13 -9
  585. package/src/core/components/toast/NotificationPanel.tsx +38 -44
  586. package/src/core/hooks/PortalContainerProvider.tsx +11 -3
  587. package/src/env/index.ts +24 -13
  588. package/src/features/agent/PayloadBuilder.tsx +100 -13
  589. package/src/features/agent/chat/AgentRightPanel.tsx +424 -0
  590. package/src/features/agent/chat/ArtifactsTab.tsx +197 -0
  591. package/src/features/agent/chat/AskUserWidget.tsx +14 -8
  592. package/src/features/agent/chat/DocumentPanel.tsx +24 -9
  593. package/src/features/agent/chat/ImageLightbox.tsx +6 -3
  594. package/src/features/agent/chat/ModernAgentConversation.tsx +460 -279
  595. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +151 -55
  596. package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +6 -4
  597. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +183 -105
  598. package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +21 -31
  599. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +119 -114
  600. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +26 -9
  601. package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +9 -7
  602. package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +15 -13
  603. package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +8 -3
  604. package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +149 -49
  605. package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +9 -5
  606. package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +229 -0
  607. package/src/features/agent/chat/ModernAgentOutput/utils.ts +202 -97
  608. package/src/features/agent/chat/SlidingThinkingIndicator.tsx +5 -3
  609. package/src/features/agent/chat/VegaLiteChart.tsx +20 -8
  610. package/src/features/agent/chat/hooks/useAgentPlans.ts +3 -9
  611. package/src/features/agent/chat/hooks/useAgentStream.ts +86 -19
  612. package/src/features/agent/chat/hooks/useArtifacts.ts +151 -0
  613. package/src/features/agent/chat/hooks/useDocumentPanel.ts +65 -5
  614. package/src/features/agent/chat/hooks/useFileProcessing.ts +14 -13
  615. package/src/features/agent/chat/types/document.ts +2 -0
  616. package/src/features/errors/PanelErrorBoundary.tsx +5 -3
  617. package/src/features/facets/AgentRunnerFacetsNav.tsx +54 -35
  618. package/src/features/facets/RunsFacetsNav.tsx +15 -7
  619. package/src/features/facets/index.ts +1 -1
  620. package/src/features/layout/GenericPageNavHeader.tsx +64 -41
  621. package/src/features/layout/NotFoundView.tsx +4 -1
  622. package/src/features/magic-pdf/AnnotatedImageSlider.tsx +12 -8
  623. package/src/features/magic-pdf/DownloadPopover.tsx +11 -10
  624. package/src/features/magic-pdf/MagicPdfView.tsx +10 -7
  625. package/src/features/pdf-viewer/PdfPageSlider.tsx +10 -6
  626. package/src/features/pdf-viewer/SimplePdfViewer.tsx +5 -3
  627. package/src/features/permissions/UserPermissionsProvider.tsx +3 -1
  628. package/src/features/store/collections/BrowseCollectionView.tsx +11 -1
  629. package/src/features/store/collections/CollectionsTable.tsx +20 -12
  630. package/src/features/store/collections/CreateCollection.tsx +14 -11
  631. package/src/features/store/collections/EditCollectionView.tsx +31 -28
  632. package/src/features/store/collections/SelectCollection.tsx +50 -14
  633. package/src/features/store/collections/SharedPropsEditor.tsx +7 -5
  634. package/src/features/store/collections/SyncMemberHeadsToggle.tsx +6 -4
  635. package/src/features/store/objects/DocumentPreviewPanel.tsx +30 -28
  636. package/src/features/store/objects/DocumentSearchResults.tsx +31 -21
  637. package/src/features/store/objects/DocumentTable.tsx +11 -5
  638. package/src/features/store/objects/ExportPropertiesModal.tsx +8 -5
  639. package/src/features/store/objects/components/ContentDispositionButton.tsx +3 -1
  640. package/src/features/store/objects/components/ContentOverview.tsx +96 -50
  641. package/src/features/store/objects/components/DocumentIcon.tsx +11 -3
  642. package/src/features/store/objects/components/PropertiesEditorModal.tsx +14 -12
  643. package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +24 -37
  644. package/src/features/store/objects/components/SelectDocument.tsx +15 -6
  645. package/src/features/store/objects/components/TextEditorPanel.tsx +143 -0
  646. package/src/features/store/objects/components/VectorSearchWidget.tsx +11 -8
  647. package/src/features/store/objects/components/useContentPanelHooks.ts +4 -2
  648. package/src/features/store/objects/components/useDownloadFile.ts +12 -10
  649. package/src/features/store/objects/layout/documentLayout.tsx +16 -6
  650. package/src/features/store/objects/layout/renderers.tsx +27 -1
  651. package/src/features/store/objects/search/DocumentSearchContext.ts +3 -2
  652. package/src/features/store/objects/search/DocumentSearchProvider.tsx +3 -0
  653. package/src/features/store/objects/selection/ObjectsActionContext.tsx +26 -128
  654. package/src/features/store/objects/selection/ObjectsActionContextClass.ts +59 -0
  655. package/src/features/store/objects/selection/ObjectsActionHooks.ts +33 -0
  656. package/src/features/store/objects/selection/ObjectsActionSpec.ts +4 -1
  657. package/src/features/store/objects/selection/SelectionActions.tsx +14 -6
  658. package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +19 -14
  659. package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +9 -5
  660. package/src/features/store/objects/selection/actions/ConfirmAction.tsx +4 -3
  661. package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +24 -23
  662. package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +10 -5
  663. package/src/features/store/objects/selection/actions/RemoveFromCollectionAction.tsx +13 -9
  664. package/src/features/store/objects/selection/actions/StartWorkflowComponent.tsx +14 -8
  665. package/src/features/store/objects/upload/DocumentUploadModal.tsx +56 -55
  666. package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +4 -2
  667. package/src/features/store/objects/upload/useUploadHandler.ts +9 -7
  668. package/src/features/store/types/ContentObjectTypesSearch.tsx +10 -8
  669. package/src/features/store/types/ContentObjectTypesTable.tsx +6 -4
  670. package/src/features/store/types/CreateOrUpdateTypeModal.tsx +11 -12
  671. package/src/features/store/types/ObjectSchemaEditor.tsx +11 -9
  672. package/src/features/store/types/SelectContentType.tsx +15 -13
  673. package/src/features/store/types/SelectContentTypeModal.tsx +16 -13
  674. package/src/features/store/types/TableLayoutEditor.tsx +16 -12
  675. package/src/features/user/UserInfo.tsx +47 -56
  676. package/src/i18n/index.tsx +45 -0
  677. package/src/i18n/instance.ts +49 -0
  678. package/src/i18n/locales/ar.json +696 -0
  679. package/src/i18n/locales/de.json +664 -0
  680. package/src/i18n/locales/en.json +665 -0
  681. package/src/i18n/locales/es.json +670 -0
  682. package/src/i18n/locales/fr.json +672 -0
  683. package/src/i18n/locales/it.json +670 -0
  684. package/src/i18n/locales/ja.json +664 -0
  685. package/src/i18n/locales/ko.json +664 -0
  686. package/src/i18n/locales/pt.json +670 -0
  687. package/src/i18n/locales/ru.json +680 -0
  688. package/src/i18n/locales/tr.json +664 -0
  689. package/src/i18n/locales/zh-TW.json +664 -0
  690. package/src/i18n/locales/zh.json +664 -0
  691. package/src/layout/FullHeightLayout.tsx +8 -0
  692. package/src/layout/Navbar.tsx +4 -2
  693. package/src/layout/RegionTag.tsx +25 -0
  694. package/src/layout/Sidebar.tsx +4 -3
  695. package/src/layout/index.ts +2 -1
  696. package/src/router/HistoryNavigator.ts +10 -10
  697. package/src/router/Nav.tsx +9 -3
  698. package/src/router/NestedNavigationContext.tsx +4 -0
  699. package/src/router/NestedRouterProvider.tsx +3 -1
  700. package/src/router/Router.tsx +23 -7
  701. package/src/session/UserSession.ts +26 -5
  702. package/src/session/UserSessionProvider.tsx +6 -14
  703. package/src/session/auth/composable.ts +1 -1
  704. package/src/session/auth/domainRouting.test.ts +110 -0
  705. package/src/session/auth/domainRouting.ts +22 -0
  706. package/src/session/auth/firebase.ts +1 -1
  707. package/src/session/auth/useCurrentTenant.ts +3 -1
  708. package/src/shell/SplashScreen.tsx +22 -26
  709. package/src/shell/apps/StandaloneApp.tsx +9 -6
  710. package/src/shell/login/EnterpriseSigninButton.tsx +6 -4
  711. package/src/shell/login/GitHubSignInButton.tsx +3 -7
  712. package/src/shell/login/GoogleSignInButton.tsx +3 -1
  713. package/src/shell/login/InviteAcceptModal.tsx +5 -2
  714. package/src/shell/login/MicrosoftSigninButton.tsx +4 -6
  715. package/src/shell/login/SigninScreen.tsx +18 -13
  716. package/src/shell/login/SignupForm.tsx +46 -46
  717. package/src/shell/login/TerminalLogin.tsx +35 -31
  718. package/src/shell/login/UserInfo.tsx +15 -13
  719. package/src/shell/login/UserSessionMenu.tsx +28 -31
  720. package/src/widgets/index.ts +0 -1
  721. package/src/widgets/json-view/JSONCode.tsx +1 -1
  722. package/src/widgets/json-view/JSONDisplay.tsx +8 -3
  723. package/src/widgets/json-view/JSONSwitcher.tsx +24 -0
  724. package/src/widgets/json-view/JSONView.tsx +1 -1
  725. package/src/widgets/json-view/index.ts +1 -0
  726. package/src/widgets/markdown/ArtifactContentRenderer.tsx +15 -7
  727. package/src/widgets/markdown/CodeBlockContext.tsx +34 -0
  728. package/src/widgets/markdown/MarkdownRenderer.tsx +14 -13
  729. package/src/widgets/markdown/codeBlockHandlers.tsx +17 -36
  730. package/src/widgets/markdown/index.ts +27 -34
  731. package/src/widgets/markdown/remarkDirectiveHandler.ts +1 -1
  732. package/src/widgets/schema-editor/ManagedSchema.ts +6 -5
  733. package/src/widgets/schema-editor/editor/PropertyEditor.tsx +7 -3
  734. package/src/widgets/schema-editor/editor/SchemaEditor.tsx +3 -1
  735. package/src/widgets/upload/DropZone.tsx +10 -13
  736. package/src/widgets/upload/UploadResultCategory.tsx +3 -1
  737. package/src/widgets/upload/UploadSummary.tsx +13 -11
  738. package/tsconfig.dist.json +1 -1
  739. package/lib/esm/core/components/Dropdown.js +0 -16
  740. package/lib/esm/core/components/Dropdown.js.map +0 -1
  741. package/lib/esm/core/components/DropdownList.js +0 -9
  742. package/lib/esm/core/components/DropdownList.js.map +0 -1
  743. package/lib/esm/core/components/RadioGroup.js +0 -34
  744. package/lib/esm/core/components/RadioGroup.js.map +0 -1
  745. package/lib/esm/core/components/SelectStack.js +0 -8
  746. package/lib/esm/core/components/SelectStack.js.map +0 -1
  747. package/lib/esm/core/components/Switch.js +0 -12
  748. package/lib/esm/core/components/Switch.js.map +0 -1
  749. package/lib/esm/widgets/popover/Popover.js +0 -73
  750. package/lib/esm/widgets/popover/Popover.js.map +0 -1
  751. package/lib/esm/widgets/popover/context.js +0 -7
  752. package/lib/esm/widgets/popover/context.js.map +0 -1
  753. package/lib/esm/widgets/popover/index.js +0 -3
  754. package/lib/esm/widgets/popover/index.js.map +0 -1
  755. package/lib/esm/widgets/popover/slots.js +0 -22
  756. package/lib/esm/widgets/popover/slots.js.map +0 -1
  757. package/lib/types/core/components/Dropdown.d.ts +0 -15
  758. package/lib/types/core/components/Dropdown.d.ts.map +0 -1
  759. package/lib/types/core/components/DropdownList.d.ts +0 -13
  760. package/lib/types/core/components/DropdownList.d.ts.map +0 -1
  761. package/lib/types/core/components/RadioGroup.d.ts +0 -26
  762. package/lib/types/core/components/RadioGroup.d.ts.map +0 -1
  763. package/lib/types/core/components/SelectStack.d.ts +0 -13
  764. package/lib/types/core/components/SelectStack.d.ts.map +0 -1
  765. package/lib/types/core/components/Switch.d.ts +0 -11
  766. package/lib/types/core/components/Switch.d.ts.map +0 -1
  767. package/lib/types/widgets/popover/Popover.d.ts +0 -38
  768. package/lib/types/widgets/popover/Popover.d.ts.map +0 -1
  769. package/lib/types/widgets/popover/context.d.ts +0 -8
  770. package/lib/types/widgets/popover/context.d.ts.map +0 -1
  771. package/lib/types/widgets/popover/index.d.ts +0 -3
  772. package/lib/types/widgets/popover/index.d.ts.map +0 -1
  773. package/lib/types/widgets/popover/slots.d.ts +0 -5
  774. package/lib/types/widgets/popover/slots.d.ts.map +0 -1
  775. package/src/core/components/Dropdown.tsx +0 -63
  776. package/src/core/components/DropdownList.tsx +0 -72
  777. package/src/core/components/RadioGroup.tsx +0 -100
  778. package/src/core/components/SelectStack.tsx +0 -63
  779. package/src/core/components/Switch.tsx +0 -30
  780. package/src/widgets/popover/Popover.tsx +0 -171
  781. package/src/widgets/popover/context.ts +0 -15
  782. package/src/widgets/popover/index.ts +0 -2
  783. package/src/widgets/popover/slots.ts +0 -24
@@ -6,6 +6,7 @@ import { VegaEmbed } from 'react-vega';
6
6
  import type { View } from 'vega';
7
7
  import type { TopLevelSpec as VisualizationSpec } from 'vega-lite';
8
8
  import { cn } from '../../../core/components/libs/utils';
9
+ import { useUITranslation } from '../../../i18n/index.js';
9
10
  import { useUserSession } from '@vertesia/ui/session';
10
11
  import type { VegaLiteChartSpec } from './AgentChart';
11
12
  import { getArtifactCacheKey, getFileCacheKey, useArtifactUrlCache } from './useArtifactUrlCache';
@@ -52,6 +53,7 @@ function FullscreenDialog({
52
53
  description?: string;
53
54
  children: React.ReactNode;
54
55
  }) {
56
+ const { t } = useUITranslation();
55
57
  return (
56
58
  <DialogPrimitive.Root open={isOpen} onOpenChange={(open) => !open && onClose()}>
57
59
  <DialogPrimitive.Portal>
@@ -67,7 +69,7 @@ function FullscreenDialog({
67
69
  <button
68
70
  onClick={onClose}
69
71
  className="absolute top-3 right-3 z-10 p-2 rounded-lg bg-white/80 dark:bg-gray-800/80 backdrop-blur-sm hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors duration-150 shadow-sm"
70
- aria-label="Close fullscreen"
72
+ aria-label={t('agent.closeFullscreen')}
71
73
  >
72
74
  <X className="w-5 h-5 text-gray-600 dark:text-gray-300" />
73
75
  </button>
@@ -80,7 +82,7 @@ function FullscreenDialog({
80
82
  <div className="flex items-center justify-between px-4 sm:px-6 py-3 border-t border-gray-200 dark:border-gray-800 bg-gray-50/50 dark:bg-gray-800/50 rounded-b-xl">
81
83
  <div className="flex flex-col">
82
84
  <DialogPrimitive.Title className="text-base font-semibold text-gray-900 dark:text-gray-100">
83
- {title || 'Dashboard'}
85
+ {title || t('agent.dashboard')}
84
86
  </DialogPrimitive.Title>
85
87
  {description && (
86
88
  <DialogPrimitive.Description className="text-sm text-gray-500 dark:text-gray-400 mt-0.5">
@@ -540,6 +542,7 @@ function getDarkModeConfig(isDark: boolean): Record<string, any> {
540
542
  }
541
543
 
542
544
  export const VegaLiteChart = memo(function VegaLiteChart({ spec, artifactRunId }: VegaLiteChartProps) {
545
+ const { t } = useUITranslation();
543
546
  const { title, description, spec: vegaSpec, options } = spec;
544
547
  const [isExporting, setIsExporting] = useState(false);
545
548
  const [isCopied, setIsCopied] = useState(false);
@@ -581,6 +584,15 @@ export const VegaLiteChart = memo(function VegaLiteChart({ spec, artifactRunId }
581
584
  return;
582
585
  }
583
586
 
587
+ if (!artifactRunId) {
588
+ console.warn('[VegaLiteChart] artifact references found but artifactRunId is missing!', {
589
+ references: references.map(r => r.artifactPath),
590
+ artifactRunId,
591
+ });
592
+ } else {
593
+ console.info('[VegaLiteChart] resolving artifacts with runId:', artifactRunId, references.map(r => r.artifactPath));
594
+ }
595
+
584
596
  let cancelled = false;
585
597
  setIsLoadingArtifacts(true);
586
598
  setArtifactError(null);
@@ -903,28 +915,28 @@ export const VegaLiteChart = memo(function VegaLiteChart({ spec, artifactRunId }
903
915
  onClick={handleCopy}
904
916
  disabled={isCopied}
905
917
  className="text-xs px-2 py-1 rounded border border-gray-300 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer transition-colors disabled:opacity-50 flex items-center gap-1"
906
- title="Copy to clipboard"
918
+ title={t('agent.copyToClipboard')}
907
919
  >
908
920
  {isCopied ? <Check className="w-3 h-3" /> : <Copy className="w-3 h-3" />}
909
- {isCopied ? 'Copied' : 'Copy'}
921
+ {isCopied ? t('agent.copied') : t('agent.copy')}
910
922
  </button>
911
923
  <button
912
924
  onClick={handleExport}
913
925
  disabled={isExporting}
914
926
  className="text-xs px-2 py-1 rounded border border-gray-300 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1"
915
- title="Export as PNG"
927
+ title={t('agent.exportAsPng')}
916
928
  >
917
929
  <Download className="w-3 h-3" />
918
- {isExporting ? 'Exporting...' : 'Export'}
930
+ {isExporting ? t('agent.exporting') : t('agent.export')}
919
931
  </button>
920
932
  {showFullscreenButton && (
921
933
  <button
922
934
  onClick={toggleFullscreen}
923
935
  className="text-xs px-2 py-1 rounded border border-gray-300 dark:border-gray-700 bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700 cursor-pointer transition-colors flex items-center gap-1"
924
- title={isFullscreen ? "Exit fullscreen" : "Fullscreen"}
936
+ title={isFullscreen ? t('agent.exitFullscreen') : t('agent.fullscreen')}
925
937
  >
926
938
  {isFullscreen ? <Minimize2 className="w-3 h-3" /> : <Maximize2 className="w-3 h-3" />}
927
- {isFullscreen ? 'Exit' : 'Fullscreen'}
939
+ {isFullscreen ? t('agent.exit') : t('agent.fullscreen')}
928
940
  </button>
929
941
  )}
930
942
  </div>
@@ -42,11 +42,12 @@ export function useAgentPlans(
42
42
  setPlans([]);
43
43
  setActivePlanIndex(0);
44
44
  setWorkstreamStatusMap(new Map());
45
- setShowSlidingPanel(false);
45
+ // Keep right panel open by default on desktop sessions.
46
+ setShowSlidingPanel(!isModal);
46
47
  lastProcessedIndex.current = -1;
47
48
  knownPlanTimestamps.current.clear();
48
49
  }
49
- }, [messages.length === 0]);
50
+ }, [messages.length === 0, isModal]);
50
51
 
51
52
  // Process new messages incrementally
52
53
  useEffect(() => {
@@ -157,13 +158,6 @@ export function useAgentPlans(
157
158
  }
158
159
  }, [plans.length, showSlidingPanel]);
159
160
 
160
- // Hide panel when there are no plans
161
- useEffect(() => {
162
- if (plans.length === 0) {
163
- setShowSlidingPanel(false);
164
- }
165
- }, [plans.length]);
166
-
167
161
  // Helper to determine showInput from the latest message
168
162
  const updateShowInput = useCallback((msgs: AgentMessage[]) => {
169
163
  const lastMessage = msgs[msgs.length - 1];
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useEffect, useRef, useState } from 'react';
2
- import { AsyncExecutionResult, VertesiaClient } from '@vertesia/client';
2
+ import { VertesiaClient } from '@vertesia/client';
3
3
  import {
4
4
  AgentMessage,
5
5
  AgentMessageType,
@@ -30,6 +30,8 @@ export interface UseAgentStreamResult {
30
30
  removeOptimisticMessages: (predicate: (msg: AgentMessage) => boolean) => void;
31
31
  /** Workflow status fetched from API (RUNNING, COMPLETED, FAILED, etc.) */
32
32
  workflowStatus: string | null;
33
+ /** Temporal workflow run ID (first_workflow_run_id from AgentRun) */
34
+ workflowRunId: string | null;
33
35
  /** Server-side file processing status updates (from SYSTEM messages) */
34
36
  serverFileUpdates: Map<string, ConversationFile>;
35
37
  }
@@ -44,18 +46,19 @@ export interface UseAgentStreamResult {
44
46
  * - COMPLETE/IDLE streaming flush
45
47
  * - Timestamp-based message dedup and optimistic QUESTION replacement
46
48
  * - `isCompleted` derived state
47
- * - State reset when `run.runId` changes
49
+ * - State reset when `agentRunId` changes
48
50
  *
49
51
  * File-processing SYSTEM messages are passed through to the messages array
50
52
  * (Option A from the plan) so downstream hooks can react to them.
51
53
  */
52
54
  export function useAgentStream(
53
55
  client: VertesiaClient,
54
- run: AsyncExecutionResult,
56
+ agentRunId: string,
55
57
  ): UseAgentStreamResult {
56
58
  const [messages, setMessages] = useState<AgentMessage[]>([]);
57
59
  const [isCompleted, setIsCompleted] = useState(false);
58
60
  const [workflowStatus, setWorkflowStatus] = useState<string | null>(null);
61
+ const [workflowRunId, setWorkflowRunId] = useState<string | null>(null);
59
62
 
60
63
  // Server-side file processing status updates
61
64
  const [serverFileUpdates, setServerFileUpdates] = useState<Map<string, ConversationFile>>(new Map());
@@ -65,12 +68,24 @@ export function useAgentStream(
65
68
 
66
69
  // RAF-batched streaming updates
67
70
  const pendingStreamingChunks = useRef<Map<string, StreamingData>>(new Map());
68
- const streamingFlushScheduled = useRef<number | null>(null);
71
+ const streamingFlushScheduled = useRef<{ mode: 'raf' | 'timeout'; id: number } | null>(null);
69
72
 
70
73
  // Debug: visual flash indicator for incoming chunks
71
74
  const [debugChunkFlash, setDebugChunkFlash] = useState(false);
72
75
  const debugFlashTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);
73
76
 
77
+ const cancelScheduledStreamingFlush = useCallback(() => {
78
+ const scheduled = streamingFlushScheduled.current;
79
+ if (!scheduled) return;
80
+
81
+ if (scheduled.mode === 'raf') {
82
+ cancelAnimationFrame(scheduled.id);
83
+ } else {
84
+ clearTimeout(scheduled.id);
85
+ }
86
+ streamingFlushScheduled.current = null;
87
+ }, []);
88
+
74
89
  const flushStreamingChunks = useCallback(() => {
75
90
  if (pendingStreamingChunks.current.size > 0) {
76
91
  setStreamingMessages(new Map(pendingStreamingChunks.current));
@@ -88,22 +103,32 @@ export function useAgentStream(
88
103
 
89
104
  // Stream messages from the agent
90
105
  useEffect(() => {
91
- // Reset all state when runId changes (new agent)
106
+ // Reset all state when agentRunId changes (new agent)
107
+ console.debug('[useAgentStream] effect:start', { agentRunId });
92
108
  setMessages([]);
93
109
  setWorkflowStatus(null);
110
+ setWorkflowRunId(null);
94
111
  setStreamingMessages(new Map());
95
112
  setServerFileUpdates(new Map());
113
+ const abortController = new AbortController();
96
114
 
97
- // Check workflow status
98
- client.store.workflows.getRunDetails(run.runId, run.workflowId)
99
- .then((statusResult) => {
100
- setWorkflowStatus(statusResult.status as string);
115
+ // Check agent run status
116
+ client.agents.getInternals(agentRunId)
117
+ .then((agentRun) => {
118
+ if (!abortController.signal.aborted) {
119
+ setWorkflowStatus(agentRun.status?.toUpperCase() ?? null);
120
+ setWorkflowRunId(agentRun.first_workflow_run_id ?? null);
121
+ }
101
122
  })
102
123
  .catch((error) => {
103
- console.error('Failed to check workflow status:', error);
124
+ if (!abortController.signal.aborted) {
125
+ console.error('Failed to check agent run status:', error);
126
+ }
104
127
  });
105
128
 
106
- client.store.workflows.streamMessages(run.workflowId, run.runId, (message) => {
129
+ client.agents.streamMessages(agentRunId, (message) => {
130
+ if (abortController.signal.aborted) return;
131
+
107
132
  // Handle streaming chunks separately for real-time aggregation
108
133
  // PERFORMANCE: Batch updates using RAF instead of immediate state updates
109
134
  if (message.type === AgentMessageType.STREAMING_CHUNK) {
@@ -130,7 +155,17 @@ export function useAgentStream(
130
155
 
131
156
  // Schedule a flush if not already scheduled (~60 updates/sec max)
132
157
  if (streamingFlushScheduled.current === null) {
133
- streamingFlushScheduled.current = requestAnimationFrame(flushStreamingChunks);
158
+ if (document.hidden) {
159
+ streamingFlushScheduled.current = {
160
+ mode: 'timeout',
161
+ id: window.setTimeout(flushStreamingChunks, 16),
162
+ };
163
+ } else {
164
+ streamingFlushScheduled.current = {
165
+ mode: 'raf',
166
+ id: requestAnimationFrame(flushStreamingChunks),
167
+ };
168
+ }
134
169
  }
135
170
  return;
136
171
  }
@@ -176,7 +211,15 @@ export function useAgentStream(
176
211
  }
177
212
  }
178
213
 
179
- if (message.message) {
214
+ const hasContent = !!message.message;
215
+ const isStateMessage = [
216
+ AgentMessageType.COMPLETE,
217
+ AgentMessageType.IDLE,
218
+ AgentMessageType.TERMINATED,
219
+ AgentMessageType.REQUEST_INPUT,
220
+ ].includes(message.type);
221
+
222
+ if (hasContent || isStateMessage) {
180
223
  setMessages((prev) => {
181
224
  // Check for duplicate by timestamp
182
225
  if (prev.find((m) => m.timestamp === message.timestamp)) {
@@ -196,17 +239,40 @@ export function useAgentStream(
196
239
  return [...prev];
197
240
  });
198
241
  }
199
- });
242
+ }, undefined, abortController.signal)
243
+ .catch((error) => {
244
+ if (!abortController.signal.aborted) {
245
+ console.error('Failed to stream agent messages:', error);
246
+ }
247
+ });
200
248
 
201
249
  return () => {
250
+ console.debug('[useAgentStream] effect:cleanup', { agentRunId });
251
+ abortController.abort();
202
252
  setMessages([]);
203
- if (streamingFlushScheduled.current !== null) {
204
- cancelAnimationFrame(streamingFlushScheduled.current);
205
- streamingFlushScheduled.current = null;
206
- }
253
+ cancelScheduledStreamingFlush();
207
254
  pendingStreamingChunks.current.clear();
255
+ if (debugFlashTimeout.current) {
256
+ clearTimeout(debugFlashTimeout.current);
257
+ debugFlashTimeout.current = null;
258
+ }
259
+ };
260
+ }, [agentRunId, client.agents, flushStreamingChunks, cancelScheduledStreamingFlush]);
261
+
262
+ // Flush pending streaming chunks when tab becomes visible.
263
+ useEffect(() => {
264
+ const handleVisibilityChange = () => {
265
+ if (!document.hidden && pendingStreamingChunks.current.size > 0) {
266
+ cancelScheduledStreamingFlush();
267
+ flushStreamingChunks();
268
+ }
269
+ };
270
+
271
+ document.addEventListener('visibilitychange', handleVisibilityChange);
272
+ return () => {
273
+ document.removeEventListener('visibilitychange', handleVisibilityChange);
208
274
  };
209
- }, [run.runId, client.store.workflows, flushStreamingChunks]);
275
+ }, [flushStreamingChunks, cancelScheduledStreamingFlush]);
210
276
 
211
277
  // Add an optimistic message to the timeline
212
278
  const addOptimisticMessage = useCallback((msg: AgentMessage) => {
@@ -234,6 +300,7 @@ export function useAgentStream(
234
300
  addOptimisticMessage,
235
301
  removeOptimisticMessages,
236
302
  workflowStatus,
303
+ workflowRunId,
237
304
  serverFileUpdates,
238
305
  };
239
306
  }
@@ -0,0 +1,151 @@
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { VertesiaClient } from '@vertesia/client';
3
+
4
+ // ---------------------------------------------------------------------------
5
+ // Tree node type
6
+ // ---------------------------------------------------------------------------
7
+
8
+ export interface ArtifactTreeNode {
9
+ /** Display name — e.g. "out", "report.csv" */
10
+ name: string;
11
+ /** Full relative path from the run root — e.g. "out/subdir/report.csv" */
12
+ path: string;
13
+ isDirectory: boolean;
14
+ children: ArtifactTreeNode[];
15
+ }
16
+
17
+ // ---------------------------------------------------------------------------
18
+ // Internal files we never show to the user
19
+ // ---------------------------------------------------------------------------
20
+
21
+ const INTERNAL_FILE_PATTERNS = [
22
+ /conversation\.json$/,
23
+ /-conversation\.json$/,
24
+ /^tools\.json$/,
25
+ ];
26
+
27
+ function isInternalFile(relativePath: string): boolean {
28
+ const basename = relativePath.split('/').pop() ?? relativePath;
29
+ return INTERNAL_FILE_PATTERNS.some((re) => re.test(basename));
30
+ }
31
+
32
+ // ---------------------------------------------------------------------------
33
+ // Build a tree from a flat list of relative paths
34
+ // ---------------------------------------------------------------------------
35
+
36
+ function buildTree(paths: string[]): ArtifactTreeNode[] {
37
+ const root: ArtifactTreeNode = { name: '', path: '', isDirectory: true, children: [] };
38
+
39
+ for (const p of paths) {
40
+ const parts = p.split('/');
41
+ let current = root;
42
+ let accumulated = '';
43
+
44
+ for (let i = 0; i < parts.length; i++) {
45
+ const part = parts[i];
46
+ accumulated = accumulated ? `${accumulated}/${part}` : part;
47
+ const isLast = i === parts.length - 1;
48
+
49
+ let child = current.children.find((c) => c.name === part);
50
+ if (!child) {
51
+ child = {
52
+ name: part,
53
+ path: accumulated,
54
+ isDirectory: !isLast,
55
+ children: [],
56
+ };
57
+ current.children.push(child);
58
+ }
59
+ current = child;
60
+ }
61
+ }
62
+
63
+ // Sort: directories first, then alphabetical
64
+ const sortChildren = (node: ArtifactTreeNode) => {
65
+ node.children.sort((a, b) => {
66
+ if (a.isDirectory !== b.isDirectory) return a.isDirectory ? -1 : 1;
67
+ return a.name.localeCompare(b.name);
68
+ });
69
+ node.children.forEach(sortChildren);
70
+ };
71
+ sortChildren(root);
72
+
73
+ return root.children;
74
+ }
75
+
76
+ /**
77
+ * Extract the run-relative path from an artifact listing entry.
78
+ * The list API may return paths prefixed with the bucket name
79
+ * (e.g. "store_dev_.../agents/{runId}/files/foo.txt"), so we search
80
+ * for the "agents/{runId}/" segment anywhere in the string rather
81
+ * than assuming it starts at index 0.
82
+ */
83
+ function stripToRelativePath(fullPath: string, runId: string): string {
84
+ const prefix = `agents/${runId}/`;
85
+ const idx = fullPath.indexOf(prefix);
86
+ if (idx !== -1) return fullPath.slice(idx + prefix.length);
87
+ return fullPath.split('/').pop() ?? fullPath;
88
+ }
89
+
90
+ // ---------------------------------------------------------------------------
91
+ // Hook
92
+ // ---------------------------------------------------------------------------
93
+
94
+ export interface UseArtifactsResult {
95
+ tree: ArtifactTreeNode[];
96
+ flatFiles: string[];
97
+ isLoading: boolean;
98
+ error: string | null;
99
+ refresh: () => void;
100
+ }
101
+
102
+ export function useArtifacts(
103
+ client: VertesiaClient,
104
+ runId: string | undefined,
105
+ refreshKey = 0,
106
+ ): UseArtifactsResult {
107
+ const [flatFiles, setFlatFiles] = useState<string[]>([]);
108
+ const [isLoading, setIsLoading] = useState(false);
109
+ const [error, setError] = useState<string | null>(null);
110
+ const [manualRefreshKey, setManualRefreshKey] = useState(0);
111
+ const fetchIdRef = useRef(0);
112
+
113
+ const fetchArtifacts = useCallback(async () => {
114
+ if (!runId) return;
115
+
116
+ const fetchId = ++fetchIdRef.current;
117
+ setIsLoading(true);
118
+ setError(null);
119
+
120
+ try {
121
+ const paths = await client.files.listArtifacts(runId);
122
+ if (fetchId !== fetchIdRef.current) return; // stale
123
+
124
+ const relatives = paths
125
+ .map((p) => stripToRelativePath(p, runId))
126
+ .filter((p) => p && !isInternalFile(p));
127
+
128
+ setFlatFiles(relatives);
129
+ } catch (err) {
130
+ if (fetchId !== fetchIdRef.current) return;
131
+ setError(err instanceof Error ? err.message : 'Failed to list artifacts');
132
+ setFlatFiles([]);
133
+ } finally {
134
+ if (fetchId === fetchIdRef.current) {
135
+ setIsLoading(false);
136
+ }
137
+ }
138
+ }, [client, runId]);
139
+
140
+ useEffect(() => {
141
+ fetchArtifacts();
142
+ }, [fetchArtifacts, refreshKey, manualRefreshKey]);
143
+
144
+ const tree = useMemo(() => buildTree(flatFiles), [flatFiles]);
145
+
146
+ const refresh = useCallback(() => {
147
+ setManualRefreshKey((k) => k + 1);
148
+ }, []);
149
+
150
+ return { tree, flatFiles, isLoading, error, refresh };
151
+ }
@@ -13,6 +13,43 @@ export interface UseDocumentPanelResult {
13
13
  openDocInPanel: (docId: string) => void;
14
14
  }
15
15
 
16
+ function toNonEmptyString(value: unknown): string | undefined {
17
+ if (typeof value === 'string' && value.trim().length > 0) {
18
+ return value;
19
+ }
20
+ return undefined;
21
+ }
22
+
23
+ function getRevisionRootId(details: Record<string, unknown>, fallbackId: string): string {
24
+ const directRootId =
25
+ toNonEmptyString(details.revision_root_id) ||
26
+ toNonEmptyString(details.revision_root) ||
27
+ toNonEmptyString(details.root_document_id) ||
28
+ toNonEmptyString(details.root_id);
29
+ if (directRootId) return directRootId;
30
+
31
+ const revisionInfo = details.revision_info;
32
+ if (revisionInfo && typeof revisionInfo === 'object') {
33
+ const rootFromRevisionInfo = toNonEmptyString((revisionInfo as Record<string, unknown>).root);
34
+ if (rootFromRevisionInfo) return rootFromRevisionInfo;
35
+ }
36
+
37
+ return fallbackId;
38
+ }
39
+
40
+ function isSameRevisionChain(existing: OpenDocument, incoming: OpenDocument): boolean {
41
+ if (existing.revisionRootId && incoming.revisionRootId) {
42
+ return existing.revisionRootId === incoming.revisionRootId;
43
+ }
44
+ if (incoming.revisionRootId) {
45
+ return existing.id === incoming.revisionRootId;
46
+ }
47
+ if (existing.revisionRootId) {
48
+ return existing.revisionRootId === incoming.id;
49
+ }
50
+ return existing.id === incoming.id;
51
+ }
52
+
16
53
  /**
17
54
  * Hook that manages the document side panel.
18
55
  *
@@ -52,14 +89,37 @@ export function useDocumentPanel(messages: AgentMessage[]): UseDocumentPanelResu
52
89
  if (message.type === AgentMessageType.UPDATE && message.details) {
53
90
  const details = message.details as Record<string, unknown>;
54
91
  if (details.event_class === 'document_created' || details.event_class === 'document_updated') {
55
- const docId = details.document_id as string;
92
+ const sourceDocId = toNonEmptyString(details.document_id);
93
+ const updatedDocId = toNonEmptyString(details.updated_document_id);
94
+ const docId = updatedDocId || sourceDocId;
56
95
  const docTitle = details.title as string;
57
96
  if (docId) {
97
+ const revisionRootId = getRevisionRootId(details, sourceDocId || docId);
98
+ const incomingDoc: OpenDocument = {
99
+ id: docId,
100
+ title: docTitle || 'Document',
101
+ revisionRootId,
102
+ };
58
103
  setOpenDocuments(prev => {
59
- if (prev.some(d => d.id === docId)) return prev;
60
- return [...prev, { id: docId, title: docTitle || 'Document' }];
104
+ const existingIndex = prev.findIndex(doc => isSameRevisionChain(doc, incomingDoc));
105
+ if (existingIndex < 0) {
106
+ return [...prev, incomingDoc];
107
+ }
108
+
109
+ const existing = prev[existingIndex];
110
+ if (
111
+ existing.id === incomingDoc.id &&
112
+ existing.title === incomingDoc.title &&
113
+ existing.revisionRootId === incomingDoc.revisionRootId
114
+ ) {
115
+ return prev;
116
+ }
117
+
118
+ const next = [...prev];
119
+ next[existingIndex] = incomingDoc;
120
+ return next;
61
121
  });
62
- setActiveDocumentId(docId);
122
+ setActiveDocumentId(incomingDoc.id);
63
123
  setIsDocPanelOpen(true);
64
124
  if (details.event_class === 'document_updated') {
65
125
  setDocRefreshKey(k => k + 1);
@@ -99,7 +159,7 @@ export function useDocumentPanel(messages: AgentMessage[]): UseDocumentPanelResu
99
159
  const openDocInPanel = useCallback((docId: string) => {
100
160
  setOpenDocuments(prev => {
101
161
  if (prev.some(d => d.id === docId)) return prev;
102
- return [...prev, { id: docId, title: 'Document' }];
162
+ return [...prev, { id: docId, title: 'Document', revisionRootId: docId }];
103
163
  });
104
164
  setActiveDocumentId(docId);
105
165
  setIsDocPanelOpen(true);
@@ -1,10 +1,11 @@
1
1
  import { useCallback, useEffect, useMemo, useState } from 'react';
2
- import { AsyncExecutionResult, VertesiaClient } from '@vertesia/client';
2
+ import { VertesiaClient } from '@vertesia/client';
3
3
  import {
4
4
  ConversationFile,
5
5
  ConversationFileRef,
6
6
  FileProcessingStatus,
7
7
  } from '@vertesia/common';
8
+ import { i18nInstance, NAMESPACE } from '../../../../i18n/instance.js';
8
9
 
9
10
  export interface UseFileProcessingResult {
10
11
  processingFiles: Map<string, ConversationFile>;
@@ -20,24 +21,25 @@ type ToastFn = (opts: { status: 'success' | 'error' | 'warning' | 'info'; title:
20
21
  * Combines local optimistic upload state with server-side processing
21
22
  * status updates (from `useAgentStream.serverFileUpdates`).
22
23
  *
23
- * @param client - Vertesia client for artifact uploads and workflow signals
24
- * @param run - Current workflow execution
24
+ * @param client - Vertesia client for artifact uploads and agent signals
25
+ * @param agentRunId - Stable AgentRun ID
25
26
  * @param serverFileUpdates - Server-side file processing updates from useAgentStream
26
27
  * @param toast - Toast notification function for error display
27
28
  */
28
29
  export function useFileProcessing(
29
30
  client: VertesiaClient,
30
- run: AsyncExecutionResult,
31
+ agentRunId: string,
31
32
  serverFileUpdates: Map<string, ConversationFile>,
32
33
  toast: ToastFn,
33
34
  ): UseFileProcessingResult {
35
+ const t = i18nInstance.getFixedT(null, NAMESPACE);
34
36
  // Local optimistic file state (uploads initiated from the UI)
35
37
  const [localFiles, setLocalFiles] = useState<Map<string, ConversationFile>>(new Map());
36
38
 
37
- // Reset when run changes
39
+ // Reset when agentRunId changes
38
40
  useEffect(() => {
39
41
  setLocalFiles(new Map());
40
- }, [run.runId]);
42
+ }, [agentRunId]);
41
43
 
42
44
  // Merge local + server state (server takes precedence for same IDs)
43
45
  const processingFiles = useMemo(() => {
@@ -72,7 +74,7 @@ export function useFileProcessing(
72
74
 
73
75
  try {
74
76
  // Upload to artifact storage
75
- await client.files.uploadArtifact(run.runId, artifactPath, file);
77
+ await client.agents.uploadArtifact(agentRunId, artifactPath, file);
76
78
 
77
79
  // Update local state to processing
78
80
  setLocalFiles(prev => {
@@ -86,10 +88,9 @@ export function useFileProcessing(
86
88
  return newMap;
87
89
  });
88
90
 
89
- // Signal workflow that file was uploaded
90
- await client.store.workflows.sendSignal(
91
- run.workflowId,
92
- run.runId,
91
+ // Signal agent that file was uploaded
92
+ await client.agents.sendSignal(
93
+ agentRunId,
93
94
  'FileUploaded',
94
95
  {
95
96
  id: fileId,
@@ -114,13 +115,13 @@ export function useFileProcessing(
114
115
 
115
116
  toast({
116
117
  status: 'error',
117
- title: 'Upload Failed',
118
+ title: t('agent.uploadFailed'),
118
119
  description: error instanceof Error ? error.message : 'Failed to upload file',
119
120
  duration: 3000,
120
121
  });
121
122
  }
122
123
  }
123
- }, [client, run, toast]);
124
+ }, [client, agentRunId, toast]);
124
125
 
125
126
  return { processingFiles, hasProcessingFiles, handleFileUpload };
126
127
  }
@@ -1,4 +1,6 @@
1
1
  export interface OpenDocument {
2
2
  id: string;
3
3
  title: string;
4
+ /** Revision chain key used to dedupe multiple revisions of the same document. */
5
+ revisionRootId?: string;
4
6
  }
@@ -1,6 +1,7 @@
1
1
  import { MessageBox } from '@vertesia/ui/core';
2
2
  import { VertesiaErrorBoundary } from './VertesiaErrorBoundary';
3
3
  import { ReactNode } from 'react';
4
+ import { useUITranslation } from '../../i18n/index.js';
4
5
 
5
6
  export function PanelErrorBoundary({ children }: { children: ReactNode }) {
6
7
  return (
@@ -11,11 +12,12 @@ export function PanelErrorBoundary({ children }: { children: ReactNode }) {
11
12
  }
12
13
 
13
14
  function PanelErrorFallback({ error }: { error?: Error }) {
15
+ const { t } = useUITranslation();
14
16
  return (
15
- <MessageBox status="error" title="Sorry, something went wrong...">
17
+ <MessageBox status="error" title={t('errors.somethingWentWrong')}>
16
18
  <div className='mb-4'>
17
- Our team has been notified and will be quickly working on resolving it.
18
- If you&apos;d like to escalate or simply contact us, please email us at&nbsp;
19
+ {t('errors.teamNotifiedLine1')}
20
+ {' '}{t('errors.teamNotifiedLine2')}&nbsp;
19
21
 
20
22
  <a className='text-info' href="mailto:support@vertesiahq.com">support@vertesiahq.com</a>.
21
23
  </div>