@vertesia/ui 1.5.0-dev.20260717.131047Z → 1.5.0-dev.20260725.083715Z

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 (567) hide show
  1. package/lib/core/components/SidePanel.js +1 -1
  2. package/lib/core/components/SidePanel.js.map +1 -1
  3. package/lib/core/components/shadcn/button.d.ts +10 -3
  4. package/lib/core/components/shadcn/button.d.ts.map +1 -1
  5. package/lib/core/components/shadcn/button.js +41 -9
  6. package/lib/core/components/shadcn/button.js.map +1 -1
  7. package/lib/core/components/shadcn/filters/filterBar.d.ts.map +1 -1
  8. package/lib/core/components/shadcn/filters/filterBar.js +1 -1
  9. package/lib/core/components/shadcn/filters/filterBar.js.map +1 -1
  10. package/lib/core/components/shadcn/modal/dialog.d.ts +1 -1
  11. package/lib/core/components/shadcn/modal/dialog.d.ts.map +1 -1
  12. package/lib/core/components/shadcn/modal/dialog.js +3 -1
  13. package/lib/core/components/shadcn/modal/dialog.js.map +1 -1
  14. package/lib/core/components/shadcn/tabs.d.ts +12 -1
  15. package/lib/core/components/shadcn/tabs.d.ts.map +1 -1
  16. package/lib/core/components/shadcn/tabs.js +12 -4
  17. package/lib/core/components/shadcn/tabs.js.map +1 -1
  18. package/lib/core/components/shadcn/theme/ThemeSwitcher.js +1 -1
  19. package/lib/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -1
  20. package/lib/features/agent/chat/AgentChatPlaybackControls.d.ts.map +1 -1
  21. package/lib/features/agent/chat/AgentChatPlaybackControls.js +2 -2
  22. package/lib/features/agent/chat/AgentChatPlaybackControls.js.map +1 -1
  23. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts.map +1 -1
  24. package/lib/features/agent/chat/AgentRequestInputOverlay.js +2 -2
  25. package/lib/features/agent/chat/AgentRequestInputOverlay.js.map +1 -1
  26. package/lib/features/agent/chat/AgentRightPanel.d.ts +5 -1
  27. package/lib/features/agent/chat/AgentRightPanel.d.ts.map +1 -1
  28. package/lib/features/agent/chat/AgentRightPanel.js +2 -2
  29. package/lib/features/agent/chat/AgentRightPanel.js.map +1 -1
  30. package/lib/features/agent/chat/ArtifactsTab.d.ts +5 -1
  31. package/lib/features/agent/chat/ArtifactsTab.d.ts.map +1 -1
  32. package/lib/features/agent/chat/ArtifactsTab.js +53 -13
  33. package/lib/features/agent/chat/ArtifactsTab.js.map +1 -1
  34. package/lib/features/agent/chat/DocumentEditingActionCard.d.ts +6 -0
  35. package/lib/features/agent/chat/DocumentEditingActionCard.d.ts.map +1 -0
  36. package/lib/features/agent/chat/DocumentEditingActionCard.js +129 -0
  37. package/lib/features/agent/chat/DocumentEditingActionCard.js.map +1 -0
  38. package/lib/features/agent/chat/ImageLightbox.d.ts.map +1 -1
  39. package/lib/features/agent/chat/ImageLightbox.js +1 -1
  40. package/lib/features/agent/chat/ImageLightbox.js.map +1 -1
  41. package/lib/features/agent/chat/ModernAgentConversation.d.ts +19 -1
  42. package/lib/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  43. package/lib/features/agent/chat/ModernAgentConversation.js +125 -27
  44. package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -1
  45. package/lib/features/agent/chat/ModernAgentOutput/AgentMarkdownAnchor.d.ts +45 -0
  46. package/lib/features/agent/chat/ModernAgentOutput/AgentMarkdownAnchor.d.ts.map +1 -0
  47. package/lib/features/agent/chat/ModernAgentOutput/AgentMarkdownAnchor.js +40 -0
  48. package/lib/features/agent/chat/ModernAgentOutput/AgentMarkdownAnchor.js.map +1 -0
  49. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +3 -1
  50. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  51. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +96 -51
  52. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  53. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.d.ts +2 -1
  54. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.d.ts.map +1 -1
  55. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js +9 -5
  56. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js.map +1 -1
  57. package/lib/features/agent/chat/ModernAgentOutput/CollapsibleAgentMarkdown.d.ts +25 -0
  58. package/lib/features/agent/chat/ModernAgentOutput/CollapsibleAgentMarkdown.d.ts.map +1 -0
  59. package/lib/features/agent/chat/ModernAgentOutput/CollapsibleAgentMarkdown.js +33 -0
  60. package/lib/features/agent/chat/ModernAgentOutput/CollapsibleAgentMarkdown.js.map +1 -0
  61. package/lib/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
  62. package/lib/features/agent/chat/ModernAgentOutput/Header.js +4 -2
  63. package/lib/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  64. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
  65. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js +2 -2
  66. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
  67. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +3 -1
  68. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  69. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +23 -24
  70. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  71. package/lib/features/agent/chat/ModernAgentOutput/ResourceChangeSummary.d.ts +14 -0
  72. package/lib/features/agent/chat/ModernAgentOutput/ResourceChangeSummary.d.ts.map +1 -0
  73. package/lib/features/agent/chat/ModernAgentOutput/ResourceChangeSummary.js +21 -0
  74. package/lib/features/agent/chat/ModernAgentOutput/ResourceChangeSummary.js.map +1 -0
  75. package/lib/features/agent/chat/ModernAgentOutput/ResourceChip.d.ts +30 -0
  76. package/lib/features/agent/chat/ModernAgentOutput/ResourceChip.d.ts.map +1 -0
  77. package/lib/features/agent/chat/ModernAgentOutput/ResourceChip.js +53 -0
  78. package/lib/features/agent/chat/ModernAgentOutput/ResourceChip.js.map +1 -0
  79. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -1
  80. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +21 -2
  81. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -1
  82. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts +6 -0
  83. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts.map +1 -1
  84. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js +15 -1
  85. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js.map +1 -1
  86. package/lib/features/agent/chat/ModernAgentOutput/resourceLinks.d.ts +6 -0
  87. package/lib/features/agent/chat/ModernAgentOutput/resourceLinks.d.ts.map +1 -0
  88. package/lib/features/agent/chat/ModernAgentOutput/resourceLinks.js +29 -0
  89. package/lib/features/agent/chat/ModernAgentOutput/resourceLinks.js.map +1 -0
  90. package/lib/features/agent/chat/ModernAgentOutput/resourceSummary.d.ts +33 -0
  91. package/lib/features/agent/chat/ModernAgentOutput/resourceSummary.d.ts.map +1 -0
  92. package/lib/features/agent/chat/ModernAgentOutput/resourceSummary.js +129 -0
  93. package/lib/features/agent/chat/ModernAgentOutput/resourceSummary.js.map +1 -0
  94. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts +7 -0
  95. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -1
  96. package/lib/features/agent/chat/ModernAgentOutput/utils.js +11 -1
  97. package/lib/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
  98. package/lib/features/agent/chat/hooks/useAgentStream.d.ts +1 -1
  99. package/lib/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
  100. package/lib/features/agent/chat/hooks/useAgentStream.js +24 -9
  101. package/lib/features/agent/chat/hooks/useAgentStream.js.map +1 -1
  102. package/lib/features/agent/chat/index.d.ts +2 -1
  103. package/lib/features/agent/chat/index.d.ts.map +1 -1
  104. package/lib/features/agent/chat/index.js +3 -0
  105. package/lib/features/agent/chat/index.js.map +1 -1
  106. package/lib/features/environment/SelectEnvironment.d.ts +28 -0
  107. package/lib/features/environment/SelectEnvironment.d.ts.map +1 -0
  108. package/lib/features/environment/SelectEnvironment.js +97 -0
  109. package/lib/features/environment/SelectEnvironment.js.map +1 -0
  110. package/lib/features/environment/index.d.ts +2 -0
  111. package/lib/features/environment/index.d.ts.map +1 -0
  112. package/lib/features/environment/index.js +2 -0
  113. package/lib/features/environment/index.js.map +1 -0
  114. package/lib/features/index.d.ts +2 -0
  115. package/lib/features/index.d.ts.map +1 -1
  116. package/lib/features/index.js +2 -0
  117. package/lib/features/index.js.map +1 -1
  118. package/lib/features/magic-pdf/AnnotatedImageSlider.js +12 -12
  119. package/lib/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
  120. package/lib/features/magic-pdf/DownloadPopover.d.ts.map +1 -1
  121. package/lib/features/magic-pdf/DownloadPopover.js +3 -17
  122. package/lib/features/magic-pdf/DownloadPopover.js.map +1 -1
  123. package/lib/features/magic-pdf/ExtractedContentView.js +2 -6
  124. package/lib/features/magic-pdf/ExtractedContentView.js.map +1 -1
  125. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.d.ts +25 -0
  126. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.d.ts.map +1 -0
  127. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.js +42 -0
  128. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.js.map +1 -0
  129. package/lib/features/magic-pdf/GroundedExtractionView.d.ts +27 -0
  130. package/lib/features/magic-pdf/GroundedExtractionView.d.ts.map +1 -0
  131. package/lib/features/magic-pdf/GroundedExtractionView.js +377 -0
  132. package/lib/features/magic-pdf/GroundedExtractionView.js.map +1 -0
  133. package/lib/features/magic-pdf/MagicPdfProvider.d.ts +0 -2
  134. package/lib/features/magic-pdf/MagicPdfProvider.d.ts.map +1 -1
  135. package/lib/features/magic-pdf/MagicPdfProvider.js +15 -42
  136. package/lib/features/magic-pdf/MagicPdfProvider.js.map +1 -1
  137. package/lib/features/magic-pdf/MagicPdfView.d.ts.map +1 -1
  138. package/lib/features/magic-pdf/MagicPdfView.js +2 -19
  139. package/lib/features/magic-pdf/MagicPdfView.js.map +1 -1
  140. package/lib/features/magic-pdf/index.d.ts +1 -0
  141. package/lib/features/magic-pdf/index.d.ts.map +1 -1
  142. package/lib/features/magic-pdf/index.js +1 -0
  143. package/lib/features/magic-pdf/index.js.map +1 -1
  144. package/lib/features/magic-pdf/types.d.ts +1 -1
  145. package/lib/features/magic-pdf/types.d.ts.map +1 -1
  146. package/lib/features/oauth/McpConnectionsButton.d.ts.map +1 -1
  147. package/lib/features/oauth/McpConnectionsButton.js +2 -2
  148. package/lib/features/oauth/McpConnectionsButton.js.map +1 -1
  149. package/lib/features/oauth/McpConnectionsDialog.d.ts.map +1 -1
  150. package/lib/features/oauth/McpConnectionsDialog.js +1 -1
  151. package/lib/features/oauth/McpConnectionsDialog.js.map +1 -1
  152. package/lib/features/oauth/RemoteMcpConnectionButton.d.ts.map +1 -1
  153. package/lib/features/oauth/RemoteMcpConnectionButton.js +1 -1
  154. package/lib/features/oauth/RemoteMcpConnectionButton.js.map +1 -1
  155. package/lib/features/pdf-viewer/PdfPageSlider.js +2 -2
  156. package/lib/features/pdf-viewer/PdfPageSlider.js.map +1 -1
  157. package/lib/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -1
  158. package/lib/features/pdf-viewer/SimplePdfViewer.js +3 -3
  159. package/lib/features/pdf-viewer/SimplePdfViewer.js.map +1 -1
  160. package/lib/features/permissions/UserPermissionsProvider.js +1 -1
  161. package/lib/features/permissions/UserPermissionsProvider.js.map +1 -1
  162. package/lib/features/store/objects/DocumentQuickFilter.d.ts.map +1 -1
  163. package/lib/features/store/objects/DocumentQuickFilter.js +5 -5
  164. package/lib/features/store/objects/DocumentQuickFilter.js.map +1 -1
  165. package/lib/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
  166. package/lib/features/store/objects/DocumentSearchResults.js +4 -4
  167. package/lib/features/store/objects/DocumentSearchResults.js.map +1 -1
  168. package/lib/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -1
  169. package/lib/features/store/objects/components/ContentDispositionButton.js +1 -1
  170. package/lib/features/store/objects/components/ContentDispositionButton.js.map +1 -1
  171. package/lib/features/store/objects/components/ContentOverview.d.ts +2 -1
  172. package/lib/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  173. package/lib/features/store/objects/components/ContentOverview.js +159 -31
  174. package/lib/features/store/objects/components/ContentOverview.js.map +1 -1
  175. package/lib/features/store/objects/components/DocumentEditingConfigurationSelector.d.ts +16 -0
  176. package/lib/features/store/objects/components/DocumentEditingConfigurationSelector.d.ts.map +1 -0
  177. package/lib/features/store/objects/components/DocumentEditingConfigurationSelector.js +116 -0
  178. package/lib/features/store/objects/components/DocumentEditingConfigurationSelector.js.map +1 -0
  179. package/lib/features/store/objects/components/DocumentEditingLockStatus.d.ts +7 -0
  180. package/lib/features/store/objects/components/DocumentEditingLockStatus.d.ts.map +1 -0
  181. package/lib/features/store/objects/components/DocumentEditingLockStatus.js +13 -0
  182. package/lib/features/store/objects/components/DocumentEditingLockStatus.js.map +1 -0
  183. package/lib/features/store/objects/components/DocumentEditingPanel.d.ts +48 -0
  184. package/lib/features/store/objects/components/DocumentEditingPanel.d.ts.map +1 -0
  185. package/lib/features/store/objects/components/DocumentEditingPanel.js +720 -0
  186. package/lib/features/store/objects/components/DocumentEditingPanel.js.map +1 -0
  187. package/lib/features/store/objects/components/DocumentIcon.js +1 -1
  188. package/lib/features/store/objects/components/TextEditorPanel.d.ts.map +1 -1
  189. package/lib/features/store/objects/components/TextEditorPanel.js +22 -9
  190. package/lib/features/store/objects/components/TextEditorPanel.js.map +1 -1
  191. package/lib/features/store/objects/components/VectorSearchWidget.js +1 -1
  192. package/lib/features/store/objects/components/VectorSearchWidget.js.map +1 -1
  193. package/lib/features/store/objects/components/documentArtifactRefs.d.ts +26 -0
  194. package/lib/features/store/objects/components/documentArtifactRefs.d.ts.map +1 -0
  195. package/lib/features/store/objects/components/documentArtifactRefs.js +52 -0
  196. package/lib/features/store/objects/components/documentArtifactRefs.js.map +1 -0
  197. package/lib/features/store/objects/components/documentEditingAgentConfig.d.ts +4 -0
  198. package/lib/features/store/objects/components/documentEditingAgentConfig.d.ts.map +1 -0
  199. package/lib/features/store/objects/components/documentEditingAgentConfig.js +40 -0
  200. package/lib/features/store/objects/components/documentEditingAgentConfig.js.map +1 -0
  201. package/lib/features/store/objects/components/documentEditingPrompts.d.ts +3 -0
  202. package/lib/features/store/objects/components/documentEditingPrompts.d.ts.map +1 -0
  203. package/lib/features/store/objects/components/documentEditingPrompts.js +13 -0
  204. package/lib/features/store/objects/components/documentEditingPrompts.js.map +1 -0
  205. package/lib/features/store/objects/components/documentEditingRun.d.ts +27 -0
  206. package/lib/features/store/objects/components/documentEditingRun.d.ts.map +1 -0
  207. package/lib/features/store/objects/components/documentEditingRun.js +126 -0
  208. package/lib/features/store/objects/components/documentEditingRun.js.map +1 -0
  209. package/lib/features/store/objects/components/documentEditingTarget.d.ts +20 -0
  210. package/lib/features/store/objects/components/documentEditingTarget.d.ts.map +1 -0
  211. package/lib/features/store/objects/components/documentEditingTarget.js +40 -0
  212. package/lib/features/store/objects/components/documentEditingTarget.js.map +1 -0
  213. package/lib/features/store/objects/components/index.d.ts +1 -0
  214. package/lib/features/store/objects/components/index.d.ts.map +1 -1
  215. package/lib/features/store/objects/components/index.js +1 -0
  216. package/lib/features/store/objects/components/index.js.map +1 -1
  217. package/lib/features/store/objects/components/useContentPanelHooks.d.ts +6 -3
  218. package/lib/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
  219. package/lib/features/store/objects/components/useContentPanelHooks.js +57 -37
  220. package/lib/features/store/objects/components/useContentPanelHooks.js.map +1 -1
  221. package/lib/features/store/objects/components/useDownloadFile.d.ts +2 -1
  222. package/lib/features/store/objects/components/useDownloadFile.d.ts.map +1 -1
  223. package/lib/features/store/objects/components/useDownloadFile.js +3 -0
  224. package/lib/features/store/objects/components/useDownloadFile.js.map +1 -1
  225. package/lib/features/store/objects/layout/renderers.d.ts.map +1 -1
  226. package/lib/features/store/objects/layout/renderers.js +2 -2
  227. package/lib/features/store/objects/layout/renderers.js.map +1 -1
  228. package/lib/features/store/objects/selection/SelectionActions.js +1 -1
  229. package/lib/features/store/objects/selection/SelectionActions.js.map +1 -1
  230. package/lib/features/store/objects/selection/actions/StartWorkflowButton.js +1 -1
  231. package/lib/features/store/objects/selection/actions/StartWorkflowButton.js.map +1 -1
  232. package/lib/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
  233. package/lib/features/store/types/ContentObjectTypesTable.js +4 -4
  234. package/lib/features/store/types/ContentObjectTypesTable.js.map +1 -1
  235. package/lib/features/store/types/IntakePolicyEditor.d.ts +15 -0
  236. package/lib/features/store/types/IntakePolicyEditor.d.ts.map +1 -0
  237. package/lib/features/store/types/IntakePolicyEditor.js +455 -0
  238. package/lib/features/store/types/IntakePolicyEditor.js.map +1 -0
  239. package/lib/features/store/types/IntakePolicyForm.d.ts +11 -0
  240. package/lib/features/store/types/IntakePolicyForm.d.ts.map +1 -0
  241. package/lib/features/store/types/IntakePolicyForm.js +91 -0
  242. package/lib/features/store/types/IntakePolicyForm.js.map +1 -0
  243. package/lib/features/store/types/SelectContentTypeModal.js +1 -1
  244. package/lib/features/store/types/SelectContentTypeModal.js.map +1 -1
  245. package/lib/features/store/types/index.d.ts +2 -0
  246. package/lib/features/store/types/index.d.ts.map +1 -1
  247. package/lib/features/store/types/index.js +2 -0
  248. package/lib/features/store/types/index.js.map +1 -1
  249. package/lib/features/store/types/intake-policy-editor.logic.d.ts +7 -0
  250. package/lib/features/store/types/intake-policy-editor.logic.d.ts.map +1 -0
  251. package/lib/features/store/types/intake-policy-editor.logic.js +60 -0
  252. package/lib/features/store/types/intake-policy-editor.logic.js.map +1 -0
  253. package/lib/features/store/types/typeCatalogCache.d.ts +5 -0
  254. package/lib/features/store/types/typeCatalogCache.d.ts.map +1 -0
  255. package/lib/features/store/types/typeCatalogCache.js +40 -0
  256. package/lib/features/store/types/typeCatalogCache.js.map +1 -0
  257. package/lib/features/user/UserInfo.js +7 -3
  258. package/lib/features/user/UserInfo.js.map +1 -1
  259. package/lib/features/views/ViewExperience.d.ts +20 -0
  260. package/lib/features/views/ViewExperience.d.ts.map +1 -0
  261. package/lib/features/views/ViewExperience.js +188 -0
  262. package/lib/features/views/ViewExperience.js.map +1 -0
  263. package/lib/features/views/ViewNavigation.d.ts +3 -0
  264. package/lib/features/views/ViewNavigation.d.ts.map +1 -0
  265. package/lib/features/views/ViewNavigation.js +36 -0
  266. package/lib/features/views/ViewNavigation.js.map +1 -0
  267. package/lib/features/views/ViewResults.d.ts +9 -0
  268. package/lib/features/views/ViewResults.d.ts.map +1 -0
  269. package/lib/features/views/ViewResults.js +229 -0
  270. package/lib/features/views/ViewResults.js.map +1 -0
  271. package/lib/features/views/ViewSearch.d.ts +3 -0
  272. package/lib/features/views/ViewSearch.d.ts.map +1 -0
  273. package/lib/features/views/ViewSearch.js +74 -0
  274. package/lib/features/views/ViewSearch.js.map +1 -0
  275. package/lib/features/views/index.d.ts +7 -0
  276. package/lib/features/views/index.d.ts.map +1 -0
  277. package/lib/features/views/index.js +7 -0
  278. package/lib/features/views/index.js.map +1 -0
  279. package/lib/features/views/types.d.ts +39 -0
  280. package/lib/features/views/types.d.ts.map +1 -0
  281. package/lib/features/views/types.js +2 -0
  282. package/lib/features/views/types.js.map +1 -0
  283. package/lib/features/views/viewState.d.ts +14 -0
  284. package/lib/features/views/viewState.d.ts.map +1 -0
  285. package/lib/features/views/viewState.js +117 -0
  286. package/lib/features/views/viewState.js.map +1 -0
  287. package/lib/i18n/locales/ar.json +134 -1
  288. package/lib/i18n/locales/de.json +130 -1
  289. package/lib/i18n/locales/en.json +363 -33
  290. package/lib/i18n/locales/es.json +131 -1
  291. package/lib/i18n/locales/fr.json +131 -1
  292. package/lib/i18n/locales/it.json +131 -1
  293. package/lib/i18n/locales/ja.json +129 -1
  294. package/lib/i18n/locales/ko.json +129 -1
  295. package/lib/i18n/locales/pt.json +131 -1
  296. package/lib/i18n/locales/ru.json +132 -1
  297. package/lib/i18n/locales/tr.json +130 -1
  298. package/lib/i18n/locales/zh-TW.json +129 -1
  299. package/lib/i18n/locales/zh.json +129 -1
  300. package/lib/rich-text/EditorToolbar.d.ts +37 -0
  301. package/lib/rich-text/EditorToolbar.d.ts.map +1 -0
  302. package/lib/rich-text/EditorToolbar.js +215 -0
  303. package/lib/rich-text/EditorToolbar.js.map +1 -0
  304. package/lib/rich-text/VertesiaRichTextEditor.d.ts +26 -0
  305. package/lib/rich-text/VertesiaRichTextEditor.d.ts.map +1 -0
  306. package/lib/rich-text/VertesiaRichTextEditor.js +67 -0
  307. package/lib/rich-text/VertesiaRichTextEditor.js.map +1 -0
  308. package/lib/rich-text/index.d.ts +2 -0
  309. package/lib/rich-text/index.d.ts.map +1 -0
  310. package/lib/rich-text/index.js +2 -0
  311. package/lib/rich-text/index.js.map +1 -0
  312. package/lib/router/HistoryNavigator.d.ts.map +1 -1
  313. package/lib/router/HistoryNavigator.js +23 -13
  314. package/lib/router/HistoryNavigator.js.map +1 -1
  315. package/lib/router/Nav.d.ts.map +1 -1
  316. package/lib/router/Nav.js +15 -6
  317. package/lib/router/Nav.js.map +1 -1
  318. package/lib/session/UserSession.d.ts.map +1 -1
  319. package/lib/session/UserSession.js +5 -3
  320. package/lib/session/UserSession.js.map +1 -1
  321. package/lib/vertesia-ui-core.js +4 -4
  322. package/lib/vertesia-ui-core.js.map +1 -1
  323. package/lib/vertesia-ui-features.js +40 -28
  324. package/lib/vertesia-ui-features.js.map +1 -1
  325. package/lib/vertesia-ui-i18n.js +15 -15
  326. package/lib/vertesia-ui-i18n.js.map +1 -1
  327. package/lib/vertesia-ui-rich-text.js +5 -0
  328. package/lib/vertesia-ui-rich-text.js.map +1 -0
  329. package/lib/vertesia-ui-router.js +1 -1
  330. package/lib/vertesia-ui-router.js.map +1 -1
  331. package/lib/vertesia-ui-session.js +1 -1
  332. package/lib/vertesia-ui-session.js.map +1 -1
  333. package/lib/vertesia-ui-shell.js +1 -1
  334. package/lib/vertesia-ui-shell.js.map +1 -1
  335. package/lib/vertesia-ui-widgets.js +25 -7
  336. package/lib/vertesia-ui-widgets.js.map +1 -1
  337. package/lib/widgets/form/Form.js +1 -1
  338. package/lib/widgets/form/Form.js.map +1 -1
  339. package/lib/widgets/json-view/JSONSwitcher.js +1 -1
  340. package/lib/widgets/json-view/JSONSwitcher.js.map +1 -1
  341. package/lib/widgets/json-view/JSONView.js +6 -6
  342. package/lib/widgets/json-view/JSONView.js.map +1 -1
  343. package/lib/widgets/markdown/AgentResourceResolver.d.ts +31 -0
  344. package/lib/widgets/markdown/AgentResourceResolver.d.ts.map +1 -0
  345. package/lib/widgets/markdown/AgentResourceResolver.js +39 -0
  346. package/lib/widgets/markdown/AgentResourceResolver.js.map +1 -0
  347. package/lib/widgets/markdown/ArtifactEditingSurface.d.ts +63 -0
  348. package/lib/widgets/markdown/ArtifactEditingSurface.d.ts.map +1 -0
  349. package/lib/widgets/markdown/ArtifactEditingSurface.js +582 -0
  350. package/lib/widgets/markdown/ArtifactEditingSurface.js.map +1 -0
  351. package/lib/widgets/markdown/CollaborativeMarkdownRenderer.d.ts +69 -0
  352. package/lib/widgets/markdown/CollaborativeMarkdownRenderer.d.ts.map +1 -0
  353. package/lib/widgets/markdown/CollaborativeMarkdownRenderer.js +374 -0
  354. package/lib/widgets/markdown/CollaborativeMarkdownRenderer.js.map +1 -0
  355. package/lib/widgets/markdown/MarkdownLink.d.ts +3 -1
  356. package/lib/widgets/markdown/MarkdownLink.d.ts.map +1 -1
  357. package/lib/widgets/markdown/MarkdownLink.js +41 -14
  358. package/lib/widgets/markdown/MarkdownLink.js.map +1 -1
  359. package/lib/widgets/markdown/MarkdownRenderer.d.ts +8 -1
  360. package/lib/widgets/markdown/MarkdownRenderer.d.ts.map +1 -1
  361. package/lib/widgets/markdown/MarkdownRenderer.js +20 -4
  362. package/lib/widgets/markdown/MarkdownRenderer.js.map +1 -1
  363. package/lib/widgets/markdown/index.d.ts +5 -1
  364. package/lib/widgets/markdown/index.d.ts.map +1 -1
  365. package/lib/widgets/markdown/index.js +5 -1
  366. package/lib/widgets/markdown/index.js.map +1 -1
  367. package/lib/widgets/markdown/normalizeCustomSchemeLinks.d.ts.map +1 -1
  368. package/lib/widgets/markdown/normalizeCustomSchemeLinks.js +14 -2
  369. package/lib/widgets/markdown/normalizeCustomSchemeLinks.js.map +1 -1
  370. package/lib/widgets/markdown/textDiff.d.ts +52 -0
  371. package/lib/widgets/markdown/textDiff.d.ts.map +1 -0
  372. package/lib/widgets/markdown/textDiff.js +362 -0
  373. package/lib/widgets/markdown/textDiff.js.map +1 -0
  374. package/lib/widgets/markdown/useArtifactContent.d.ts +5 -3
  375. package/lib/widgets/markdown/useArtifactContent.d.ts.map +1 -1
  376. package/lib/widgets/markdown/useArtifactContent.js +6 -3
  377. package/lib/widgets/markdown/useArtifactContent.js.map +1 -1
  378. package/lib/widgets/markdown/useResolvedUrl.d.ts +1 -5
  379. package/lib/widgets/markdown/useResolvedUrl.d.ts.map +1 -1
  380. package/lib/widgets/markdown/useResolvedUrl.js +19 -31
  381. package/lib/widgets/markdown/useResolvedUrl.js.map +1 -1
  382. package/lib/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -1
  383. package/lib/widgets/monacoEditor/MonacoEditor.js +29 -0
  384. package/lib/widgets/monacoEditor/MonacoEditor.js.map +1 -1
  385. package/lib/widgets/schema-editor/ManagedSchema.d.ts +8 -0
  386. package/lib/widgets/schema-editor/ManagedSchema.d.ts.map +1 -1
  387. package/lib/widgets/schema-editor/ManagedSchema.js +16 -0
  388. package/lib/widgets/schema-editor/ManagedSchema.js.map +1 -1
  389. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +2 -0
  390. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.d.ts.map +1 -1
  391. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.js +1 -0
  392. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.js.map +1 -1
  393. package/lib/widgets/schema-editor/editor/PropertyViewer.d.ts.map +1 -1
  394. package/lib/widgets/schema-editor/editor/PropertyViewer.js +4 -1
  395. package/lib/widgets/schema-editor/editor/PropertyViewer.js.map +1 -1
  396. package/lib/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -1
  397. package/lib/widgets/schema-editor/editor/SchemaEditor.js +22 -11
  398. package/lib/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
  399. package/lib/widgets/xml-viewer/hooks/useXMLViewer.d.ts +9 -0
  400. package/lib/widgets/xml-viewer/hooks/useXMLViewer.d.ts.map +1 -1
  401. package/lib/widgets/xml-viewer/hooks/useXMLViewer.js +20 -17
  402. package/lib/widgets/xml-viewer/hooks/useXMLViewer.js.map +1 -1
  403. package/package.json +37 -33
  404. package/src/__tests__/a11y.test.tsx +77 -1
  405. package/src/__tests__/axe-helper.ts +17 -7
  406. package/src/__tests__/setup.ts +25 -0
  407. package/src/core/components/SidePanel.tsx +1 -1
  408. package/src/core/components/shadcn/button.tsx +67 -12
  409. package/src/core/components/shadcn/filters/filterBar.tsx +1 -0
  410. package/src/core/components/shadcn/modal/dialog.tsx +4 -2
  411. package/src/core/components/shadcn/tabs.test.tsx +65 -0
  412. package/src/core/components/shadcn/tabs.tsx +25 -3
  413. package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +1 -1
  414. package/src/features/agent/chat/AgentChatPlaybackControls.tsx +0 -5
  415. package/src/features/agent/chat/AgentRequestInputOverlay.test.tsx +31 -0
  416. package/src/features/agent/chat/AgentRequestInputOverlay.tsx +6 -2
  417. package/src/features/agent/chat/AgentRightPanel.tsx +16 -1
  418. package/src/features/agent/chat/ArtifactsTab.test.tsx +55 -0
  419. package/src/features/agent/chat/ArtifactsTab.tsx +222 -61
  420. package/src/features/agent/chat/DocumentEditingActionCard.test.tsx +105 -0
  421. package/src/features/agent/chat/DocumentEditingActionCard.tsx +210 -0
  422. package/src/features/agent/chat/ImageLightbox.tsx +0 -1
  423. package/src/features/agent/chat/ModernAgentConversation.test.tsx +285 -40
  424. package/src/features/agent/chat/ModernAgentConversation.tsx +247 -77
  425. package/src/features/agent/chat/ModernAgentOutput/AgentMarkdownAnchor.test.tsx +79 -0
  426. package/src/features/agent/chat/ModernAgentOutput/AgentMarkdownAnchor.tsx +94 -0
  427. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +263 -35
  428. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +236 -118
  429. package/src/features/agent/chat/ModernAgentOutput/AttachmentPreview.tsx +17 -0
  430. package/src/features/agent/chat/ModernAgentOutput/CollapsibleAgentMarkdown.test.tsx +44 -0
  431. package/src/features/agent/chat/ModernAgentOutput/CollapsibleAgentMarkdown.tsx +88 -0
  432. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +3 -3
  433. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +0 -2
  434. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +34 -47
  435. package/src/features/agent/chat/ModernAgentOutput/ResourceChangeSummary.tsx +40 -0
  436. package/src/features/agent/chat/ModernAgentOutput/ResourceChip.test.tsx +148 -0
  437. package/src/features/agent/chat/ModernAgentOutput/ResourceChip.tsx +141 -0
  438. package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +33 -1
  439. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.test.ts +80 -0
  440. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.ts +21 -1
  441. package/src/features/agent/chat/ModernAgentOutput/resourceLinks.tsx +43 -0
  442. package/src/features/agent/chat/ModernAgentOutput/resourceSummary.test.ts +229 -0
  443. package/src/features/agent/chat/ModernAgentOutput/resourceSummary.ts +152 -0
  444. package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +17 -0
  445. package/src/features/agent/chat/ModernAgentOutput/utils.ts +14 -1
  446. package/src/features/agent/chat/hooks/useAgentStream.test.tsx +188 -0
  447. package/src/features/agent/chat/hooks/useAgentStream.ts +28 -8
  448. package/src/features/agent/chat/index.ts +11 -0
  449. package/src/features/environment/SelectEnvironment.tsx +186 -0
  450. package/src/features/environment/index.ts +1 -0
  451. package/src/features/index.ts +2 -0
  452. package/src/features/magic-pdf/AnnotatedImageSlider.tsx +62 -66
  453. package/src/features/magic-pdf/DownloadPopover.tsx +5 -48
  454. package/src/features/magic-pdf/ExtractedContentView.tsx +2 -14
  455. package/src/features/magic-pdf/GroundedExtractionAssistantPanel.tsx +86 -0
  456. package/src/features/magic-pdf/GroundedExtractionView.test.tsx +65 -0
  457. package/src/features/magic-pdf/GroundedExtractionView.tsx +1055 -0
  458. package/src/features/magic-pdf/MagicPdfProvider.tsx +17 -47
  459. package/src/features/magic-pdf/MagicPdfView.tsx +3 -51
  460. package/src/features/magic-pdf/index.ts +1 -0
  461. package/src/features/magic-pdf/types.ts +1 -1
  462. package/src/features/oauth/McpConnectionsButton.tsx +0 -2
  463. package/src/features/oauth/McpConnectionsDialog.tsx +0 -1
  464. package/src/features/oauth/RemoteMcpConnectionButton.tsx +0 -1
  465. package/src/features/pdf-viewer/PdfPageSlider.tsx +5 -5
  466. package/src/features/pdf-viewer/SimplePdfViewer.tsx +11 -12
  467. package/src/features/permissions/UserPermissionsProvider.tsx +1 -1
  468. package/src/features/store/objects/DocumentQuickFilter.tsx +13 -15
  469. package/src/features/store/objects/DocumentSearchResults.tsx +5 -8
  470. package/src/features/store/objects/components/ContentDispositionButton.tsx +5 -1
  471. package/src/features/store/objects/components/ContentOverview.tsx +356 -105
  472. package/src/features/store/objects/components/DocumentEditingConfigurationSelector.test.ts +34 -0
  473. package/src/features/store/objects/components/DocumentEditingConfigurationSelector.tsx +211 -0
  474. package/src/features/store/objects/components/DocumentEditingLockStatus.test.tsx +32 -0
  475. package/src/features/store/objects/components/DocumentEditingLockStatus.tsx +45 -0
  476. package/src/features/store/objects/components/DocumentEditingPanel.test.tsx +336 -0
  477. package/src/features/store/objects/components/DocumentEditingPanel.tsx +1236 -0
  478. package/src/features/store/objects/components/DocumentIcon.tsx +1 -1
  479. package/src/features/store/objects/components/TextEditorPanel.test.tsx +48 -0
  480. package/src/features/store/objects/components/TextEditorPanel.tsx +41 -20
  481. package/src/features/store/objects/components/VectorSearchWidget.tsx +2 -2
  482. package/src/features/store/objects/components/documentArtifactRefs.test.ts +65 -0
  483. package/src/features/store/objects/components/documentArtifactRefs.ts +72 -0
  484. package/src/features/store/objects/components/documentEditingAgentConfig.test.ts +28 -0
  485. package/src/features/store/objects/components/documentEditingAgentConfig.ts +41 -0
  486. package/src/features/store/objects/components/documentEditingPrompts.test.ts +26 -0
  487. package/src/features/store/objects/components/documentEditingPrompts.ts +12 -0
  488. package/src/features/store/objects/components/documentEditingRun.test.ts +176 -0
  489. package/src/features/store/objects/components/documentEditingRun.ts +184 -0
  490. package/src/features/store/objects/components/documentEditingTarget.test.ts +96 -0
  491. package/src/features/store/objects/components/documentEditingTarget.ts +63 -0
  492. package/src/features/store/objects/components/index.ts +1 -0
  493. package/src/features/store/objects/components/useContentPanelHooks.ts +55 -42
  494. package/src/features/store/objects/components/useDownloadFile.test.ts +20 -0
  495. package/src/features/store/objects/components/useDownloadFile.ts +5 -1
  496. package/src/features/store/objects/layout/renderers.tsx +1 -2
  497. package/src/features/store/objects/selection/SelectionActions.tsx +1 -1
  498. package/src/features/store/objects/selection/actions/StartWorkflowButton.tsx +2 -2
  499. package/src/features/store/types/ContentObjectTypesTable.tsx +12 -14
  500. package/src/features/store/types/IntakePolicyEditor.tsx +679 -0
  501. package/src/features/store/types/IntakePolicyForm.tsx +838 -0
  502. package/src/features/store/types/SelectContentTypeModal.tsx +2 -2
  503. package/src/features/store/types/index.ts +2 -0
  504. package/src/features/store/types/intake-policy-editor.logic.test.ts +109 -0
  505. package/src/features/store/types/intake-policy-editor.logic.ts +87 -0
  506. package/src/features/store/types/typeCatalogCache.ts +45 -0
  507. package/src/features/user/UserInfo.tsx +7 -7
  508. package/src/features/views/ViewExperience.test.tsx +273 -0
  509. package/src/features/views/ViewExperience.tsx +408 -0
  510. package/src/features/views/ViewNavigation.test.tsx +86 -0
  511. package/src/features/views/ViewNavigation.tsx +187 -0
  512. package/src/features/views/ViewResults.test.ts +82 -0
  513. package/src/features/views/ViewResults.tsx +609 -0
  514. package/src/features/views/ViewSearch.test.tsx +147 -0
  515. package/src/features/views/ViewSearch.tsx +205 -0
  516. package/src/features/views/index.ts +6 -0
  517. package/src/features/views/types.ts +57 -0
  518. package/src/features/views/viewState.test.ts +111 -0
  519. package/src/features/views/viewState.ts +132 -0
  520. package/src/i18n/locales/ar.json +134 -1
  521. package/src/i18n/locales/de.json +130 -1
  522. package/src/i18n/locales/en.json +1083 -753
  523. package/src/i18n/locales/es.json +131 -1
  524. package/src/i18n/locales/fr.json +131 -1
  525. package/src/i18n/locales/it.json +131 -1
  526. package/src/i18n/locales/ja.json +129 -1
  527. package/src/i18n/locales/ko.json +129 -1
  528. package/src/i18n/locales/pt.json +131 -1
  529. package/src/i18n/locales/ru.json +132 -1
  530. package/src/i18n/locales/tr.json +130 -1
  531. package/src/i18n/locales/zh-TW.json +129 -1
  532. package/src/i18n/locales/zh.json +129 -1
  533. package/src/rich-text/EditorToolbar.tsx +708 -0
  534. package/src/rich-text/VertesiaRichTextEditor.test.tsx +211 -0
  535. package/src/rich-text/VertesiaRichTextEditor.tsx +241 -0
  536. package/src/rich-text/index.ts +9 -0
  537. package/src/router/HistoryNavigator.test.ts +48 -0
  538. package/src/router/HistoryNavigator.ts +24 -13
  539. package/src/router/Nav.tsx +18 -8
  540. package/src/session/UserSession.test.ts +39 -0
  541. package/src/session/UserSession.ts +5 -3
  542. package/src/widgets/form/Form.tsx +1 -1
  543. package/src/widgets/json-view/JSONSwitcher.tsx +2 -2
  544. package/src/widgets/json-view/JSONView.tsx +7 -7
  545. package/src/widgets/markdown/AgentResourceResolver.test.ts +24 -0
  546. package/src/widgets/markdown/AgentResourceResolver.tsx +70 -0
  547. package/src/widgets/markdown/ArtifactEditingSurface.test.tsx +537 -0
  548. package/src/widgets/markdown/ArtifactEditingSurface.tsx +878 -0
  549. package/src/widgets/markdown/CollaborativeMarkdownRenderer.test.tsx +484 -0
  550. package/src/widgets/markdown/CollaborativeMarkdownRenderer.tsx +825 -0
  551. package/src/widgets/markdown/MarkdownLink.test.tsx +122 -0
  552. package/src/widgets/markdown/MarkdownLink.tsx +102 -17
  553. package/src/widgets/markdown/MarkdownRenderer.tsx +30 -3
  554. package/src/widgets/markdown/index.ts +39 -1
  555. package/src/widgets/markdown/normalizeCustomSchemeLinks.ts +15 -2
  556. package/src/widgets/markdown/textDiff.test.ts +156 -0
  557. package/src/widgets/markdown/textDiff.ts +399 -0
  558. package/src/widgets/markdown/useArtifactContent.ts +9 -3
  559. package/src/widgets/markdown/useResolvedUrl.test.ts +29 -40
  560. package/src/widgets/markdown/useResolvedUrl.ts +33 -35
  561. package/src/widgets/monacoEditor/MonacoEditor.tsx +29 -0
  562. package/src/widgets/schema-editor/ManagedSchema.ts +22 -0
  563. package/src/widgets/schema-editor/editor/EditableSchemaProperty.tsx +3 -0
  564. package/src/widgets/schema-editor/editor/PropertyViewer.tsx +14 -3
  565. package/src/widgets/schema-editor/editor/SchemaEditor.tsx +80 -29
  566. package/src/widgets/xml-viewer/hooks/useXMLViewer.test.ts +26 -0
  567. package/src/widgets/xml-viewer/hooks/useXMLViewer.ts +23 -18
@@ -30,6 +30,11 @@ import {
30
30
  } from '@vertesia/ui/core';
31
31
  import { useUITranslation } from '@vertesia/ui/i18n';
32
32
  import { useUserSession } from '@vertesia/ui/session';
33
+ import {
34
+ type AgentResourceResolver,
35
+ AgentResourceResolverProvider,
36
+ isArtifactRefreshEvent,
37
+ } from '@vertesia/ui/widgets';
33
38
  import { ArrowUpIcon, Bot, CheckCircle, Cpu, FileTextIcon, UploadIcon, XIcon } from 'lucide-react';
34
39
  import type React from 'react';
35
40
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
@@ -69,6 +74,7 @@ import {
69
74
  getConversationUrl,
70
75
  getWorkstreamId,
71
76
  isInProgress,
77
+ isPassiveArtifactUpdate,
72
78
  } from './ModernAgentOutput/utils';
73
79
  import {
74
80
  type AgentChatPlaybackCursor,
@@ -97,6 +103,8 @@ export type StartWorkflowFn = (
97
103
  options?: StartWorkflowOptions,
98
104
  ) => Promise<{ agent_run_id: string } | undefined>;
99
105
 
106
+ export type SendAgentMessageFn = (message: string, inputMetadata?: Record<string, unknown>) => void;
107
+
100
108
  const EMPTY_STREAMING_MESSAGES = new Map<string, never>();
101
109
 
102
110
  function getTimestampMs(timestamp: number | string | undefined): number {
@@ -533,6 +541,12 @@ function downloadJsonFile(filename: string, payload: unknown) {
533
541
  export interface ModernAgentConversationProps {
534
542
  /** Stable AgentRun ID — the primary identifier for all runtime operations. */
535
543
  agentRunId?: string;
544
+ /**
545
+ * Optional override for mapping agent resource references (documents, collections, interactions,
546
+ * ...) to navigation or activation targets in the chat. This overrides an inherited
547
+ * AgentResourceResolverProvider; without either, resources remain non-interactive.
548
+ */
549
+ resourceResolver?: AgentResourceResolver;
536
550
  title?: string;
537
551
  interactive?: boolean;
538
552
  onClose?: () => void;
@@ -567,6 +581,12 @@ export interface ModernAgentConversationProps {
567
581
 
568
582
  /** Ref populated with the internal file upload handler for external triggering */
569
583
  fileUploadRef?: React.MutableRefObject<((files: File[]) => void) | null>;
584
+ /** Ref populated with the internal message sender for document or artifact collaboration controls. */
585
+ sendMessageRef?: React.MutableRefObject<SendAgentMessageFn | null>;
586
+ /** Called for each live message delivered after the conversation stream connects. */
587
+ onMessage?: (message: AgentMessage) => void;
588
+ /** Called when the main agent turn starts or reaches an idle/terminal state. */
589
+ onAgentWorkingChange?: (isWorking: boolean) => void;
570
590
  /** Called when processingFiles state changes (for external progress display) */
571
591
  onProcessingFilesChange?: (files: Map<string, ConversationFile>) => void;
572
592
  /** Processing files to display in the right panel Uploads tab */
@@ -607,6 +627,8 @@ export interface ModernAgentConversationProps {
607
627
  hideHeader?: boolean;
608
628
  /** Header density. Use compact when the surrounding page already identifies the run. */
609
629
  headerVariant?: 'full' | 'compact';
630
+ /** Start-screen layout. Compact removes empty history; expanded-composer gives that space to the first input. */
631
+ startViewVariant?: 'default' | 'compact' | 'expanded-composer';
610
632
  /** Hide the internal message input (for apps that render their own) */
611
633
  hideMessageInput?: boolean;
612
634
  /** Custom action shown in place of the input box when the run status is FAILED.
@@ -643,6 +665,8 @@ export interface ModernAgentConversationProps {
643
665
  inputContainerClassName?: string;
644
666
  /** Additional className for the input field */
645
667
  inputClassName?: string;
668
+ /** Read-only context rendered immediately above the live conversation composer. */
669
+ composerContext?: React.ReactNode;
646
670
 
647
671
  /** Additional className for the root container */
648
672
  className?: string;
@@ -708,14 +732,19 @@ export interface ModernAgentConversationProps {
708
732
  }
709
733
 
710
734
  export function ModernAgentConversation(props: ModernAgentConversationProps) {
711
- const { agentRunId, startWorkflow } = props;
735
+ const { agentRunId, startWorkflow, resourceResolver } = props;
712
736
 
713
737
  if (agentRunId) {
714
- return (
738
+ const conversation = (
715
739
  <SkillWidgetProvider>
716
740
  <ModernAgentConversationInner {...props} agentRunId={agentRunId} />
717
741
  </SkillWidgetProvider>
718
742
  );
743
+ return resourceResolver ? (
744
+ <AgentResourceResolverProvider value={resourceResolver}>{conversation}</AgentResourceResolverProvider>
745
+ ) : (
746
+ conversation
747
+ );
719
748
  } else if (startWorkflow) {
720
749
  // If we have startWorkflow capability but no agentRunId yet
721
750
  return <StartWorkflowView {...props} />;
@@ -758,13 +787,17 @@ function StartWorkflowView({
758
787
  hideFileUpload = false,
759
788
  hideObjectLinking,
760
789
  headerVariant,
790
+ startViewVariant = 'default',
761
791
  inputContainerClassName,
762
792
  inputClassName,
763
793
  className,
764
794
  allowWorkflowControl,
765
795
  initialToolApprovalMode,
796
+ onAgentWorkingChange,
766
797
  }: ModernAgentConversationProps) {
767
798
  const { t } = useUITranslation();
799
+ const isCompactStartView = startViewVariant !== 'default';
800
+ const isExpandedStartComposer = startViewVariant === 'expanded-composer';
768
801
  const canStageFiles = !hideFileUpload;
769
802
  const resolvedPlaceholder = placeholder ?? t('agent.typeYourMessage');
770
803
  const resolvedStartButtonText = startButtonText ?? t('agent.startAgent');
@@ -785,6 +818,10 @@ function StartWorkflowView({
785
818
  // Staged files - stored locally until workflow starts
786
819
  const [stagedFiles, setStagedFiles] = useState<File[]>([]);
787
820
 
821
+ useEffect(() => {
822
+ onAgentWorkingChange?.(isSending);
823
+ }, [isSending, onAgentWorkingChange]);
824
+
788
825
  // Drag and drop state
789
826
  const [isDragOver, setIsDragOver] = useState(false);
790
827
  const dragCounterRef = useRef(0);
@@ -1021,10 +1058,14 @@ function StartWorkflowView({
1021
1058
  const adjustTextareaHeight = useCallback(() => {
1022
1059
  const textarea = inputRef.current;
1023
1060
  if (textarea) {
1061
+ if (isExpandedStartComposer) {
1062
+ textarea.style.height = '100%';
1063
+ return;
1064
+ }
1024
1065
  textarea.style.height = 'auto';
1025
1066
  textarea.style.height = `${Math.min(textarea.scrollHeight, 200)}px`;
1026
1067
  }
1027
- }, []);
1068
+ }, [isExpandedStartComposer]);
1028
1069
 
1029
1070
  useEffect(() => {
1030
1071
  void inputValue;
@@ -1049,6 +1090,7 @@ function StartWorkflowView({
1049
1090
  inputClassName,
1050
1091
  className,
1051
1092
  allowWorkflowControl,
1093
+ onAgentWorkingChange,
1052
1094
  }}
1053
1095
  agentRunId={startedAgentRunId}
1054
1096
  title={title}
@@ -1060,11 +1102,18 @@ function StartWorkflowView({
1060
1102
  }
1061
1103
 
1062
1104
  return (
1063
- <div className={cn('flex h-full flex-col items-center bg-background', className)}>
1105
+ <div
1106
+ className={cn(
1107
+ 'flex flex-col items-center bg-background',
1108
+ isCompactStartView && !isExpandedStartComposer ? '' : 'h-full',
1109
+ className,
1110
+ )}
1111
+ >
1064
1112
  {/* biome-ignore lint/a11y/noStaticElementInteractions: drag/drop target only; file selection is also exposed via the upload button. */}
1065
1113
  <div
1066
1114
  className={cn(
1067
- 'relative flex h-full w-full flex-col overflow-hidden border-0',
1115
+ 'relative flex w-full flex-col overflow-hidden border-0',
1116
+ isCompactStartView && !isExpandedStartComposer ? '' : 'h-full',
1068
1117
  fullWidth ? '' : 'max-w-4xl',
1069
1118
  )}
1070
1119
  onDragEnter={canStageFiles ? handleDragEnter : undefined}
@@ -1110,7 +1159,6 @@ function StartWorkflowView({
1110
1159
  size="xs"
1111
1160
  variant="ghost"
1112
1161
  onClick={onClose}
1113
- aria-label={t('agent.close')}
1114
1162
  title={t('agent.close')}
1115
1163
  className="text-muted hover:text-foreground"
1116
1164
  >
@@ -1121,11 +1169,21 @@ function StartWorkflowView({
1121
1169
  )}
1122
1170
 
1123
1171
  {/* Empty conversation area with instructions */}
1124
- <div className="flex flex-1 flex-col items-center justify-end overflow-y-auto bg-background px-4">
1172
+ <div
1173
+ className={cn(
1174
+ 'flex flex-col items-center justify-end bg-background px-4',
1175
+ isCompactStartView ? 'shrink-0 pt-3' : 'flex-1 overflow-y-auto',
1176
+ )}
1177
+ >
1125
1178
  {pendingStartMessage && pendingStartTimestamp ? (
1126
1179
  <PendingStartConversation message={pendingStartMessage} startedAt={pendingStartTimestamp} />
1127
1180
  ) : (
1128
- <div className="mx-auto flex min-h-full w-full max-w-3xl flex-col justify-end py-8">
1181
+ <div
1182
+ className={cn(
1183
+ 'mx-auto flex w-full max-w-3xl flex-col justify-end',
1184
+ isCompactStartView ? '' : 'min-h-full py-8',
1185
+ )}
1186
+ >
1129
1187
  {initialMessage && (
1130
1188
  <div className="text-[15px] leading-relaxed text-foreground/80">{initialMessage}</div>
1131
1189
  )}
@@ -1134,10 +1192,16 @@ function StartWorkflowView({
1134
1192
  </div>
1135
1193
 
1136
1194
  {/* Input Area */}
1137
- <div className="shrink-0 bg-background px-4 pb-safe-area-4 pt-2">
1195
+ <div
1196
+ className={cn(
1197
+ 'bg-background px-4 pb-safe-area-4 pt-2',
1198
+ isExpandedStartComposer ? 'flex min-h-0 flex-1 flex-col' : 'shrink-0',
1199
+ )}
1200
+ >
1138
1201
  <div
1139
1202
  className={cn(
1140
1203
  'mx-auto flex max-w-3xl flex-col gap-3 rounded-2xl border border-border/70 bg-mixer-muted/15 p-3 shadow-lg shadow-black/5',
1204
+ isExpandedStartComposer && 'min-h-0 w-full flex-1',
1141
1205
  inputContainerClassName,
1142
1206
  )}
1143
1207
  >
@@ -1177,9 +1241,14 @@ function StartWorkflowView({
1177
1241
  rows={2}
1178
1242
  className={cn(
1179
1243
  'min-h-[72px] resize-none overflow-hidden border-0 bg-transparent px-0 py-0 text-sm leading-6 shadow-none focus-visible:ring-0',
1244
+ isExpandedStartComposer && 'min-h-0 flex-1',
1180
1245
  inputClassName,
1181
1246
  )}
1182
- style={{ minHeight: '72px', maxHeight: '200px' }}
1247
+ style={
1248
+ isExpandedStartComposer
1249
+ ? { minHeight: '72px', maxHeight: 'none' }
1250
+ : { minHeight: '72px', maxHeight: '200px' }
1251
+ }
1183
1252
  />
1184
1253
 
1185
1254
  <div className="flex items-center justify-between gap-3">
@@ -1216,7 +1285,6 @@ function StartWorkflowView({
1216
1285
  'disabled:bg-mixer-muted/25 disabled:text-muted disabled:opacity-100',
1217
1286
  )}
1218
1287
  title={resolvedStartButtonText}
1219
- aria-label={resolvedStartButtonText}
1220
1288
  >
1221
1289
  {isSending ? <Spinner size="sm" /> : <ArrowUpIcon className="size-4" />}
1222
1290
  </Button>
@@ -1276,10 +1344,14 @@ function ModernAgentConversationInner({
1276
1344
  className,
1277
1345
  inputContainerClassName,
1278
1346
  inputClassName,
1347
+ composerContext,
1279
1348
  // Fusion fragment data
1280
1349
  fusionData,
1281
1350
  // External file upload API
1282
1351
  fileUploadRef,
1352
+ sendMessageRef,
1353
+ onMessage,
1354
+ onAgentWorkingChange,
1283
1355
  onProcessingFilesChange,
1284
1356
  processingFiles: processingFilesProp,
1285
1357
  // External plan panel API
@@ -1340,7 +1412,7 @@ function ModernAgentConversationInner({
1340
1412
  agentRunStatus,
1341
1413
  workflowRunId,
1342
1414
  serverFileUpdates,
1343
- } = useAgentStream(client, agentRunId);
1415
+ } = useAgentStream(client, agentRunId, onMessage);
1344
1416
 
1345
1417
  const {
1346
1418
  plans,
@@ -1550,9 +1622,10 @@ function ModernAgentConversationInner({
1550
1622
  const canShowPlaybackToggle = showPlaybackToggle && enablePlayback === undefined && isAgentChatPlaybackAvailable();
1551
1623
  const isPlaybackEnabled = enablePlayback ?? (isAgentChatPlaybackEnabled() || isPlaybackToggleEnabled);
1552
1624
  const playbackSourceMessages = useMemo(() => {
1553
- const visibleMessages = hiddenMessageTypes?.length
1554
- ? messages.filter((message) => !hiddenMessageTypes.includes(message.type))
1555
- : messages;
1625
+ // Passive artifact autosaves are surfaced by the editor's own save indicator, not the chat.
1626
+ const visibleMessages = messages.filter(
1627
+ (message) => !isPassiveArtifactUpdate(message) && !(hiddenMessageTypes?.includes(message.type) ?? false),
1628
+ );
1556
1629
  return filterMessagesForActiveWorkstream(visibleMessages, activeWorkstream);
1557
1630
  }, [activeWorkstream, hiddenMessageTypes, messages]);
1558
1631
  const playbackState = useMemo(
@@ -1575,11 +1648,20 @@ function ModernAgentConversationInner({
1575
1648
  );
1576
1649
  const effectiveIsCompleted = useMemo(() => isCompleted || !isInProgress(messages), [isCompleted, messages]);
1577
1650
  const displayedIsCompleted = isPlaybackLive || isPlaybackAtLatest ? effectiveIsCompleted : false;
1651
+ const isAgentWorking = !effectiveIsCompleted && !isWorkflowTerminal;
1652
+
1653
+ useEffect(() => {
1654
+ onAgentWorkingChange?.(isAgentWorking);
1655
+ }, [isAgentWorking, onAgentWorkingChange]);
1578
1656
  const pendingRequestInputMessage = useMemo(
1579
1657
  () => getPendingRequestInputMessage(displayedMessages),
1580
1658
  [displayedMessages],
1581
1659
  );
1582
- const shouldShowRequestInputOverlay = Boolean(pendingRequestInputMessage) && !isFailed;
1660
+ // A terminal run silently drops user input unless it can be continued (see the guard in
1661
+ // handleSendMessage), so never surface an actionable question overlay in that state —
1662
+ // the terminal status box renders instead.
1663
+ const shouldShowRequestInputOverlay =
1664
+ Boolean(pendingRequestInputMessage) && !isFailed && (!isWorkflowTerminal || canContinueConversation);
1583
1665
  const isViewingPlaybackHistory = isPlaybackEnabled && !isPlaybackLive;
1584
1666
  const shouldRenderLiveMessageInputArea = shouldRenderMessageInputArea && !isViewingPlaybackHistory;
1585
1667
  const contextWindowUsage = useMemo(() => toContextWindowUsage(messages), [messages]);
@@ -1674,15 +1756,6 @@ function ModernAgentConversationInner({
1674
1756
  // ────────────────────────────────────────────
1675
1757
  // Stable callbacks
1676
1758
  // ────────────────────────────────────────────
1677
- const handleTogglePlanPanel = useCallback(() => {
1678
- setShowSlidingPanel((prev: boolean) => {
1679
- if (!prev) {
1680
- sessionStorage.setItem('plan-panel-shown', 'true');
1681
- }
1682
- return !prev;
1683
- });
1684
- }, [setShowSlidingPanel]);
1685
-
1686
1759
  const handleChangePlan = useCallback(
1687
1760
  (index: number) => {
1688
1761
  setActivePlanIndex(index);
@@ -1697,17 +1770,44 @@ function ModernAgentConversationInner({
1697
1770
  const [rightPanelTab, setRightPanelTab] = useState<RightPanelTab>(
1698
1771
  conversationContent || conversationTab ? 'conversation' : 'plan',
1699
1772
  );
1773
+ const [selectedArtifactPath, setSelectedArtifactPath] = useState<string | null>(null);
1700
1774
  const [rightPanelWidth, setRightPanelWidth] = useState(400);
1701
1775
  const [isRightPanelResizing, setIsRightPanelResizing] = useState(false);
1776
+ // Master override for the "Toggle right sidebar" control. `showSlidingPanel` only tracks the
1777
+ // plan; open documents/workstreams keep the panel visible on their own, so without this the
1778
+ // toggle can't hide the panel while a document is open. Explicit reveals (opening an artifact
1779
+ // or document) clear it again.
1780
+ const [rightPanelManuallyClosed, setRightPanelManuallyClosed] = useState(false);
1702
1781
 
1703
1782
  const isRightPanelVisible =
1704
1783
  showRightPanelProp &&
1784
+ !rightPanelManuallyClosed &&
1705
1785
  (showSlidingPanel ||
1706
1786
  isDocPanelOpen ||
1707
1787
  (!hideWorkstreamTabs && panelWorkstreams.length > 0) ||
1708
1788
  !!conversationContent ||
1709
1789
  conversationTab);
1710
1790
 
1791
+ // A newly opened document should reveal the panel even if the user had manually collapsed it.
1792
+ const previousDocPanelOpenRef = useRef(isDocPanelOpen);
1793
+ useEffect(() => {
1794
+ if (isDocPanelOpen && !previousDocPanelOpenRef.current) {
1795
+ setRightPanelManuallyClosed(false);
1796
+ }
1797
+ previousDocPanelOpenRef.current = isDocPanelOpen;
1798
+ }, [isDocPanelOpen]);
1799
+
1800
+ const handleTogglePlanPanel = useCallback(() => {
1801
+ if (isRightPanelVisible) {
1802
+ setRightPanelManuallyClosed(true);
1803
+ setShowSlidingPanel(false);
1804
+ } else {
1805
+ setRightPanelManuallyClosed(false);
1806
+ setShowSlidingPanel(true);
1807
+ sessionStorage.setItem('plan-panel-shown', 'true');
1808
+ }
1809
+ }, [isRightPanelVisible, setShowSlidingPanel]);
1810
+
1711
1811
  useEffect(() => {
1712
1812
  if (!isRightPanelVisible && isRightPanelResizing) {
1713
1813
  setIsRightPanelResizing(false);
@@ -1749,10 +1849,44 @@ function ModernAgentConversationInner({
1749
1849
  }, [isRightPanelResizing]);
1750
1850
 
1751
1851
  const handleCloseRightPanel = useCallback(() => {
1852
+ setRightPanelManuallyClosed(true);
1752
1853
  setShowSlidingPanel(false);
1753
1854
  handleCloseDocPanel();
1754
1855
  }, [setShowSlidingPanel, handleCloseDocPanel]);
1755
1856
 
1857
+ const handleOpenArtifact = useCallback(
1858
+ (path: string) => {
1859
+ if (!/\.md$/i.test(path)) return;
1860
+ setRightPanelManuallyClosed(false);
1861
+ setSelectedArtifactPath(path);
1862
+ setRightPanelTab('artifacts');
1863
+ setShowSlidingPanel(true);
1864
+ },
1865
+ [setShowSlidingPanel],
1866
+ );
1867
+
1868
+ // The `display_artifact` tool emits a `display_artifact` stream event asking the UI
1869
+ // to reveal a text artifact in the editor. Act on the latest such event, once per
1870
+ // distinct occurrence so the user can still close the panel without it snapping back.
1871
+ const displayedArtifactMarkerRef = useRef<string | null>(null);
1872
+ useEffect(() => {
1873
+ let target: string | undefined;
1874
+ let marker: string | undefined;
1875
+ for (const message of messages) {
1876
+ const details = message.details as Record<string, unknown> | undefined;
1877
+ if (details?.event_class === 'display_artifact' && typeof details.path === 'string') {
1878
+ target = details.path;
1879
+ marker = `${message.timestamp ?? ''}:${details.path}`;
1880
+ }
1881
+ }
1882
+ if (!target || !marker || marker === displayedArtifactMarkerRef.current) return;
1883
+ displayedArtifactMarkerRef.current = marker;
1884
+ setRightPanelManuallyClosed(false);
1885
+ setSelectedArtifactPath(target);
1886
+ setRightPanelTab('artifacts');
1887
+ setShowSlidingPanel(true);
1888
+ }, [messages, setShowSlidingPanel]);
1889
+
1756
1890
  // Default StoreLinkComponent that opens documents in the panel
1757
1891
  const internalStoreLinkComponent = useCallback(
1758
1892
  ({ href, documentId, children }: { href: string; documentId: string; children: React.ReactNode }) => (
@@ -1803,6 +1937,7 @@ function ModernAgentConversationInner({
1803
1937
 
1804
1938
  useEffect(() => {
1805
1939
  void agentRunId;
1940
+ setSelectedArtifactPath(null);
1806
1941
  workstreamFetchFailedRef.current = false;
1807
1942
  setIsWorkstreamQueryUnavailable(false);
1808
1943
  setQueriedActiveWorkstreams([]);
@@ -1980,7 +2115,12 @@ function ModernAgentConversationInner({
1980
2115
  type: AgentMessageType.QUESTION,
1981
2116
  message: messageContent,
1982
2117
  workstream_id: 'main',
1983
- details: { _optimistic: true, _messageId: messageId, _deliveryStatus: 'sending' },
2118
+ details: {
2119
+ _optimistic: true,
2120
+ _messageId: messageId,
2121
+ _deliveryStatus: 'sending',
2122
+ ...(inputMetadata?.editing_action ? { editing_action: inputMetadata.editing_action } : {}),
2123
+ },
1984
2124
  };
1985
2125
 
1986
2126
  addOptimisticMessage(optimisticMessage);
@@ -2051,6 +2191,13 @@ function ModernAgentConversationInner({
2051
2191
  ],
2052
2192
  );
2053
2193
 
2194
+ useEffect(() => {
2195
+ if (sendMessageRef) sendMessageRef.current = handleSendMessage;
2196
+ return () => {
2197
+ if (sendMessageRef?.current === handleSendMessage) sendMessageRef.current = null;
2198
+ };
2199
+ }, [handleSendMessage, sendMessageRef]);
2200
+
2054
2201
  // After the user connects an MCP server requested via request_mcp_connection, flag the
2055
2202
  // conversation for tool re-discovery and resume it with a confirmation message so the agent
2056
2203
  // continues automatically with the newly-available tools.
@@ -2384,6 +2531,21 @@ function ModernAgentConversationInner({
2384
2531
  return false;
2385
2532
  }).length;
2386
2533
  }, [messages]);
2534
+ const selectedArtifactRefresh = useMemo(() => {
2535
+ if (!selectedArtifactPath) return { key: artifactRefreshKey, details: undefined };
2536
+
2537
+ let key = 0;
2538
+ let details: Record<string, unknown> | undefined;
2539
+ for (const message of messages) {
2540
+ const candidate = message.details as Record<string, unknown> | undefined;
2541
+ if (!isArtifactRefreshEvent(candidate, selectedArtifactPath)) continue;
2542
+ key++;
2543
+ details = candidate;
2544
+ }
2545
+ return { key, details };
2546
+ }, [artifactRefreshKey, messages, selectedArtifactPath]);
2547
+ const canCollaborateWithArtifacts =
2548
+ interactive && isPlaybackLive && effectiveWorkflowStatus?.toUpperCase() === 'RUNNING';
2387
2549
 
2388
2550
  // PERFORMANCE: Memoize taskLabels to prevent AllMessagesMixed re-renders
2389
2551
  const taskLabels = useMemo(
@@ -2407,7 +2569,7 @@ function ModernAgentConversationInner({
2407
2569
  workflowRunId={workflowRunId || ''}
2408
2570
  viewMode={viewMode}
2409
2571
  onViewModeChange={handleViewModeChange}
2410
- showPlanPanel={showRightPanelProp && showSlidingPanel}
2572
+ showPlanPanel={isRightPanelVisible}
2411
2573
  hasPlan={showRightPanelProp && plans.length > 0}
2412
2574
  showPlanButton={showRightPanelProp && !conversationTab}
2413
2575
  onTogglePlanPanel={handleTogglePlanPanel}
@@ -2481,6 +2643,7 @@ function ModernAgentConversationInner({
2481
2643
  taskLabels={taskLabels}
2482
2644
  streamingMessages={displayedStreamingMessages}
2483
2645
  onSendMessage={isPlaybackLive ? handleSendMessage : undefined}
2646
+ onOpenArtifact={showArtifacts ? handleOpenArtifact : undefined}
2484
2647
  messageItemClassNames={messageItemClassNames}
2485
2648
  messageStyleOverrides={messageStyleOverrides}
2486
2649
  toolCallGroupClassNames={toolCallGroupClassNames}
@@ -2553,56 +2716,59 @@ function ModernAgentConversationInner({
2553
2716
  )
2554
2717
  ) : (
2555
2718
  (showInput || canContinueConversation) && (
2556
- <MessageInput
2557
- onSend={handleSendMessage}
2558
- onStop={allowWorkflowControl ? handleStopWorkflow : undefined}
2559
- approvalModeSlot={
2560
- interactive && toolApprovalMode ? (
2561
- <AgentApprovalModeSelector
2562
- mode={toolApprovalMode}
2563
- onChange={handleToolApprovalModeChange}
2564
- disabled={
2565
- !isPlaybackLive || isWorkflowTerminal || !allowWorkflowControl
2566
- }
2719
+ <>
2720
+ {composerContext}
2721
+ <MessageInput
2722
+ onSend={handleSendMessage}
2723
+ onStop={allowWorkflowControl ? handleStopWorkflow : undefined}
2724
+ approvalModeSlot={
2725
+ interactive && toolApprovalMode ? (
2726
+ <AgentApprovalModeSelector
2727
+ mode={toolApprovalMode}
2728
+ onChange={handleToolApprovalModeChange}
2729
+ disabled={
2730
+ !isPlaybackLive || isWorkflowTerminal || !allowWorkflowControl
2731
+ }
2732
+ />
2733
+ ) : undefined
2734
+ }
2735
+ mcpSlot={
2736
+ <McpConnectionsActionMenu
2737
+ disabledCollections={mcpDisabled}
2738
+ onChange={handleMcpDisabledChange}
2739
+ onConnectionChange={handleMcpConnectionChange}
2567
2740
  />
2568
- ) : undefined
2569
- }
2570
- mcpSlot={
2571
- <McpConnectionsActionMenu
2572
- disabledCollections={mcpDisabled}
2573
- onChange={handleMcpDisabledChange}
2574
- onConnectionChange={handleMcpConnectionChange}
2575
- />
2576
- }
2577
- disabled={isUploading || !isPlaybackLive}
2578
- isSending={isSending || isUploading}
2579
- isStopping={isStopping}
2580
- isStreaming={!effectiveIsCompleted}
2581
- isCompleted={effectiveIsCompleted}
2582
- contextWindowUsage={canCompactContext ? contextWindowUsage : undefined}
2583
- onCompactContext={canCompactContext ? handleCompactContext : undefined}
2584
- isCompactingContext={isCompactingContext}
2585
- activeTaskCount={activeTaskCount}
2586
- activeWorkstreams={composerActiveWorkstreams}
2587
- placeholder={composerPlaceholder}
2588
- onFilesSelected={canUploadFiles ? handleFileUpload : undefined}
2589
- uploadedFiles={uploadedFiles}
2590
- onRemoveFile={onRemoveFile}
2591
- onRemoveProcessingFile={handleRemoveProcessingFile}
2592
- acceptedFileTypes={acceptedFileTypes}
2593
- maxFiles={maxFiles}
2594
- processingFiles={processingFiles}
2595
- artifactRunId={agentRunId}
2596
- hasProcessingFiles={hasProcessingFiles}
2597
- renderDocumentSearch={renderDocumentSearch}
2598
- selectedDocuments={selectedDocuments}
2599
- onRemoveDocument={onRemoveDocument}
2600
- hideObjectLinking={hideObjectLinking}
2601
- hideFileUpload={!canUploadFiles}
2602
- disableDropZone={canUploadFiles}
2603
- className={inputContainerClassName}
2604
- inputClassName={inputClassName}
2605
- />
2741
+ }
2742
+ disabled={isUploading || !isPlaybackLive}
2743
+ isSending={isSending || isUploading}
2744
+ isStopping={isStopping}
2745
+ isStreaming={!effectiveIsCompleted}
2746
+ isCompleted={effectiveIsCompleted}
2747
+ contextWindowUsage={canCompactContext ? contextWindowUsage : undefined}
2748
+ onCompactContext={canCompactContext ? handleCompactContext : undefined}
2749
+ isCompactingContext={isCompactingContext}
2750
+ activeTaskCount={activeTaskCount}
2751
+ activeWorkstreams={composerActiveWorkstreams}
2752
+ placeholder={composerPlaceholder}
2753
+ onFilesSelected={canUploadFiles ? handleFileUpload : undefined}
2754
+ uploadedFiles={uploadedFiles}
2755
+ onRemoveFile={onRemoveFile}
2756
+ onRemoveProcessingFile={handleRemoveProcessingFile}
2757
+ acceptedFileTypes={acceptedFileTypes}
2758
+ maxFiles={maxFiles}
2759
+ processingFiles={processingFiles}
2760
+ artifactRunId={agentRunId}
2761
+ hasProcessingFiles={hasProcessingFiles}
2762
+ renderDocumentSearch={renderDocumentSearch}
2763
+ selectedDocuments={selectedDocuments}
2764
+ onRemoveDocument={onRemoveDocument}
2765
+ hideObjectLinking={hideObjectLinking}
2766
+ hideFileUpload={!canUploadFiles}
2767
+ disableDropZone={canUploadFiles}
2768
+ className={inputContainerClassName}
2769
+ inputClassName={inputClassName}
2770
+ />
2771
+ </>
2606
2772
  )
2607
2773
  )}
2608
2774
  </div>
@@ -2719,7 +2885,11 @@ function ModernAgentConversationInner({
2719
2885
  processingFiles={processingFilesProp ?? processingFiles}
2720
2886
  // Artifacts
2721
2887
  showArtifacts={showArtifacts}
2722
- artifactRefreshKey={artifactRefreshKey}
2888
+ artifactRefreshKey={selectedArtifactRefresh.key}
2889
+ artifactRefreshDetails={selectedArtifactRefresh.details}
2890
+ selectedArtifactPath={selectedArtifactPath}
2891
+ onSelectedArtifactPathChange={setSelectedArtifactPath}
2892
+ onSendMessage={canCollaborateWithArtifacts ? handleSendMessage : undefined}
2723
2893
  // Messages (for workstreams tab context)
2724
2894
  messages={messages}
2725
2895
  // Payload content