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

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 (176) hide show
  1. package/lib/core/hooks/useScrollableSearch.d.ts +1 -1
  2. package/lib/core/hooks/useScrollableSearch.d.ts.map +1 -1
  3. package/lib/core/hooks/useScrollableSearch.js +15 -2
  4. package/lib/core/hooks/useScrollableSearch.js.map +1 -1
  5. package/lib/env/index.d.ts +4 -0
  6. package/lib/env/index.d.ts.map +1 -1
  7. package/lib/env/index.js.map +1 -1
  8. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts +1 -1
  9. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts.map +1 -1
  10. package/lib/features/agent/chat/AgentRequestInputOverlay.js +3 -8
  11. package/lib/features/agent/chat/AgentRequestInputOverlay.js.map +1 -1
  12. package/lib/features/agent/chat/ModernAgentConversation.d.ts +8 -1
  13. package/lib/features/agent/chat/ModernAgentConversation.d.ts.map +1 -1
  14. package/lib/features/agent/chat/ModernAgentConversation.js +53 -17
  15. package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -1
  16. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.d.ts +2 -1
  17. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.d.ts.map +1 -1
  18. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.js +25 -10
  19. package/lib/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.js.map +1 -1
  20. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  21. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +24 -9
  22. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  23. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.d.ts.map +1 -1
  24. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js +15 -3
  25. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js.map +1 -1
  26. package/lib/features/agent/chat/ModernAgentOutput/Header.js +2 -2
  27. package/lib/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  28. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +2 -1
  29. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
  30. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js +2 -2
  31. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
  32. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  33. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +2 -2
  34. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  35. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts +9 -1
  36. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts.map +1 -1
  37. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js +97 -2
  38. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js.map +1 -1
  39. package/lib/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -1
  40. package/lib/features/agent/chat/hooks/useAgentStream.js +12 -3
  41. package/lib/features/agent/chat/hooks/useAgentStream.js.map +1 -1
  42. package/lib/features/agent/chat/index.d.ts +1 -1
  43. package/lib/features/agent/chat/index.d.ts.map +1 -1
  44. package/lib/features/agent/chat/index.js.map +1 -1
  45. package/lib/features/facets/PromptsFacetsNav.d.ts +8 -6
  46. package/lib/features/facets/PromptsFacetsNav.d.ts.map +1 -1
  47. package/lib/features/facets/PromptsFacetsNav.js +8 -3
  48. package/lib/features/facets/PromptsFacetsNav.js.map +1 -1
  49. package/lib/features/store/objects/components/ContentOverview.js +4 -1
  50. package/lib/features/store/objects/components/ContentOverview.js.map +1 -1
  51. package/lib/features/store/objects/components/useContentPanelHooks.d.ts +31 -3
  52. package/lib/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
  53. package/lib/features/store/objects/search/DocumentSearchContext.d.ts +128 -6
  54. package/lib/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -1
  55. package/lib/features/store/objects/selection/ObjectsActionContext.d.ts +2 -2
  56. package/lib/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -1
  57. package/lib/features/store/objects/selection/ObjectsActionSpec.d.ts +2 -2
  58. package/lib/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -1
  59. package/lib/features/store/objects/selection/SelectionActions.d.ts +2 -2
  60. package/lib/features/store/objects/selection/SelectionActions.d.ts.map +1 -1
  61. package/lib/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
  62. package/lib/features/store/types/IntakePolicyEditor.d.ts +2 -2
  63. package/lib/features/store/types/IntakePolicyEditor.d.ts.map +1 -1
  64. package/lib/features/store/types/IntakePolicyEditor.js +5 -1
  65. package/lib/features/store/types/IntakePolicyEditor.js.map +1 -1
  66. package/lib/features/store/types/IntakePolicyForm.d.ts.map +1 -1
  67. package/lib/features/store/types/IntakePolicyForm.js +2 -2
  68. package/lib/features/store/types/IntakePolicyForm.js.map +1 -1
  69. package/lib/features/store/types/ObjectSchemaEditor.d.ts +2 -2
  70. package/lib/features/store/types/ObjectSchemaEditor.d.ts.map +1 -1
  71. package/lib/features/store/types/SelectContentType.d.ts +2 -2
  72. package/lib/features/store/types/SelectContentType.d.ts.map +1 -1
  73. package/lib/features/store/types/SelectContentType.js.map +1 -1
  74. package/lib/features/store/types/SelectContentTypeModal.d.ts +2 -2
  75. package/lib/features/store/types/SelectContentTypeModal.d.ts.map +1 -1
  76. package/lib/features/store/types/SelectContentTypeModal.js.map +1 -1
  77. package/lib/features/store/types/TableLayoutEditor.d.ts +2 -2
  78. package/lib/features/store/types/TableLayoutEditor.d.ts.map +1 -1
  79. package/lib/features/store/types/TypeRegistry.d.ts +1267 -6
  80. package/lib/features/store/types/TypeRegistry.d.ts.map +1 -1
  81. package/lib/features/store/types/TypeRegistry.js +5 -0
  82. package/lib/features/store/types/TypeRegistry.js.map +1 -1
  83. package/lib/features/store/types/intake-policy-editor.logic.d.ts +9 -1
  84. package/lib/features/store/types/intake-policy-editor.logic.d.ts.map +1 -1
  85. package/lib/features/store/types/intake-policy-editor.logic.js +9 -1
  86. package/lib/features/store/types/intake-policy-editor.logic.js.map +1 -1
  87. package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts +1251 -1
  88. package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts.map +1 -1
  89. package/lib/features/store/types/typeCatalogCache.d.ts +2 -2
  90. package/lib/features/store/types/typeCatalogCache.d.ts.map +1 -1
  91. package/lib/features/store/types/typeCatalogCache.js +4 -0
  92. package/lib/features/store/types/typeCatalogCache.js.map +1 -1
  93. package/lib/features/user/UserInfo.d.ts +118 -7
  94. package/lib/features/user/UserInfo.d.ts.map +1 -1
  95. package/lib/i18n/locales/ar.json +2 -1
  96. package/lib/i18n/locales/de.json +2 -1
  97. package/lib/i18n/locales/en.json +5 -1
  98. package/lib/i18n/locales/es.json +2 -1
  99. package/lib/i18n/locales/fr.json +2 -1
  100. package/lib/i18n/locales/it.json +2 -1
  101. package/lib/i18n/locales/ja.json +2 -1
  102. package/lib/i18n/locales/ko.json +2 -1
  103. package/lib/i18n/locales/pt.json +2 -1
  104. package/lib/i18n/locales/ru.json +2 -1
  105. package/lib/i18n/locales/tr.json +2 -1
  106. package/lib/i18n/locales/zh-TW.json +2 -1
  107. package/lib/i18n/locales/zh.json +2 -1
  108. package/lib/session/UserSession.d.ts +18 -4
  109. package/lib/session/UserSession.d.ts.map +1 -1
  110. package/lib/shell/apps/AppInstallationProvider.d.ts +222 -2
  111. package/lib/shell/apps/AppInstallationProvider.d.ts.map +1 -1
  112. package/lib/shell/login/InviteAcceptModal.js.map +1 -1
  113. package/lib/vertesia-ui-core.js +1 -1
  114. package/lib/vertesia-ui-core.js.map +1 -1
  115. package/lib/vertesia-ui-features.js +34 -34
  116. package/lib/vertesia-ui-features.js.map +1 -1
  117. package/lib/vertesia-ui-i18n.js +13 -13
  118. package/lib/vertesia-ui-widgets.js +18 -18
  119. package/lib/vertesia-ui-widgets.js.map +1 -1
  120. package/lib/widgets/monacoEditor/MonacoEditor.d.ts +7 -1
  121. package/lib/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -1
  122. package/lib/widgets/monacoEditor/MonacoEditor.js +62 -6
  123. package/lib/widgets/monacoEditor/MonacoEditor.js.map +1 -1
  124. package/package.json +31 -31
  125. package/src/core/hooks/useScrollableSearch.test.tsx +139 -0
  126. package/src/core/hooks/useScrollableSearch.tsx +17 -3
  127. package/src/env/index.ts +2 -0
  128. package/src/features/agent/chat/AgentChatPlaybackControls.test.tsx +2 -0
  129. package/src/features/agent/chat/AgentRequestInputOverlay.test.tsx +51 -6
  130. package/src/features/agent/chat/AgentRequestInputOverlay.tsx +5 -7
  131. package/src/features/agent/chat/ModernAgentConversation.test.tsx +195 -3
  132. package/src/features/agent/chat/ModernAgentConversation.tsx +106 -22
  133. package/src/features/agent/chat/ModernAgentOutput/ActiveWorkstreamsSummary.tsx +75 -20
  134. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +112 -0
  135. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +62 -10
  136. package/src/features/agent/chat/ModernAgentOutput/AttachmentPreview.tsx +36 -4
  137. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +2 -2
  138. package/src/features/agent/chat/ModernAgentOutput/MessageInput.test.tsx +71 -0
  139. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +3 -1
  140. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +18 -4
  141. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.test.ts +95 -0
  142. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.ts +111 -1
  143. package/src/features/agent/chat/hooks/useAgentStream.test.tsx +57 -0
  144. package/src/features/agent/chat/hooks/useAgentStream.ts +12 -3
  145. package/src/features/agent/chat/index.ts +1 -0
  146. package/src/features/facets/PromptsFacetsNav.tsx +17 -9
  147. package/src/features/store/objects/components/ContentOverview.tsx +4 -1
  148. package/src/features/store/objects/selection/ObjectsActionContext.tsx +2 -2
  149. package/src/features/store/objects/selection/ObjectsActionSpec.ts +2 -2
  150. package/src/features/store/objects/selection/SelectionActions.tsx +2 -2
  151. package/src/features/store/objects/upload/DocumentUploadModal.tsx +2 -2
  152. package/src/features/store/types/IntakePolicyEditor.tsx +12 -4
  153. package/src/features/store/types/IntakePolicyForm.tsx +25 -0
  154. package/src/features/store/types/ObjectSchemaEditor.tsx +2 -2
  155. package/src/features/store/types/SelectContentType.tsx +9 -9
  156. package/src/features/store/types/SelectContentTypeModal.tsx +5 -5
  157. package/src/features/store/types/TableLayoutEditor.tsx +2 -2
  158. package/src/features/store/types/TypeRegistry.ts +8 -3
  159. package/src/features/store/types/intake-policy-editor.logic.ts +10 -2
  160. package/src/features/store/types/typeCatalogCache.ts +10 -3
  161. package/src/i18n/locales/ar.json +2 -1
  162. package/src/i18n/locales/de.json +2 -1
  163. package/src/i18n/locales/en.json +5 -1
  164. package/src/i18n/locales/es.json +2 -1
  165. package/src/i18n/locales/fr.json +2 -1
  166. package/src/i18n/locales/it.json +2 -1
  167. package/src/i18n/locales/ja.json +2 -1
  168. package/src/i18n/locales/ko.json +2 -1
  169. package/src/i18n/locales/pt.json +2 -1
  170. package/src/i18n/locales/ru.json +2 -1
  171. package/src/i18n/locales/tr.json +2 -1
  172. package/src/i18n/locales/zh-TW.json +2 -1
  173. package/src/i18n/locales/zh.json +2 -1
  174. package/src/shell/login/InviteAcceptModal.tsx +4 -4
  175. package/src/widgets/markdown/ArtifactEditingSurface.test.tsx +13 -9
  176. package/src/widgets/monacoEditor/MonacoEditor.tsx +83 -7
@@ -34,7 +34,7 @@ interface ScrollableSearchOptions<ResultT, PayloadT, PageT = number> {
34
34
  */
35
35
  nextPageTrigger: React.RefObject<HTMLElement | null>;
36
36
  }
37
- interface ScrollableSearchResult<ResultT, PayloadT, PageT = number> {
37
+ export interface ScrollableSearchResult<ResultT, PayloadT, PageT = number> {
38
38
  /**
39
39
  * Initiates a new search with the given payload
40
40
  * @param payload The search payload
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollableSearch.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useScrollableSearch.tsx"],"names":[],"mappings":"AAGA,UAAU,cAAc,CAAC,OAAO,EAAE,KAAK;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,KAAK,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,GAAG,MAAM,IAAI,CAC/C,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,GAAG,IAAI,EAClB,QAAQ,EAAE,MAAM,KACf,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7C,UAAU,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM;IAC/D;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE3C;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACxD;AAED,UAAU,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM;IAC9D;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IAEpC;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EACjE,IAAI,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EACvD,YAAY,GAAE,OAAO,EAAO,GAC7B,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAoFlD;AAED,KAAK,eAAe,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAEnH,UAAU,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CACtD,SAAQ,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC1E,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EACxD,IAAI,EAAE,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CAAC,EACvD,YAAY,GAAE,OAAO,EAAO,GAC7B,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAcnD"}
1
+ {"version":3,"file":"useScrollableSearch.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useScrollableSearch.tsx"],"names":[],"mappings":"AAGA,UAAU,cAAc,CAAC,OAAO,EAAE,KAAK;IACnC;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,KAAK,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,GAAG,MAAM,IAAI,CAC/C,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,GAAG,IAAI,EAClB,QAAQ,EAAE,MAAM,KACf,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7C,UAAU,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM;IAC/D;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE3C;;OAEG;IACH,OAAO,EAAE,QAAQ,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM;IACrE;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IAEpC;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,OAAO,EAAE,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EACjE,IAAI,EAAE,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EACvD,YAAY,GAAE,OAAO,EAAO,GAC7B,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAkGlD;AAED,KAAK,eAAe,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAEnH,UAAU,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CACtD,SAAQ,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC1E,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,QAAQ,EACxD,IAAI,EAAE,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CAAC,EACvD,YAAY,GAAE,OAAO,EAAO,GAC7B,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAcnD"}
@@ -11,25 +11,38 @@ export function useScrollableSearch(opts, dependencies = []) {
11
11
  const [results, setResults] = useState([]);
12
12
  const [nextPage, setNextPage] = useState(null);
13
13
  const [isSearching, setIsSearching] = useState(false);
14
+ // Bumped by search()/refresh() so the fetch effect re-runs even when the
15
+ // payload/page state is unchanged (e.g. refresh on the first page).
16
+ const [refreshTick, setRefreshTick] = useState(0);
14
17
  // Track current request to prevent stale results
15
18
  const requestIdRef = useRef(0);
19
+ // Latest-ref for the search function: callers routinely pass an inline
20
+ // closure, which gets a new identity on every render. Depending on it in
21
+ // the fetch effect made every completed request re-trigger the effect —
22
+ // an infinite request loop. The ref always points at the latest closure
23
+ // without participating in the effect's dependencies.
24
+ const searchFnRef = useRef(opts.search);
25
+ searchFnRef.current = opts.search;
16
26
  const search = (payload) => {
17
27
  setPage(null);
18
28
  setResults([]); // Clear old results immediately
19
29
  setNextPage(null);
20
30
  setLastPayload(payload);
31
+ setRefreshTick((tick) => tick + 1);
21
32
  };
22
33
  const searchMore = () => {
23
34
  if (nextPage !== null) {
24
35
  setPage(nextPage);
25
36
  }
26
37
  };
38
+ // biome-ignore lint/correctness/useExhaustiveDependencies: refreshTick is an intentional external trigger — refresh() bumps it to re-run the fetch when payload/page are unchanged
27
39
  useEffect(() => {
28
40
  // Increment request ID to mark previous requests as stale
29
41
  requestIdRef.current += 1;
30
42
  const currentRequestId = requestIdRef.current;
31
43
  setIsSearching(true);
32
- opts.search(lastPayload, page, pageSize)
44
+ searchFnRef
45
+ .current(lastPayload, page, pageSize)
33
46
  .then((r) => {
34
47
  // Only update state if this is still the current request
35
48
  if (currentRequestId !== requestIdRef.current) {
@@ -59,7 +72,7 @@ export function useScrollableSearch(opts, dependencies = []) {
59
72
  setIsSearching(false);
60
73
  }
61
74
  });
62
- }, [...dependencies, lastPayload, opts.search, page, pageSize]);
75
+ }, [...dependencies, lastPayload, refreshTick, page, pageSize]);
63
76
  // Intersection observer for infinite scrolling
64
77
  useIntersectionObserver(opts.nextPageTrigger, () => {
65
78
  if (!isSearching && nextPage) {
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollableSearch.js","sourceRoot":"","sources":["../../../src/core/hooks/useScrollableSearch.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useScrollableSearch.js","sourceRoot":"","sources":["../../../src/core/hooks/useScrollableSearch.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export interface EnvProps {
13
13
  sts: string;
14
14
  git?: string;
15
15
  mcp?: string;
16
+ /** Appgen app-gateway endpoint (serves live development previews and app bundles). */
17
+ gateway?: string;
16
18
  };
17
19
  firebase?: {
18
20
  apiKey: string;
@@ -68,6 +70,8 @@ export declare class VertesiaEnvironment implements Readonly<EnvProps> {
68
70
  sts: string;
69
71
  git?: string;
70
72
  mcp?: string;
73
+ /** Appgen app-gateway endpoint (serves live development previews and app bundles). */
74
+ gateway?: string;
71
75
  };
72
76
  get firebase(): {
73
77
  apiKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/env/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/env/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/env/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,8DAA8D;AAsD9D,MAAM,OAAO,mBAAmB;IACR;IAApB,YAAoB,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAErD,IAAI,CAAC,KAAgB;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,IAAI,CAA2B,IAAO;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;IACxC,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;IACnC,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjE,CAAC;IAED,IAAI,KAAK;QACL,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC;IAC5C,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;IACrC,CAAC;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAuB;QAC3B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,GAAG,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAEtC,OAAO,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/env/index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,8DAA8D;AAwD9D,MAAM,OAAO,mBAAmB;IACR;IAApB,YAAoB,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAErD,IAAI,CAAC,KAAgB;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,IAAI,CAA2B,IAAO;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;IACxC,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC;IACnC,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjE,CAAC;IAED,IAAI,KAAK;QACL,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC;IAC5C,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;IACrC,CAAC;IAED,IAAI,iBAAiB;QACjB,OAAO,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAuB;QAC3B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,GAAG,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAEtC,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -4,7 +4,7 @@ export interface AgentRequestInputOverlayProps {
4
4
  message?: RequestInputMessageWithUx;
5
5
  onSendMessage?: (message: string, metadata?: Record<string, unknown>) => void;
6
6
  /** Called after the user connects the MCP server requested by request_mcp_connection. */
7
- onMcpConnected?: (cfg: McpConnectUxConfig) => void;
7
+ onMcpConnected?: (cfg: McpConnectUxConfig, metadata?: Record<string, unknown>) => void;
8
8
  isLoading?: boolean;
9
9
  disabled?: boolean;
10
10
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRequestInputOverlay.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/chat/AgentRequestInputOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAO3D,OAAO,EAGH,KAAK,yBAAyB,EACjC,MAAM,0CAA0C,CAAC;AAElD,MAAM,WAAW,6BAA6B;IAC1C,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9E,yFAAyF;IACzF,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACnD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD,wBAAgB,wBAAwB,CAAC,EACrC,OAAO,EACP,aAAa,EACb,cAAc,EACd,SAAiB,EACjB,QAAgB,EAChB,SAAS,GACZ,EAAE,6BAA6B,sCAkE/B"}
1
+ {"version":3,"file":"AgentRequestInputOverlay.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/chat/AgentRequestInputOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAO3D,OAAO,EAIH,KAAK,yBAAyB,EAEjC,MAAM,0CAA0C,CAAC;AAElD,MAAM,WAAW,6BAA6B;IAC1C,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9E,yFAAyF;IACzF,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD,wBAAgB,wBAAwB,CAAC,EACrC,OAAO,EACP,aAAa,EACb,cAAc,EACd,SAAiB,EACjB,QAAgB,EAChB,SAAS,GACZ,EAAE,6BAA6B,sCA8D/B"}
@@ -5,7 +5,7 @@ import { useUserSession } from '@vertesia/ui/session';
5
5
  import { XIcon } from 'lucide-react';
6
6
  import { RemoteMcpConnectionButton } from '../../oauth/RemoteMcpConnectionButton.js';
7
7
  import { AskUserWidget } from './AskUserWidget';
8
- import { getRequestInputDisplayText, getToolApprovalResponseMetadata, } from './ModernAgentOutput/requestInputMessages';
8
+ import { getRequestInputDisplayText, getRequestInputResponseMetadata, getToolApprovalResponseMetadata, sendRequestInputResponse, } from './ModernAgentOutput/requestInputMessages';
9
9
  function McpRequestInputControls({ mcpConnect, onMcpConnected, onDecline, disabled }) {
10
10
  const { client } = useUserSession();
11
11
  const { t } = useUITranslation();
@@ -36,16 +36,11 @@ export function AgentRequestInputOverlay({ message, onSendMessage, onMcpConnecte
36
36
  const send = (value, metadata) => {
37
37
  if (isDisabled)
38
38
  return;
39
- if (metadata) {
40
- onSendMessage?.(value, metadata);
41
- }
42
- else {
43
- onSendMessage?.(value);
44
- }
39
+ sendRequestInputResponse(onSendMessage, message, value, metadata);
45
40
  };
46
41
  const wrapperClassName = cn('flex-shrink-0 border-t border-border/70 bg-background/95 backdrop-blur', 'fixed bottom-0 end-0 start-0 z-20 lg:sticky lg:start-auto lg:end-auto', 'pb-safe-area', className);
47
42
  if (mcpConnect) {
48
- return (_jsx("div", { className: wrapperClassName, "data-agent-request-input-overlay": true, children: _jsxs("div", { className: "mx-auto flex w-full max-w-3xl flex-col gap-3 px-3 py-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("div", { className: "min-w-0 text-sm leading-6 text-foreground/85", children: displayText }), _jsx(McpRequestInputControls, { mcpConnect: mcpConnect, onMcpConnected: onMcpConnected, onDecline: () => send(t('agent.mcpDeclinedMessage', { name: mcpConnect.name })), disabled: isDisabled })] }) }));
43
+ return (_jsx("div", { className: wrapperClassName, "data-agent-request-input-overlay": true, children: _jsxs("div", { className: "mx-auto flex w-full max-w-3xl flex-col gap-3 px-3 py-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("div", { className: "min-w-0 text-sm leading-6 text-foreground/85", children: displayText }), _jsx(McpRequestInputControls, { mcpConnect: mcpConnect, onMcpConnected: (cfg) => onMcpConnected?.(cfg, getRequestInputResponseMetadata(message)), onDecline: () => send(t('agent.mcpDeclinedMessage', { name: mcpConnect.name })), disabled: isDisabled })] }) }));
49
44
  }
50
45
  return (_jsx("div", { className: wrapperClassName, "data-agent-request-input-overlay": true, children: _jsx("div", { className: "mx-auto w-full max-w-3xl px-3 py-3", children: _jsx(AskUserWidget, { question: displayText, options: options, variant: uxConfig.variant, multiSelect: uxConfig.multiSelect, allowFreeResponse: options.length === 0 || !!freeResponse, placeholder: freeResponse?.placeholder, submitLabel: freeResponse?.submit_label, onSelect: (optionId) => send(optionId, getToolApprovalResponseMetadata(message, optionId)), onMultiSelect: (optionIds) => send(optionIds.join(', ')), onSubmit: (value) => send(value, freeResponse?.metadata), hideBorder: true, compact: true, isLoading: isDisabled, className: "my-0", cardClassName: "bg-background/80 shadow-lg shadow-black/5 dark:shadow-none" }) }) }));
51
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRequestInputOverlay.js","sourceRoot":"","sources":["../../../../src/features/agent/chat/AgentRequestInputOverlay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentRequestInputOverlay.js","sourceRoot":"","sources":["../../../../src/features/agent/chat/AgentRequestInputOverlay.tsx"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import type { ToolCallGroupClassNames } from './ModernAgentOutput/ToolCallGroup'
10
10
  export interface StartWorkflowOptions {
11
11
  tool_approval_mode?: AgentToolApprovalMode;
12
12
  }
13
+ /** Controls whether a persisted message is included in the rendered conversation transcript. */
14
+ export type AgentMessageFilter = (message: AgentMessage) => boolean;
13
15
  export type StartWorkflowFn = (initialMessage?: string, options?: StartWorkflowOptions) => Promise<{
14
16
  agent_run_id: string;
15
17
  } | undefined>;
@@ -117,6 +119,11 @@ export interface ModernAgentConversationProps {
117
119
  hideDocumentPanel?: boolean;
118
120
  /** Message types to exclude from the conversation view */
119
121
  hiddenMessageTypes?: AgentMessageType[];
122
+ /**
123
+ * Optional presentation-only predicate for transcript messages. Returning false hides the message without
124
+ * changing the underlying conversation stream, workflow state, plans, or pending input.
125
+ */
126
+ messageFilter?: AgentMessageFilter;
120
127
  getAttachedDocs?: () => SelectedDocument[];
121
128
  onAttachmentsSent?: () => void;
122
129
  isUploading?: boolean;
@@ -188,7 +195,7 @@ export interface ModernAgentConversationProps {
188
195
  initialToolApprovalMode?: AgentToolApprovalMode;
189
196
  /** Force display playback controls on or off. When omitted, local playback can be toggled from the header. */
190
197
  enablePlayback?: boolean;
191
- /** Show a local toggle for display playback controls in the conversation action rail. */
198
+ /** Show the Debug button for local playback controls. Defaults to true; set to false to hide it. */
192
199
  showPlaybackToggle?: boolean;
193
200
  }
194
201
  export declare function ModernAgentConversation(props: ModernAgentConversationProps): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ModernAgentConversation.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/chat/ModernAgentConversation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModernAgentConversation.d.ts","sourceRoot":"","sources":["../../../../src/features/agent/chat/ModernAgentConversation.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { Button, cn, insertNewlineAtCursor, MessageBox, Modal, ModalBody, ModalF
5
5
  import { useUITranslation } from '@vertesia/ui/i18n';
6
6
  import { useUserSession } from '@vertesia/ui/session';
7
7
  import { AgentResourceResolverProvider, isArtifactRefreshEvent, } from '@vertesia/ui/widgets';
8
- import { ArrowUpIcon, Bot, CheckCircle, Cpu, FileTextIcon, UploadIcon, XIcon } from 'lucide-react';
8
+ import { ArrowUpIcon, Bot, CheckCircle, ChevronDown, Cpu, FileTextIcon, UploadIcon, XIcon } from 'lucide-react';
9
9
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
10
10
  import { McpConnectionsActionMenu } from '../../oauth/McpConnectionsButton.js';
11
11
  import { AgentApprovalModeSelector } from './AgentApprovalModeSelector';
@@ -23,7 +23,7 @@ import { ActiveWorkstreamsSummary } from './ModernAgentOutput/ActiveWorkstreamsS
23
23
  import AllMessagesMixed from './ModernAgentOutput/AllMessagesMixed';
24
24
  import Header from './ModernAgentOutput/Header';
25
25
  import MessageInput from './ModernAgentOutput/MessageInput';
26
- import { getPendingRequestInputMessage } from './ModernAgentOutput/requestInputMessages';
26
+ import { clearRequestInputIdAnsweredForSession, getPendingRequestInputMessage, getRequestInputResolutionKey, getRequestInputResponseIdFromMetadata, isRequestInputAnsweredForSession, markRequestInputIdAnsweredForSession, } from './ModernAgentOutput/requestInputMessages';
27
27
  import { debugAgentChat, filterMessagesForActiveWorkstream, getConversationUrl, getWorkstreamId, isInProgress, isPassiveArtifactUpdate, } from './ModernAgentOutput/utils';
28
28
  import { createPlaybackState, getPlaybackCursorIndex, isAgentChatPlaybackAvailable, isAgentChatPlaybackEnabled, } from './playback';
29
29
  import { SkillWidgetProvider } from './SkillWidgetProvider';
@@ -32,6 +32,7 @@ import { VegaLiteChart } from './VegaLiteChart';
32
32
  import { ThinkingMessages } from './WaitingMessages';
33
33
  import { getWorkstreamDisplayName, getWorkstreamLaunchDetails, getWorkstreamLifecycleStatus, isWorkstreamInternalResultMessage, } from './workstreams.js';
34
34
  const EMPTY_STREAMING_MESSAGES = new Map();
35
+ const COLLAPSED_STAGED_FILE_COUNT = 3;
35
36
  function getTimestampMs(timestamp) {
36
37
  if (typeof timestamp === 'number')
37
38
  return timestamp;
@@ -55,7 +56,12 @@ function toContextWindowUsage(messages) {
55
56
  if (!details)
56
57
  continue;
57
58
  const tokenUsage = details.token_usage;
58
- const usedTokens = getNumberDetail(tokenUsage?.total);
59
+ // Mirror the server's checkpoint trigger (getContextPressureTokens):
60
+ // the last call's prompt size is the actual context; `total` includes
61
+ // reasoning output that never re-enters context and would overstate
62
+ // pressure on reasoning models. Fall back to total when no breakdown.
63
+ const promptTokens = getNumberDetail(tokenUsage?.prompt);
64
+ const usedTokens = promptTokens && promptTokens > 0 ? promptTokens : getNumberDetail(tokenUsage?.total);
59
65
  const checkpointTokens = getNumberDetail(details.checkpoint_threshold) ?? getNumberDetail(details.checkpoint_at);
60
66
  if (typeof usedTokens !== 'number' || typeof checkpointTokens !== 'number' || checkpointTokens <= 0) {
61
67
  continue;
@@ -397,6 +403,9 @@ acceptedFileTypes, maxFiles = 5, hideHeader = false, hideFileUpload = false, hid
397
403
  const fileInputRef = useRef(null);
398
404
  // Staged files - stored locally until workflow starts
399
405
  const [stagedFiles, setStagedFiles] = useState([]);
406
+ const [areStagedFilesExpanded, setAreStagedFilesExpanded] = useState(false);
407
+ const visibleStagedFiles = areStagedFilesExpanded ? stagedFiles : stagedFiles.slice(0, COLLAPSED_STAGED_FILE_COUNT);
408
+ const hiddenStagedFileCount = stagedFiles.length - COLLAPSED_STAGED_FILE_COUNT;
400
409
  useEffect(() => {
401
410
  onAgentWorkingChange?.(isSending);
402
411
  }, [isSending, onAgentWorkingChange]);
@@ -470,6 +479,11 @@ acceptedFileTypes, maxFiles = 5, hideHeader = false, hideFileUpload = false, hid
470
479
  const removeStagedFile = useCallback((index) => {
471
480
  setStagedFiles((prev) => prev.filter((_, i) => i !== index));
472
481
  }, []);
482
+ useEffect(() => {
483
+ if (stagedFiles.length <= COLLAPSED_STAGED_FILE_COUNT) {
484
+ setAreStagedFilesExpanded(false);
485
+ }
486
+ }, [stagedFiles.length]);
473
487
  useEffect(() => {
474
488
  // Focus the input field when component mounts
475
489
  if (inputRef.current) {
@@ -632,7 +646,7 @@ acceptedFileTypes, maxFiles = 5, hideHeader = false, hideFileUpload = false, hid
632
646
  allowWorkflowControl,
633
647
  onAgentWorkingChange, agentRunId: startedAgentRunId, title: title, pendingStartMessage: pendingStartMessage ?? undefined, pendingStartTimestamp: pendingStartTimestamp ?? undefined, initialToolApprovalMode: toolApprovalMode }));
634
648
  }
635
- return (_jsx("div", { className: cn('flex flex-col items-center bg-background', isCompactStartView && !isExpandedStartComposer ? '' : 'h-full', className), children: _jsxs("div", { className: cn('relative flex w-full flex-col overflow-hidden border-0', isCompactStartView && !isExpandedStartComposer ? '' : 'h-full', fullWidth ? '' : 'max-w-4xl'), onDragEnter: canStageFiles ? handleDragEnter : undefined, onDragOver: canStageFiles ? handleDragOver : undefined, onDragLeave: canStageFiles ? handleDragLeave : undefined, onDrop: canStageFiles ? handleDrop : undefined, children: [canStageFiles && isDragOver && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-info-background z-50 pointer-events-none rounded-lg", children: _jsxs("div", { className: "text-info font-medium flex items-center gap-2 text-lg", children: [_jsx(UploadIcon, { className: "size-6" }), "Drop files to stage for upload"] }) })), canStageFiles && (_jsx("input", { ref: fileInputRef, type: "file", multiple: true, accept: acceptedFileTypes, onChange: handleFileInputChange, className: "hidden" })), !hideHeader && (_jsxs("div", { className: "flex items-center justify-between border-b border-border/60 bg-background px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "p-1", children: _jsx(Cpu, { className: "size-3.5 text-muted" }) }), _jsx("span", { className: "text-sm font-medium text-foreground", children: resolvedTitle })] }), onClose && !isModal && (_jsx(Button, { size: "xs", variant: "ghost", onClick: onClose, title: t('agent.close'), className: "text-muted hover:text-foreground", children: _jsx(XIcon, { className: "size-4" }) }))] })), _jsx("div", { className: cn('flex flex-col items-center justify-end bg-background px-4', isCompactStartView ? 'shrink-0 pt-3' : 'flex-1 overflow-y-auto'), children: pendingStartMessage && pendingStartTimestamp ? (_jsx(PendingStartConversation, { message: pendingStartMessage, startedAt: pendingStartTimestamp })) : (_jsx("div", { className: cn('mx-auto flex w-full max-w-3xl flex-col justify-end', isCompactStartView ? '' : 'min-h-full py-8'), children: initialMessage && (_jsx("div", { className: "text-[15px] leading-relaxed text-foreground/80", children: initialMessage })) })) }), _jsx("div", { className: cn('bg-background px-4 pb-safe-area-4 pt-2', isExpandedStartComposer ? 'flex min-h-0 flex-1 flex-col' : 'shrink-0'), children: _jsxs("div", { className: cn('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', isExpandedStartComposer && 'min-h-0 w-full flex-1', inputContainerClassName), children: [canStageFiles && stagedFiles.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2", children: stagedFiles.map((file, index) => (_jsxs("div", { className: "flex items-center gap-1.5 rounded-md bg-attention/10 px-2 py-1 text-sm text-attention", title: t('agent.fileStagedTooltip'), children: [_jsx(FileTextIcon, { className: "size-3.5" }), _jsx("span", { className: "max-w-[120px] truncate", children: file.name }), _jsx("span", { className: "text-xs opacity-70", children: t('agent.staged') }), _jsx(Button, { variant: "unstyled", "aria-label": `Remove staged file ${file.name}`, onClick: () => removeStagedFile(index), className: "ms-1 rounded p-0.5 hover:bg-attention/20", children: _jsx(XIcon, { className: "size-3" }) })] }, `${file.name}-${file.size}-${file.lastModified}`))) })), _jsx(Textarea, { ref: inputRef, value: inputValue, onChange: (e) => setInputValue(e.target.value), onKeyDown: handleKeyDown, onPaste: handlePaste, placeholder: resolvedPlaceholder, disabled: isSending, rows: 2, className: cn('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', isExpandedStartComposer && 'min-h-0 flex-1', inputClassName), style: isExpandedStartComposer
649
+ return (_jsx("div", { className: cn('flex flex-col items-center bg-background', isCompactStartView && !isExpandedStartComposer ? '' : 'h-full', className), children: _jsxs("div", { className: cn('relative flex w-full flex-col overflow-hidden border-0', isCompactStartView && !isExpandedStartComposer ? '' : 'h-full', fullWidth ? '' : 'max-w-4xl'), onDragEnter: canStageFiles ? handleDragEnter : undefined, onDragOver: canStageFiles ? handleDragOver : undefined, onDragLeave: canStageFiles ? handleDragLeave : undefined, onDrop: canStageFiles ? handleDrop : undefined, children: [canStageFiles && isDragOver && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-info-background z-50 pointer-events-none rounded-lg", children: _jsxs("div", { className: "text-info font-medium flex items-center gap-2 text-lg", children: [_jsx(UploadIcon, { className: "size-6" }), "Drop files to stage for upload"] }) })), canStageFiles && (_jsx("input", { ref: fileInputRef, type: "file", multiple: true, accept: acceptedFileTypes, onChange: handleFileInputChange, className: "hidden" })), !hideHeader && (_jsxs("div", { className: "flex items-center justify-between border-b border-border/60 bg-background px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "p-1", children: _jsx(Cpu, { className: "size-3.5 text-muted" }) }), _jsx("span", { className: "text-sm font-medium text-foreground", children: resolvedTitle })] }), onClose && !isModal && (_jsx(Button, { size: "xs", variant: "ghost", onClick: onClose, title: t('agent.close'), className: "text-muted hover:text-foreground", children: _jsx(XIcon, { className: "size-4" }) }))] })), _jsx("div", { className: cn('flex flex-col items-center justify-end bg-background px-4', isCompactStartView ? 'shrink-0 pt-3' : 'flex-1 overflow-y-auto'), children: pendingStartMessage && pendingStartTimestamp ? (_jsx(PendingStartConversation, { message: pendingStartMessage, startedAt: pendingStartTimestamp })) : (_jsx("div", { className: cn('mx-auto flex w-full max-w-3xl flex-col justify-end', isCompactStartView ? '' : 'min-h-full py-8'), children: initialMessage && (_jsx("div", { className: "text-[15px] leading-relaxed text-foreground/80", children: initialMessage })) })) }), _jsx("div", { className: cn('bg-background px-4 pb-safe-area-4 pt-2', isExpandedStartComposer ? 'flex min-h-0 flex-1 flex-col' : 'shrink-0'), children: _jsxs("div", { className: cn('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', isExpandedStartComposer && 'min-h-0 w-full flex-1', inputContainerClassName), children: [canStageFiles && stagedFiles.length > 0 && (_jsxs("div", { className: "flex flex-wrap gap-2", children: [visibleStagedFiles.map((file, index) => (_jsxs("div", { className: "flex items-center gap-1.5 rounded-md bg-attention/10 px-2 py-1 text-sm text-attention", title: t('agent.fileStagedTooltip'), children: [_jsx(FileTextIcon, { className: "size-3.5" }), _jsx("span", { className: "max-w-[120px] truncate", children: file.name }), _jsx("span", { className: "text-xs opacity-70", children: t('agent.staged') }), _jsx(Button, { variant: "unstyled", "aria-label": `Remove staged file ${file.name}`, onClick: () => removeStagedFile(index), className: "ms-1 rounded p-0.5 hover:bg-attention/20", children: _jsx(XIcon, { className: "size-3" }) })] }, `${file.name}-${file.size}-${file.lastModified}`))), stagedFiles.length > COLLAPSED_STAGED_FILE_COUNT && (_jsxs(Button, { type: "button", variant: "ghost", size: "sm", "aria-expanded": areStagedFilesExpanded, onClick: () => setAreStagedFilesExpanded((expanded) => !expanded), className: "h-8 shrink-0 gap-1 rounded-xl px-2.5 text-xs text-muted", children: [!areStagedFilesExpanded && _jsxs("span", { children: ["+", hiddenStagedFileCount] }), areStagedFilesExpanded ? t('agent.showLess') : t('agent.showMore'), _jsx(ChevronDown, { className: cn('size-3.5 transition-transform', areStagedFilesExpanded && 'rotate-180'), "aria-hidden": "true" })] }))] })), _jsx(Textarea, { ref: inputRef, value: inputValue, onChange: (e) => setInputValue(e.target.value), onKeyDown: handleKeyDown, onPaste: handlePaste, placeholder: resolvedPlaceholder, disabled: isSending, rows: 2, className: cn('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', isExpandedStartComposer && 'min-h-0 flex-1', inputClassName), style: isExpandedStartComposer
636
650
  ? { minHeight: '72px', maxHeight: 'none' }
637
651
  : { minHeight: '72px', maxHeight: '200px' } }), _jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [canStageFiles && (_jsx(Button, { variant: "ghost", size: "icon", onClick: () => fileInputRef.current?.click(), disabled: isSending || stagedFiles.length >= maxFiles, "aria-label": t('agent.upload'), className: "rounded-full text-muted", title: t('agent.upload'), children: _jsx(UploadIcon, { className: "size-4" }) })), interactive && (_jsx(AgentApprovalModeSelector, { mode: toolApprovalMode, onChange: setToolApprovalMode, disabled: isSending }))] }), _jsx(Button, { onClick: startWorkflowWithMessage, disabled: !inputValue.trim() || isSending, variant: "ghost", size: "icon", className: cn('size-9 rounded-full border border-border/60 bg-foreground text-background shadow-sm', 'hover:bg-foreground/90 hover:text-background', 'disabled:bg-mixer-muted/25 disabled:text-muted disabled:opacity-100'), title: resolvedStartButtonText, children: isSending ? _jsx(Spinner, { size: "sm" }) : _jsx(ArrowUpIcon, { className: "size-4" }) })] })] }) })] }) }));
638
652
  }
@@ -673,7 +687,7 @@ streamingMessageClassNames,
673
687
  // BatchProgressPanel className overrides
674
688
  batchProgressPanelClassNames,
675
689
  // AllMessagesMixed className overrides
676
- workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionLinkComponent, prependFriendlyMessage, initialRequestData, initialRequestSchema, initialRequestTitle, initialRequestTemplate, payloadContent, conversationContent, conversationTab = false, pendingStartMessage, pendingStartTimestamp, initialToolApprovalMode, enablePlayback, showPlaybackToggle = true, }) {
690
+ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionLinkComponent, prependFriendlyMessage, initialRequestData, initialRequestSchema, initialRequestTitle, initialRequestTemplate, payloadContent, conversationContent, conversationTab = false, pendingStartMessage, pendingStartTimestamp, initialToolApprovalMode, enablePlayback, showPlaybackToggle = true, messageFilter, }) {
677
691
  const { t } = useUITranslation();
678
692
  const { client } = useUserSession();
679
693
  const toast = useToast();
@@ -825,16 +839,20 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
825
839
  }, [activeWorkstreamDisplayName, placeholder, t]);
826
840
  const canShowPlaybackToggle = showPlaybackToggle && enablePlayback === undefined && isAgentChatPlaybackAvailable();
827
841
  const isPlaybackEnabled = enablePlayback ?? (isAgentChatPlaybackEnabled() || isPlaybackToggleEnabled);
828
- const playbackSourceMessages = useMemo(() => {
842
+ const transcriptSourceMessages = useMemo(() => {
829
843
  // Passive artifact autosaves are surfaced by the editor's own save indicator, not the chat.
830
- const visibleMessages = messages.filter((message) => !isPassiveArtifactUpdate(message) && !(hiddenMessageTypes?.includes(message.type) ?? false));
831
- return filterMessagesForActiveWorkstream(visibleMessages, activeWorkstream);
832
- }, [activeWorkstream, hiddenMessageTypes, messages]);
844
+ return messages.filter((message) => !isPassiveArtifactUpdate(message) && !(hiddenMessageTypes?.includes(message.type) ?? false));
845
+ }, [hiddenMessageTypes, messages]);
846
+ const playbackSourceMessages = useMemo(() => filterMessagesForActiveWorkstream(transcriptSourceMessages, activeWorkstream), [activeWorkstream, transcriptSourceMessages]);
833
847
  const playbackState = useMemo(() => createPlaybackState(playbackSourceMessages, playbackCursor, isPlaybackEnabled), [isPlaybackEnabled, playbackCursor, playbackSourceMessages]);
834
848
  const clampedPlaybackCursor = playbackState.cursor;
835
849
  const isPlaybackLive = playbackState.isLive;
836
850
  const isPlaybackAtLatest = isPlaybackEnabled && !isPlaybackLive && playbackState.cursorIndex === playbackSourceMessages.length - 1;
837
851
  const displayedMessages = playbackState.displayedMessages;
852
+ const renderedMessages = useMemo(() => (messageFilter ? displayedMessages.filter((message) => messageFilter(message)) : displayedMessages), [displayedMessages, messageFilter]);
853
+ const renderedWorkstreamSourceMessages = useMemo(() => messageFilter
854
+ ? transcriptSourceMessages.filter((message) => messageFilter(message))
855
+ : transcriptSourceMessages, [messageFilter, transcriptSourceMessages]);
838
856
  const displayedStreamingMessages = isPlaybackLive ? streamingMessages : EMPTY_STREAMING_MESSAGES;
839
857
  const playbackDerivedWorkstreams = useMemo(() => deriveWorkstreamsFromMessages(displayedMessages), [displayedMessages]);
840
858
  const playbackActiveWorkstreams = useMemo(() => playbackDerivedWorkstreams.filter((ws) => isActiveWorkstreamStatus(ws.status)), [playbackDerivedWorkstreams]);
@@ -844,7 +862,15 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
844
862
  useEffect(() => {
845
863
  onAgentWorkingChange?.(isAgentWorking);
846
864
  }, [isAgentWorking, onAgentWorkingChange]);
847
- const pendingRequestInputMessage = useMemo(() => getPendingRequestInputMessage(displayedMessages), [displayedMessages]);
865
+ const pendingRequestInputMessage = useMemo(() => {
866
+ const answeredRequestInputKeys = new Set();
867
+ for (const message of displayedMessages) {
868
+ if (isRequestInputAnsweredForSession(agentRunId, message)) {
869
+ answeredRequestInputKeys.add(getRequestInputResolutionKey(message));
870
+ }
871
+ }
872
+ return getPendingRequestInputMessage(displayedMessages, 'main', answeredRequestInputKeys);
873
+ }, [agentRunId, displayedMessages]);
848
874
  // A terminal run silently drops user input unless it can be continued (see the guard in
849
875
  // handleSendMessage), so never surface an actionable question overlay in that state —
850
876
  // the terminal status box renders instead.
@@ -860,7 +886,7 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
860
886
  agentRunId,
861
887
  messageCount: messages.length,
862
888
  playbackMessageCount: playbackSourceMessages.length,
863
- displayedMessageCount: displayedMessages.length,
889
+ displayedMessageCount: renderedMessages.length,
864
890
  streamingCount: streamingMessages.size,
865
891
  displayedStreamingCount: displayedStreamingMessages.size,
866
892
  initialHistoryStatus,
@@ -884,7 +910,7 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
884
910
  agentRunStatus,
885
911
  clampedPlaybackCursor,
886
912
  displayedIsCompleted,
887
- displayedMessages.length,
913
+ renderedMessages.length,
888
914
  displayedStreamingMessages.size,
889
915
  effectiveIsCompleted,
890
916
  effectiveWorkflowStatus,
@@ -1209,6 +1235,7 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
1209
1235
  });
1210
1236
  return;
1211
1237
  }
1238
+ const requestInputId = getRequestInputResponseIdFromMetadata(inputMetadata);
1212
1239
  setIsSending(true);
1213
1240
  const attachedDocs = getAttachedDocs?.() || [];
1214
1241
  const contextMetadata = getMessageContext?.() || {};
@@ -1246,6 +1273,9 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
1246
1273
  _messageId: messageId,
1247
1274
  _deliveryStatus: 'sending',
1248
1275
  ...(inputMetadata?.editing_action ? { editing_action: inputMetadata.editing_action } : {}),
1276
+ ...(inputMetadata?.request_input_response
1277
+ ? { request_input_response: inputMetadata.request_input_response }
1278
+ : {}),
1249
1279
  },
1250
1280
  };
1251
1281
  addOptimisticMessage(optimisticMessage);
@@ -1271,6 +1301,9 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
1271
1301
  // buffers the signal until the new run is ready to receive it. We reconnect
1272
1302
  // the stream in place (rather than remounting via onRestart) so the existing
1273
1303
  // timeline is preserved and the new exchange appends seamlessly at the bottom.
1304
+ if (requestInputId) {
1305
+ markRequestInputIdAnsweredForSession(agentRunId, requestInputId);
1306
+ }
1274
1307
  const deliver = (async () => {
1275
1308
  await waitForPendingToolApprovalModeChange();
1276
1309
  if (isWorkflowTerminalRef.current) {
@@ -1282,6 +1315,9 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
1282
1315
  })();
1283
1316
  deliver
1284
1317
  .catch((err) => {
1318
+ if (requestInputId) {
1319
+ clearRequestInputIdAnsweredForSession(agentRunId, requestInputId);
1320
+ }
1285
1321
  updateOptimisticMessageStatus(messageId, 'failed');
1286
1322
  toast({
1287
1323
  status: 'error',
@@ -1318,7 +1354,7 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
1318
1354
  // After the user connects an MCP server requested via request_mcp_connection, flag the
1319
1355
  // conversation for tool re-discovery and resume it with a confirmation message so the agent
1320
1356
  // continues automatically with the newly-available tools.
1321
- const handleMcpConnected = useCallback(async (cfg) => {
1357
+ const handleMcpConnected = useCallback(async (cfg, metadata) => {
1322
1358
  // Await the dirty-flag signal BEFORE sending the follow-up message so Temporal records
1323
1359
  // McpConfigChanged ahead of the UserInput. Otherwise the resume turn could run before
1324
1360
  // the flag is set and use the stale tool catalog. An omitted disabled list preserves
@@ -1329,7 +1365,7 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
1329
1365
  catch (err) {
1330
1366
  console.error('Failed to signal MCP config change', err);
1331
1367
  }
1332
- handleSendMessage(t('agent.mcpConnectedMessage', { name: cfg.name }));
1368
+ handleSendMessage(t('agent.mcpConnectedMessage', { name: cfg.name }), metadata);
1333
1369
  }, [client, agentRunId, handleSendMessage, t]);
1334
1370
  // Per-conversation MCP deactivation set, seeded from the run and updated live via the
1335
1371
  // MCP action menu in the composer toolbar. Changes are pushed to the running workflow
@@ -1636,19 +1672,19 @@ workingIndicatorClassName, messageListClassName, StoreLinkComponent, CollectionL
1636
1672
  }, new Map()), [getActivePlan.plan]);
1637
1673
  const renderConversationHeader = (variant) => (_jsx(Header, { title: actualTitle, variant: variant, isCompleted: effectiveIsCompleted, isTerminal: isWorkflowTerminal, onClose: onClose, isModal: isModal, agentRunId: agentRunId, workflowRunId: workflowRunId || '', viewMode: viewMode, onViewModeChange: handleViewModeChange, showPlanPanel: isRightPanelVisible, hasPlan: showRightPanelProp && plans.length > 0, showPlanButton: showRightPanelProp && !conversationTab, onTogglePlanPanel: handleTogglePlanPanel, showPlaybackButton: canShowPlaybackToggle, isPlaybackEnabled: isPlaybackEnabled, onTogglePlayback: handleTogglePlayback, onDownload: downloadConversation, onExportFixture: exportReplayFixture, resetWorkflow: resetWorkflow, onClone: onClone, onShowDetails: onShowDetails, allowWorkflowControl: allowWorkflowControl, onExportPdf: exportConversationPdf, isReceivingChunks: debugChunkFlash }));
1638
1674
  // Conversation area inner content — shared between main layout and conversationTab mode
1639
- const conversationAreaJsx = (_jsxs("div", { ref: conversationRef, "data-agent-playback-enabled": isPlaybackEnabled || undefined, "data-agent-playback-cursor": isPlaybackEnabled ? clampedPlaybackCursor : undefined, "data-agent-live-message-count": messages.length, "data-agent-rendered-message-count": displayedMessages.length, className: cn('flex flex-col min-h-0 min-w-0 border-0', conversationTab
1675
+ const conversationAreaJsx = (_jsxs("div", { ref: conversationRef, "data-agent-playback-enabled": isPlaybackEnabled || undefined, "data-agent-playback-cursor": isPlaybackEnabled ? clampedPlaybackCursor : undefined, "data-agent-live-message-count": messages.length, "data-agent-rendered-message-count": renderedMessages.length, className: cn('flex flex-col min-h-0 min-w-0 border-0', conversationTab
1640
1676
  ? 'flex-1 h-full'
1641
1677
  : isRightPanelVisible
1642
1678
  ? 'w-full flex-1 min-h-[50vh]'
1643
1679
  : fullWidth
1644
1680
  ? 'flex-1 w-full'
1645
- : `flex-1 mx-auto ${!isModal ? 'max-w-4xl' : ''}`), children: [!hideHeader && headerVariant === 'compact' && (_jsx("div", { className: "flex flex-shrink-0 justify-end border-b border-border/60 px-2 py-1 lg:hidden", children: renderConversationHeader('compact') })), !hideHeader && headerVariant !== 'compact' && (_jsx("div", { className: "flex-shrink-0", children: renderConversationHeader(headerVariant) })), isPlaybackEnabled && (_jsx("div", { className: "flex flex-shrink-0 justify-end px-2 py-1.5", children: _jsx(AgentChatPlaybackControls, { cursor: clampedPlaybackCursor, messages: playbackSourceMessages, onChangeCursor: handleChangePlaybackCursor }) })), messages.length === 0 && !effectiveIsCompleted && pendingStartMessage && pendingStartTimestamp ? (_jsx(PendingStartConversation, { message: pendingStartMessage, startedAt: pendingStartTimestamp })) : (_jsx(AllMessagesMixed, { messages: displayedMessages, workstreamSourceMessages: messages, bottomRef: bottomRef, isCompleted: displayedIsCompleted, plan: getActivePlan.plan, workstreamStatus: getActivePlan.workstreamStatus, showPlanPanel: showRightPanelProp && showSlidingPanel, onTogglePlanPanel: handleTogglePlanPanel, plans: plans, activePlanIndex: activePlanIndex, onChangePlan: handleChangePlan, taskLabels: taskLabels, streamingMessages: displayedStreamingMessages, onSendMessage: isPlaybackLive ? handleSendMessage : undefined, onOpenArtifact: showArtifacts ? handleOpenArtifact : undefined, messageItemClassNames: messageItemClassNames, messageStyleOverrides: messageStyleOverrides, toolCallGroupClassNames: toolCallGroupClassNames, hideToolCallsInViewMode: hideToolCallsInViewMode, streamingMessageClassNames: streamingMessageClassNames, batchProgressPanelClassNames: batchProgressPanelClassNames, artifactRunId: agentRunId, viewMode: viewMode, hideWorkstreamTabs: hideWorkstreamTabs, workingIndicatorClassName: workingIndicatorClassName, messageListClassName: messageListClassName, StoreLinkComponent: effectiveStoreLinkComponent, CollectionLinkComponent: CollectionLinkComponent, prependFriendlyMessage: prependFriendlyMessage, initialRequestData: initialRequestData, initialRequestSchema: initialRequestSchema, initialRequestTitle: initialRequestTitle, initialRequestTemplate: initialRequestTemplate, showInitialRequest: initialHistoryStatus === 'empty' && messages.length === 0, hiddenMessageTypes: hiddenMessageTypes, disableAutoScroll: !isPlaybackLive, renderRequestInputControls: !shouldShowRequestInputOverlay, activeWorkstream: activeWorkstream, onActiveWorkstreamChange: setActiveWorkstream })), shouldShowRequestInputOverlay ? (_jsx(AgentRequestInputOverlay, { message: pendingRequestInputMessage, onSendMessage: isPlaybackLive ? handleSendMessage : undefined, onMcpConnected: isPlaybackLive ? handleMcpConnected : undefined, disabled: isUploading || !isPlaybackLive, isLoading: isSending || isUploading })) : isViewingPlaybackHistory && playbackActiveWorkstreams.length > 0 ? (_jsx("div", { className: "flex-shrink-0 pb-safe-area", children: _jsx(ActiveWorkstreamsSummary, { activeWorkstreams: playbackActiveWorkstreams }) })) : (shouldRenderLiveMessageInputArea && (_jsx("div", { className: "flex-shrink-0 pb-safe-area", children: isFailed ? (
1681
+ : `flex-1 mx-auto ${!isModal ? 'max-w-4xl' : ''}`), children: [!hideHeader && headerVariant === 'compact' && (_jsx("div", { className: "flex flex-shrink-0 justify-end border-b border-border/60 px-2 py-1 lg:hidden", children: renderConversationHeader('compact') })), !hideHeader && headerVariant !== 'compact' && (_jsx("div", { className: "flex-shrink-0", children: renderConversationHeader(headerVariant) })), isPlaybackEnabled && (_jsx("div", { className: "flex flex-shrink-0 justify-end px-2 py-1.5", children: _jsx(AgentChatPlaybackControls, { cursor: clampedPlaybackCursor, messages: playbackSourceMessages, onChangeCursor: handleChangePlaybackCursor }) })), messages.length === 0 && !effectiveIsCompleted && pendingStartMessage && pendingStartTimestamp ? (_jsx(PendingStartConversation, { message: pendingStartMessage, startedAt: pendingStartTimestamp })) : (_jsx(AllMessagesMixed, { messages: renderedMessages, workstreamSourceMessages: renderedWorkstreamSourceMessages, bottomRef: bottomRef, isCompleted: displayedIsCompleted, plan: getActivePlan.plan, workstreamStatus: getActivePlan.workstreamStatus, showPlanPanel: showRightPanelProp && showSlidingPanel, onTogglePlanPanel: handleTogglePlanPanel, plans: plans, activePlanIndex: activePlanIndex, onChangePlan: handleChangePlan, taskLabels: taskLabels, streamingMessages: displayedStreamingMessages, onSendMessage: isPlaybackLive ? handleSendMessage : undefined, onOpenArtifact: showArtifacts ? handleOpenArtifact : undefined, messageItemClassNames: messageItemClassNames, messageStyleOverrides: messageStyleOverrides, toolCallGroupClassNames: toolCallGroupClassNames, hideToolCallsInViewMode: hideToolCallsInViewMode, streamingMessageClassNames: streamingMessageClassNames, batchProgressPanelClassNames: batchProgressPanelClassNames, artifactRunId: agentRunId, viewMode: viewMode, hideWorkstreamTabs: hideWorkstreamTabs, workingIndicatorClassName: workingIndicatorClassName, messageListClassName: messageListClassName, StoreLinkComponent: effectiveStoreLinkComponent, CollectionLinkComponent: CollectionLinkComponent, prependFriendlyMessage: prependFriendlyMessage, initialRequestData: initialRequestData, initialRequestSchema: initialRequestSchema, initialRequestTitle: initialRequestTitle, initialRequestTemplate: initialRequestTemplate, showInitialRequest: initialHistoryStatus === 'empty' && messages.length === 0, hiddenMessageTypes: hiddenMessageTypes, disableAutoScroll: !isPlaybackLive, renderRequestInputControls: !shouldShowRequestInputOverlay, activeWorkstream: activeWorkstream, onActiveWorkstreamChange: setActiveWorkstream })), shouldShowRequestInputOverlay ? (_jsx(AgentRequestInputOverlay, { message: pendingRequestInputMessage, onSendMessage: isPlaybackLive ? handleSendMessage : undefined, onMcpConnected: isPlaybackLive ? handleMcpConnected : undefined, disabled: isUploading || !isPlaybackLive, isLoading: isSending || isUploading })) : isViewingPlaybackHistory && playbackActiveWorkstreams.length > 0 ? (_jsx("div", { className: "flex-shrink-0 pb-safe-area", children: _jsx(ActiveWorkstreamsSummary, { activeWorkstreams: playbackActiveWorkstreams, onSelectWorkstream: setActiveWorkstream }) })) : (shouldRenderLiveMessageInputArea && (_jsx("div", { className: "flex-shrink-0 pb-safe-area", children: isFailed ? (
1646
1682
  // FAILED takes priority over every other branch so the composer can
1647
1683
  // never render for a failed run. Use the caller's action when provided,
1648
1684
  // otherwise fall back to the default failed message box.
1649
1685
  (failedAction ?? (_jsx(MessageBox, { status: "error", icon: null, className: "m-2", children: "This Workflow is FAILED" })))) : effectiveWorkflowStatus &&
1650
1686
  effectiveWorkflowStatus !== 'RUNNING' &&
1651
- !canContinueConversation ? (viewMode === 'sliding' && effectiveWorkflowStatus === 'COMPLETED' ? (_jsx("div", { className: "mx-auto w-full max-w-3xl px-4 py-3 text-sm text-muted", children: _jsxs("div", { className: "flex items-center gap-2 border-t border-success/25 pt-3 text-success", children: [_jsx(CheckCircle, { className: "size-4" }), _jsx("span", { className: "font-medium", children: "Workflow completed" })] }) })) : (_jsxs(MessageBox, { status: effectiveWorkflowStatus === 'COMPLETED' ? 'success' : 'done', icon: null, className: "m-2", children: ["This Workflow is ", effectiveWorkflowStatus] }))) : ((showInput || canContinueConversation) && (_jsxs(_Fragment, { children: [composerContext, _jsx(MessageInput, { onSend: handleSendMessage, onStop: allowWorkflowControl ? handleStopWorkflow : undefined, approvalModeSlot: interactive && toolApprovalMode ? (_jsx(AgentApprovalModeSelector, { mode: toolApprovalMode, onChange: handleToolApprovalModeChange, disabled: !isPlaybackLive || isWorkflowTerminal || !allowWorkflowControl })) : undefined, mcpSlot: _jsx(McpConnectionsActionMenu, { disabledCollections: mcpDisabled, onChange: handleMcpDisabledChange, onConnectionChange: handleMcpConnectionChange }), disabled: isUploading || !isPlaybackLive, isSending: isSending || isUploading, isStopping: isStopping, isStreaming: !effectiveIsCompleted, isCompleted: effectiveIsCompleted, contextWindowUsage: canCompactContext ? contextWindowUsage : undefined, onCompactContext: canCompactContext ? handleCompactContext : undefined, isCompactingContext: isCompactingContext, activeTaskCount: activeTaskCount, activeWorkstreams: composerActiveWorkstreams, placeholder: composerPlaceholder, onFilesSelected: canUploadFiles ? handleFileUpload : undefined, uploadedFiles: uploadedFiles, onRemoveFile: onRemoveFile, onRemoveProcessingFile: handleRemoveProcessingFile, acceptedFileTypes: acceptedFileTypes, maxFiles: maxFiles, processingFiles: processingFiles, artifactRunId: agentRunId, hasProcessingFiles: hasProcessingFiles, renderDocumentSearch: renderDocumentSearch, selectedDocuments: selectedDocuments, onRemoveDocument: onRemoveDocument, hideObjectLinking: hideObjectLinking, hideFileUpload: !canUploadFiles, disableDropZone: canUploadFiles, className: inputContainerClassName, inputClassName: inputClassName })] }))) })))] }));
1687
+ !canContinueConversation ? (viewMode === 'sliding' && effectiveWorkflowStatus === 'COMPLETED' ? (_jsx("div", { className: "mx-auto w-full max-w-3xl px-4 py-3 text-sm text-muted", children: _jsxs("div", { className: "flex items-center gap-2 border-t border-success/25 pt-3 text-success", children: [_jsx(CheckCircle, { className: "size-4" }), _jsx("span", { className: "font-medium", children: "Workflow completed" })] }) })) : (_jsxs(MessageBox, { status: effectiveWorkflowStatus === 'COMPLETED' ? 'success' : 'done', icon: null, className: "m-2", children: ["This Workflow is ", effectiveWorkflowStatus] }))) : ((showInput || canContinueConversation) && (_jsxs(_Fragment, { children: [composerContext, _jsx(MessageInput, { onSend: handleSendMessage, onStop: allowWorkflowControl ? handleStopWorkflow : undefined, approvalModeSlot: interactive && toolApprovalMode ? (_jsx(AgentApprovalModeSelector, { mode: toolApprovalMode, onChange: handleToolApprovalModeChange, disabled: !isPlaybackLive || isWorkflowTerminal || !allowWorkflowControl })) : undefined, mcpSlot: _jsx(McpConnectionsActionMenu, { disabledCollections: mcpDisabled, onChange: handleMcpDisabledChange, onConnectionChange: handleMcpConnectionChange }), disabled: isUploading || !isPlaybackLive, isSending: isSending || isUploading, isStopping: isStopping, isStreaming: !effectiveIsCompleted, isCompleted: effectiveIsCompleted, contextWindowUsage: canCompactContext ? contextWindowUsage : undefined, onCompactContext: canCompactContext ? handleCompactContext : undefined, isCompactingContext: isCompactingContext, activeTaskCount: activeTaskCount, activeWorkstreams: composerActiveWorkstreams, onSelectWorkstream: setActiveWorkstream, placeholder: composerPlaceholder, onFilesSelected: canUploadFiles ? handleFileUpload : undefined, uploadedFiles: uploadedFiles, onRemoveFile: onRemoveFile, onRemoveProcessingFile: handleRemoveProcessingFile, acceptedFileTypes: acceptedFileTypes, maxFiles: maxFiles, processingFiles: processingFiles, artifactRunId: agentRunId, hasProcessingFiles: hasProcessingFiles, renderDocumentSearch: renderDocumentSearch, selectedDocuments: selectedDocuments, onRemoveDocument: onRemoveDocument, hideObjectLinking: hideObjectLinking, hideFileUpload: !canUploadFiles, disableDropZone: canUploadFiles, className: inputContainerClassName, inputClassName: inputClassName })] }))) })))] }));
1652
1688
  // Main content - wrapped with FusionFragmentProvider when fusionData is provided
1653
1689
  const mainContent = (_jsx(ArtifactUrlCacheProvider, { children: _jsx(ImageLightboxProvider, { children: _jsxs("div", { ref: conversationLayoutRef, className: cn('flex flex-col lg:flex-row gap-2 w-full h-full relative overflow-hidden', canUploadFiles && isDragOver && 'ring-2 ring-blue-400 ring-inset', className), onDragEnter: canUploadFiles ? handleDragEnter : undefined, onDragOver: canUploadFiles ? handleDragOver : undefined, onDragLeave: canUploadFiles ? handleDragLeave : undefined, onDrop: canUploadFiles ? handleDrop : undefined, children: [canUploadFiles && isDragOver && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-blue-100/80 dark:bg-blue-900/40 z-50 pointer-events-none rounded-lg", children: _jsxs("div", { className: "text-blue-600 dark:text-blue-400 font-medium flex items-center gap-2 text-lg", children: [_jsx(UploadIcon, { className: "size-6" }), "Drop files to upload"] }) })), !conversationTab && conversationAreaJsx, !conversationTab && headerVariant === 'compact' && !hideHeader && (_jsx("div", { className: "hidden h-full w-12 shrink-0 items-start justify-center px-1 pt-2 lg:flex", children: renderConversationHeader('compact') })), isRightPanelVisible && (_jsxs(_Fragment, { children: [!conversationTab && (_jsx("div", { role: "separator", "aria-orientation": "vertical", "aria-label": "Resize right panel", "aria-valuenow": Math.round(rightPanelWidth), "aria-valuemin": 300, "aria-valuetext": `${Math.round(rightPanelWidth)} pixels`, tabIndex: 0, className: "hidden lg:block lg:w-1 lg:shrink-0 cursor-col-resize bg-border/70 hover:bg-border transition-colors", onMouseDown: () => setIsRightPanelResizing(true), onKeyDown: (event) => {
1654
1690
  if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')