@mndrk/agx 2.0.22 → 2.0.24

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 (378) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/cloud-runtime/standalone/.next/build-manifest.json +6 -6
  4. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
  6. package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +4 -4
  7. package/cloud-runtime/standalone/.next/server/app/_global-error/page.js +2 -2
  8. package/cloud-runtime/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +4 -4
  17. package/cloud-runtime/standalone/.next/server/app/_not-found/page.js +6 -5
  18. package/cloud-runtime/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.html +14 -2
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +11 -11
  22. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  23. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
  24. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +7 -7
  25. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  26. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +4 -4
  29. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js +5 -5
  30. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +4 -4
  33. package/cloud-runtime/standalone/.next/server/app/agents/page.js +5 -5
  34. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/agents.html +14 -2
  37. package/cloud-runtime/standalone/.next/server/app/agents.rsc +10 -10
  38. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +10 -10
  39. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +3 -3
  40. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +4 -4
  41. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  42. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +4 -4
  43. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +3 -3
  44. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route/app-paths-manifest.json +3 -0
  46. package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route/build-manifest.json +11 -0
  47. package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route/server-reference-manifest.json +4 -0
  48. package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route.js +7 -0
  49. package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route.js.map +5 -0
  50. package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route.js.nft.json +1 -0
  51. package/cloud-runtime/standalone/.next/server/app/api/filesystem/browse/route_client-reference-manifest.js +2 -0
  52. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +4 -4
  57. package/cloud-runtime/standalone/.next/server/app/automations/page.js +5 -5
  58. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/automations.html +14 -2
  61. package/cloud-runtime/standalone/.next/server/app/automations.rsc +11 -11
  62. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +11 -11
  63. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +3 -3
  64. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +4 -4
  65. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  66. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +5 -5
  67. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +3 -3
  68. package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +4 -4
  69. package/cloud-runtime/standalone/.next/server/app/board/page.js +6 -6
  70. package/cloud-runtime/standalone/.next/server/app/board/page.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/board.html +14 -2
  73. package/cloud-runtime/standalone/.next/server/app/board.rsc +8 -8
  74. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +8 -8
  75. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +3 -3
  76. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +4 -4
  77. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  78. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +2 -2
  79. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +3 -3
  80. package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +4 -4
  81. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js +5 -5
  82. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +14 -2
  85. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +10 -10
  86. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +10 -10
  87. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +3 -3
  88. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +4 -4
  89. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  90. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +4 -4
  91. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +3 -3
  92. package/cloud-runtime/standalone/.next/server/app/index.html +14 -2
  93. package/cloud-runtime/standalone/.next/server/app/index.rsc +10 -10
  94. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  95. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +10 -10
  96. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +3 -3
  97. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  98. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  99. package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +4 -4
  100. package/cloud-runtime/standalone/.next/server/app/page.js +5 -5
  101. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +4 -4
  104. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js +5 -5
  105. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +4 -4
  108. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js +5 -5
  109. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  111. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +4 -4
  112. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js +5 -5
  113. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +13 -1
  116. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +10 -10
  117. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +10 -10
  118. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +3 -3
  119. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +4 -4
  120. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  121. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +4 -4
  122. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +3 -3
  123. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +3 -3
  124. package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +4 -4
  125. package/cloud-runtime/standalone/.next/server/app/projects/page.js +5 -5
  126. package/cloud-runtime/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/projects.html +14 -2
  129. package/cloud-runtime/standalone/.next/server/app/projects.rsc +10 -10
  130. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +10 -10
  131. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +3 -3
  132. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +4 -4
  133. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  134. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +4 -4
  135. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +3 -3
  136. package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +4 -4
  137. package/cloud-runtime/standalone/.next/server/app/settings/page.js +5 -5
  138. package/cloud-runtime/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/settings.html +14 -2
  141. package/cloud-runtime/standalone/.next/server/app/settings.rsc +9 -9
  142. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +9 -9
  143. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +3 -3
  144. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +4 -4
  145. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  146. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
  147. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  148. package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +4 -4
  149. package/cloud-runtime/standalone/.next/server/app/status/page.js +5 -5
  150. package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/status.html +14 -2
  153. package/cloud-runtime/standalone/.next/server/app/status.rsc +10 -10
  154. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +10 -10
  155. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +3 -3
  156. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +4 -4
  157. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  158. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +4 -4
  159. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +3 -3
  160. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +4 -4
  161. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js +5 -5
  162. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/welcome/page.js +5 -5
  166. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/welcome.html +14 -2
  169. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +10 -10
  170. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +10 -10
  171. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +4 -4
  173. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +4 -4
  175. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +3 -3
  176. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +1 -0
  177. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__60ba5058._.js +1 -1
  178. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__621dcb4a._.js +3 -0
  179. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__babd2675._.js → [root-of-the-server]__82d76712._.js} +2 -2
  180. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d36da34d._.js → [root-of-the-server]__c2767ca5._.js} +2 -2
  181. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_filesystem_browse_route_actions_8e268170.js +3 -0
  182. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +4 -4
  183. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +6 -6
  184. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__fb05a385._.js → [root-of-the-server]__056cdf7d._.js} +2 -2
  185. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__113d6767._.js +3 -0
  186. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__8d1af2c9._.js → [root-of-the-server]__11e33b9b._.js} +2 -2
  187. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__296a25b5._.js → [root-of-the-server]__19cd257e._.js} +2 -2
  188. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__226f8a19._.js +13 -1
  189. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__51980630._.js → [root-of-the-server]__26d669c2._.js} +2 -2
  190. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
  191. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a103abc._.js → [root-of-the-server]__4ebf5947._.js} +2 -2
  192. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ffa2883._.js +1 -1
  193. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a9d3855._.js +1 -1
  194. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__942ca438._.js +3 -0
  195. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__c45c7360._.js → [root-of-the-server]__a667191a._.js} +2 -2
  196. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1cfbd715._.js → [root-of-the-server]__aa28d46f._.js} +2 -2
  197. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__bd4d5430._.js +3 -0
  198. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ab36b420._.js → [root-of-the-server]__bde5bc78._.js} +2 -2
  199. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__cde88183._.js +3 -0
  200. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce3b51aa._.js +3 -0
  201. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__2503b467._.js → [root-of-the-server]__d36dd8bc._.js} +2 -2
  202. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__b77ae83d._.js → [root-of-the-server]__dac5ab29._.js} +2 -2
  203. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__3405b8e4._.js → [root-of-the-server]__e87ba2b0._.js} +2 -2
  204. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__b9356576._.js → [root-of-the-server]__f62d412e._.js} +2 -2
  205. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__756711b8._.js → [root-of-the-server]__f63d6594._.js} +2 -2
  206. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__46de03a9._.js → [root-of-the-server]__febbd0b8._.js} +2 -2
  207. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__89c70d6f._.js → [root-of-the-server]__ff22a10e._.js} +2 -2
  208. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a19a362a._.js → _02c78cac._.js} +3 -3
  209. package/cloud-runtime/standalone/.next/server/chunks/ssr/{node_modules_next_dist_08570d7f._.js → _0b36c9d6._.js} +3 -3
  210. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ff7c687._.js +3 -3
  211. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ffd2660._.js +2 -2
  212. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_37435df3._.js → _173da79d._.js} +3 -3
  213. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_4fe611fe._.js → _1c58ab2d._.js} +3 -3
  214. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a88b4884._.js → _222af282._.js} +3 -3
  215. package/cloud-runtime/standalone/.next/server/chunks/ssr/_27cb3359._.js +95 -0
  216. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_8ebf36f6._.js → _3aa32c11._.js} +3 -3
  217. package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +3 -0
  218. package/cloud-runtime/standalone/.next/server/chunks/ssr/_4b5d7c9b._.js +95 -0
  219. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_c52176ad._.js → _4d4ba84b._.js} +3 -3
  220. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_194cda6c._.js → _50d04b8f._.js} +3 -3
  221. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a8eaf6bc._.js → _629dc55c._.js} +3 -3
  222. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6a367524._.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/chunks/ssr/_93914ecd._.js +2 -2
  224. package/cloud-runtime/standalone/.next/server/chunks/ssr/_94effa0f._.js +1 -1
  225. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a696e9b3._.js +95 -0
  226. package/cloud-runtime/standalone/.next/server/chunks/ssr/_ae20456d._.js +4 -0
  227. package/cloud-runtime/standalone/.next/server/chunks/ssr/_c838f593._.js +95 -0
  228. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +1 -1
  229. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d021529a._.js +3 -0
  230. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_fc18d7b5._.js → _e04b4053._.js} +3 -3
  231. package/cloud-runtime/standalone/.next/server/chunks/ssr/_e1769638._.js +3 -3
  232. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_b9d3574c._.js → _f1465cc8._.js} +3 -3
  233. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_d4878ef1._.js → _f2a7beb1._.js} +3 -3
  234. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fbced30b._.js +3 -0
  235. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_8d8836a8._.js → _fc1aaf9e._.js} +3 -3
  236. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_[id]_page_tsx_9c49d8c8._.js +1 -1
  237. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_page_tsx_f5f08ed8._.js +1 -1
  238. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_automations_page_tsx_3d732184._.js +1 -1
  239. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
  240. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_global-error_tsx_9170b7a0._.js +3 -0
  241. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_page_tsx_e0fabf6e._.js +2 -2
  242. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +5 -5
  243. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  244. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_03ec2107._.js +4 -0
  245. package/cloud-runtime/standalone/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_d92e159d.js → node_modules_next_dist_esm_build_templates_app-page_61c49327.js} +3 -3
  246. package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +4 -4
  247. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  248. package/cloud-runtime/standalone/.next/server/pages/404.html +13 -1
  249. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  250. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  251. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  252. package/cloud-runtime/standalone/.next/static/chunks/{785cb91c31bb3303.js → 09f9eeea393db0fd.js} +3 -3
  253. package/cloud-runtime/standalone/.next/static/chunks/1184bf1bfdf97666.js +1 -0
  254. package/cloud-runtime/standalone/.next/static/chunks/2acd153dc5252e88.js +30 -0
  255. package/cloud-runtime/standalone/.next/static/chunks/2deeba875ec50761.js +1 -0
  256. package/cloud-runtime/standalone/.next/static/chunks/45b4d0ee5c92d45b.js +93 -0
  257. package/cloud-runtime/standalone/.next/static/chunks/5ace4b4f4475962a.js +1 -0
  258. package/cloud-runtime/standalone/.next/static/chunks/616d66dbec9e4b8b.js +93 -0
  259. package/cloud-runtime/standalone/.next/static/chunks/64f812259cf8c243.js +18 -0
  260. package/cloud-runtime/standalone/.next/static/chunks/6dbf5940e30fa9c7.js +1 -0
  261. package/cloud-runtime/standalone/.next/static/chunks/7d4c1d97169c8522.js +1 -0
  262. package/cloud-runtime/standalone/.next/static/chunks/7f13efe9329d3f97.js +1 -0
  263. package/cloud-runtime/standalone/.next/static/chunks/80219bbddcf65109.js +1 -0
  264. package/cloud-runtime/standalone/.next/static/chunks/{47ef8bb2118ea917.js → 86ace6febb11ad71.js} +1 -1
  265. package/cloud-runtime/standalone/.next/static/chunks/{90c7dbc004f59a42.js → 88e24940a5d5d386.js} +1 -1
  266. package/cloud-runtime/standalone/.next/static/chunks/9d50c2514f72d926.css +1 -0
  267. package/cloud-runtime/standalone/.next/static/chunks/b079c677d9b39f98.js +5 -0
  268. package/cloud-runtime/standalone/.next/static/chunks/b4e298542d366e31.js +93 -0
  269. package/cloud-runtime/standalone/.next/static/chunks/b88352740262931f.js +6 -0
  270. package/cloud-runtime/standalone/.next/static/chunks/bd6c5b5b4fbd6413.css +2 -0
  271. package/cloud-runtime/standalone/.next/static/chunks/c5609fd2abb65850.js +1 -0
  272. package/cloud-runtime/standalone/.next/static/chunks/{7ca3e4f9ed7425a8.js → d95cd010361834be.js} +1 -1
  273. package/cloud-runtime/standalone/.next/static/chunks/da434b1ad885d636.js +30 -0
  274. package/cloud-runtime/standalone/.next/static/chunks/e44264686aa5ecbf.js +93 -0
  275. package/cloud-runtime/standalone/.next/static/chunks/eab1c7d0246592f8.js +8 -0
  276. package/cloud-runtime/standalone/.next/static/chunks/f7bbf5cfcfed8ba9.js +1 -0
  277. package/cloud-runtime/standalone/.next/static/chunks/{turbopack-92401168917c21f2.js → turbopack-5b5918f610666d2d.js} +1 -1
  278. package/cloud-runtime/standalone/README.md +15 -3
  279. package/cloud-runtime/standalone/app/agents/[id]/page.tsx +147 -147
  280. package/cloud-runtime/standalone/app/agents/page.tsx +115 -310
  281. package/cloud-runtime/standalone/app/api/filesystem/browse/route.ts +39 -0
  282. package/cloud-runtime/standalone/app/api/status/route.ts +1 -1
  283. package/cloud-runtime/standalone/app/api/threads/route.ts +4 -5
  284. package/cloud-runtime/standalone/app/automations/page.tsx +1 -1
  285. package/cloud-runtime/standalone/app/execution-graph/page.tsx +86 -86
  286. package/cloud-runtime/standalone/app/global-error.tsx +54 -0
  287. package/cloud-runtime/standalone/app/globals.css +165 -59
  288. package/cloud-runtime/standalone/app/layout.tsx +17 -0
  289. package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +1 -1
  290. package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +58 -58
  291. package/cloud-runtime/standalone/app/status/page.tsx +20 -20
  292. package/cloud-runtime/standalone/app/welcome/page.tsx +20 -15
  293. package/cloud-runtime/standalone/components/AutomationsBoard.tsx +1 -1
  294. package/cloud-runtime/standalone/components/ClientOnly.tsx +17 -0
  295. package/cloud-runtime/standalone/components/ConsentToggle/index.tsx +3 -3
  296. package/cloud-runtime/standalone/components/ContextMenu.tsx +123 -0
  297. package/cloud-runtime/standalone/components/DaemonBar.tsx +9 -9
  298. package/cloud-runtime/standalone/components/DirectoryBrowser.tsx +140 -0
  299. package/cloud-runtime/standalone/components/FirstRunModal/index.tsx +10 -10
  300. package/cloud-runtime/standalone/components/KanbanBoard.tsx +9 -9
  301. package/cloud-runtime/standalone/components/OfflineIndicator.tsx +149 -0
  302. package/cloud-runtime/standalone/components/ProjectModal.tsx +32 -8
  303. package/cloud-runtime/standalone/components/TaskCard.tsx +3 -3
  304. package/cloud-runtime/standalone/components/WorkspaceRootsList/index.tsx +57 -35
  305. package/cloud-runtime/standalone/components/chat-ui/AttachmentTray.tsx +7 -7
  306. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +218 -121
  307. package/cloud-runtime/standalone/components/chat-ui/ChatPreview.tsx +4 -4
  308. package/cloud-runtime/standalone/components/chat-ui/CommandPopover.tsx +4 -4
  309. package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +65 -29
  310. package/cloud-runtime/standalone/components/chat-ui/FileMentionPopover.tsx +4 -4
  311. package/cloud-runtime/standalone/components/chat-ui/FileMentionPopoverItem.tsx +9 -9
  312. package/cloud-runtime/standalone/components/chat-ui/LogPanel.tsx +5 -5
  313. package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +11 -11
  314. package/cloud-runtime/standalone/components/chat-ui/MentionPopover.tsx +11 -11
  315. package/cloud-runtime/standalone/components/chat-ui/MessageAttachments.tsx +5 -5
  316. package/cloud-runtime/standalone/components/chat-ui/MessageBubble.tsx +6 -6
  317. package/cloud-runtime/standalone/components/chat-ui/MessageList.tsx +60 -135
  318. package/cloud-runtime/standalone/components/chat-ui/ParticipantBar.tsx +507 -263
  319. package/cloud-runtime/standalone/components/chat-ui/ProjectPicker.tsx +17 -17
  320. package/cloud-runtime/standalone/components/chat-ui/ReactionChip.tsx +1 -1
  321. package/cloud-runtime/standalone/components/chat-ui/SearchResults.tsx +14 -14
  322. package/cloud-runtime/standalone/components/chat-ui/StatusIndicator.tsx +7 -7
  323. package/cloud-runtime/standalone/components/chat-ui/TaskDraftCard.tsx +14 -14
  324. package/cloud-runtime/standalone/components/chat-ui/TaskStatusCard.tsx +10 -10
  325. package/cloud-runtime/standalone/components/chat-ui/ThreadMentionPopover.tsx +8 -8
  326. package/cloud-runtime/standalone/components/chat-ui/ThreadView.tsx +36 -33
  327. package/cloud-runtime/standalone/components/chat-ui/TypingIndicator.tsx +7 -7
  328. package/cloud-runtime/standalone/components/errors/StartupGuardWrapper.tsx +96 -0
  329. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +173 -193
  330. package/cloud-runtime/standalone/fix-primary.js +30 -0
  331. package/cloud-runtime/standalone/fix-theme.js +78 -0
  332. package/cloud-runtime/standalone/hooks/useKeyboardShortcuts.ts +131 -0
  333. package/cloud-runtime/standalone/lib/history-store.ts +6 -1
  334. package/cloud-runtime/standalone/lib/storage/thread-adapter.ts +3 -3
  335. package/cloud-runtime/standalone/state/windowState.ts +179 -0
  336. package/cloud-runtime/standalone/styles/workspaceSidebar.css +89 -94
  337. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
  338. package/package.json +1 -1
  339. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__3fe0b1a1._.js +0 -3
  340. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ea3dff5._.js +0 -3
  341. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__931817d6._.js +0 -3
  342. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__e68a6e30._.js +0 -3
  343. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__fad8b80a._.js +0 -3
  344. package/cloud-runtime/standalone/.next/server/chunks/ssr/_181427d4._.js +0 -95
  345. package/cloud-runtime/standalone/.next/server/chunks/ssr/_2da02644._.js +0 -3
  346. package/cloud-runtime/standalone/.next/server/chunks/ssr/_60f7e403._.js +0 -3
  347. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7dbc349d._.js +0 -95
  348. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a17cabe8._.js +0 -95
  349. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d743f11d._.js +0 -3
  350. package/cloud-runtime/standalone/.next/server/chunks/ssr/_e05b04a5._.js +0 -4
  351. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f2970e5f._.js +0 -4
  352. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_001a8448._.js +0 -3
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_ece394eb.js +0 -3
  354. package/cloud-runtime/standalone/.next/static/chunks/047593c886feba72.css +0 -2
  355. package/cloud-runtime/standalone/.next/static/chunks/0c589ec8063c3a1f.js +0 -30
  356. package/cloud-runtime/standalone/.next/static/chunks/1826707bd2f73ca6.js +0 -8
  357. package/cloud-runtime/standalone/.next/static/chunks/1f1b912fe2e3d5bd.js +0 -1
  358. package/cloud-runtime/standalone/.next/static/chunks/32f13ace6661115d.js +0 -93
  359. package/cloud-runtime/standalone/.next/static/chunks/3b0a3b913dd15028.js +0 -30
  360. package/cloud-runtime/standalone/.next/static/chunks/4b3358c52d01a3f9.css +0 -1
  361. package/cloud-runtime/standalone/.next/static/chunks/4ee6151684568990.js +0 -93
  362. package/cloud-runtime/standalone/.next/static/chunks/5488a71a8515e8b2.js +0 -1
  363. package/cloud-runtime/standalone/.next/static/chunks/5aad4adabb65cd20.js +0 -1
  364. package/cloud-runtime/standalone/.next/static/chunks/5ce01dbd17ce3bb2.js +0 -1
  365. package/cloud-runtime/standalone/.next/static/chunks/5f5ae2ea4fa2b8f0.js +0 -12
  366. package/cloud-runtime/standalone/.next/static/chunks/6bb1ecbc3b80922c.js +0 -1
  367. package/cloud-runtime/standalone/.next/static/chunks/7657d70cc0c40c81.js +0 -6
  368. package/cloud-runtime/standalone/.next/static/chunks/7f2513325b592f25.js +0 -18
  369. package/cloud-runtime/standalone/.next/static/chunks/8b658ccf17b771b9.js +0 -1
  370. package/cloud-runtime/standalone/.next/static/chunks/b39122b85655e5b0.js +0 -1
  371. package/cloud-runtime/standalone/.next/static/chunks/b649593a57df218f.js +0 -1
  372. package/cloud-runtime/standalone/.next/static/chunks/b8ca4cb386211980.js +0 -5
  373. package/cloud-runtime/standalone/.next/static/chunks/e103488c85a7b445.js +0 -1
  374. package/cloud-runtime/standalone/.next/static/chunks/e355ac901e70f43d.js +0 -1
  375. package/cloud-runtime/standalone/.next/static/chunks/ebebe08434070698.js +0 -93
  376. /package/cloud-runtime/standalone/.next/static/{H3MuYxcqCPfZoSC2uYW8f → Rn0z3Af30mHwrHLLwgKlz}/_buildManifest.js +0 -0
  377. /package/cloud-runtime/standalone/.next/static/{H3MuYxcqCPfZoSC2uYW8f → Rn0z3Af30mHwrHLLwgKlz}/_clientMiddlewareManifest.json +0 -0
  378. /package/cloud-runtime/standalone/.next/static/{H3MuYxcqCPfZoSC2uYW8f → Rn0z3Af30mHwrHLLwgKlz}/_ssgManifest.js +0 -0
@@ -16,18 +16,16 @@ import { MessageSquare, Copy, Hash, Loader2, Trash2, User, Clock, Zap, ListTodo,
16
16
  import { agentAvatarUrl } from "./ParticipantBar";
17
17
  import { stripMarkers } from "@/lib/chat-utils";
18
18
 
19
- const INLINE_PREVIEW_COUNT = 2;
20
19
 
21
20
  const THREAD_STATUSES: { value: ThreadStatus; label: string; color: string }[] = [
22
- { value: "thinking", label: "Thinking", color: "#f59e0b" },
23
- { value: "converged", label: "Converged", color: "#10b981" },
24
- { value: "resolved", label: "Resolved", color: "#3b82f6" },
21
+ { value: "active", label: "Active", color: "#f59e0b" },
22
+ { value: "paused", label: "Paused", color: "#f97316" },
25
23
  { value: "in-review", label: "In Review", color: "#6b7280" },
24
+ { value: "done", label: "Done", color: "#3b82f6" },
26
25
  { value: "archived", label: "Archived", color: "#9ca3af" },
27
- { value: "paused", label: "Paused", color: "#f97316" },
28
26
  ];
29
27
 
30
- const COLLAPSED_STATUSES: Set<ThreadStatus> = new Set(["resolved", "in-review", "archived"]);
28
+ const COLLAPSED_STATUSES: Set<ThreadStatus> = new Set(["done", "in-review", "archived"]);
31
29
 
32
30
  interface Props {
33
31
  messages: GroupMessage[];
@@ -53,8 +51,6 @@ interface Props {
53
51
  }
54
52
 
55
53
  interface ThreadData extends ThreadInfo {
56
- /** Last N replies to show inline */
57
- previewReplies: GroupMessage[];
58
54
  /** All replies for the full view */
59
55
  allReplies: GroupMessage[];
60
56
  }
@@ -71,7 +67,6 @@ function buildThreadDataMap(messages: GroupMessage[]): Map<string, ThreadData> {
71
67
  replyCount: 0,
72
68
  participants: [],
73
69
  lastActivityAt: 0,
74
- previewReplies: [],
75
70
  allReplies: [],
76
71
  };
77
72
  map.set(rootId, data);
@@ -86,13 +81,8 @@ function buildThreadDataMap(messages: GroupMessage[]): Map<string, ThreadData> {
86
81
  data.participants.push("user");
87
82
  }
88
83
  }
89
- // Sort replies and keep only last N for preview
90
84
  for (const data of map.values()) {
91
85
  data.allReplies.sort((a, b) => a.timestamp - b.timestamp);
92
- data.previewReplies = [...data.allReplies];
93
- if (data.previewReplies.length > INLINE_PREVIEW_COUNT) {
94
- data.previewReplies = data.previewReplies.slice(-INLINE_PREVIEW_COUNT);
95
- }
96
86
  }
97
87
  return map;
98
88
  }
@@ -123,7 +113,7 @@ export function MessageList({
123
113
  }: Props) {
124
114
  const messageRefs = useRef<Map<string, HTMLDivElement>>(new Map());
125
115
  const [statusMenuMessageId, setStatusMenuMessageId] = useState<string | null>(null);
126
- const [activeTab, setActiveTab] = useState<"active" | "paused" | "in-review" | "resolved" | "archived">("active");
116
+ const [activeTab, setActiveTab] = useState<"active" | "paused" | "in-review" | "done" | "archived">("active");
127
117
  const participantMap = Object.fromEntries(participants.map((p) => [p.id, p]));
128
118
 
129
119
  // Filter to only main chat messages (not thread replies), reverse chronological
@@ -133,24 +123,24 @@ export function MessageList({
133
123
  );
134
124
 
135
125
  const TAB_FILTERS: Record<typeof activeTab, Set<ThreadStatus>> = {
136
- active: new Set(["thinking", "converged"]),
126
+ active: new Set(["active"]),
137
127
  paused: new Set(["paused"]),
138
128
  "in-review": new Set(["in-review"]),
139
- resolved: new Set(["resolved"]),
129
+ done: new Set(["done"]),
140
130
  archived: new Set(["archived"]),
141
131
  };
142
132
 
143
133
  const mainMessages = useMemo(
144
- () => allMainMessages.filter((msg) => TAB_FILTERS[activeTab].has(msg.threadStatus ?? "thinking")),
134
+ () => allMainMessages.filter((msg) => TAB_FILTERS[activeTab].has(msg.threadStatus ?? "active")),
145
135
  [allMainMessages, activeTab]
146
136
  );
147
137
 
148
138
  const tabCounts = useMemo(() => ({
149
- active: allMainMessages.filter((m) => TAB_FILTERS.active.has(m.threadStatus ?? "thinking")).length,
150
- paused: allMainMessages.filter((m) => TAB_FILTERS.paused.has(m.threadStatus ?? "thinking")).length,
151
- "in-review": allMainMessages.filter((m) => TAB_FILTERS["in-review"].has(m.threadStatus ?? "thinking")).length,
152
- resolved: allMainMessages.filter((m) => TAB_FILTERS.resolved.has(m.threadStatus ?? "thinking")).length,
153
- archived: allMainMessages.filter((m) => TAB_FILTERS.archived.has(m.threadStatus ?? "thinking")).length,
139
+ active: allMainMessages.filter((m) => TAB_FILTERS.active.has(m.threadStatus ?? "active")).length,
140
+ paused: allMainMessages.filter((m) => TAB_FILTERS.paused.has(m.threadStatus ?? "active")).length,
141
+ "in-review": allMainMessages.filter((m) => TAB_FILTERS["in-review"].has(m.threadStatus ?? "active")).length,
142
+ done: allMainMessages.filter((m) => TAB_FILTERS.done.has(m.threadStatus ?? "active")).length,
143
+ archived: allMainMessages.filter((m) => TAB_FILTERS.archived.has(m.threadStatus ?? "active")).length,
154
144
  }), [allMainMessages]);
155
145
 
156
146
  const threadDataMap = useMemo(() => buildThreadDataMap(messages), [messages]);
@@ -180,7 +170,7 @@ export function MessageList({
180
170
  { key: "active", label: "Active" },
181
171
  { key: "paused", label: "Paused" },
182
172
  { key: "in-review", label: "In Review" },
183
- { key: "resolved", label: "Resolved" },
173
+ { key: "done", label: "Done" },
184
174
  { key: "archived", label: "Archived" },
185
175
  ];
186
176
 
@@ -188,7 +178,7 @@ export function MessageList({
188
178
  <div className="chat-scrollbar flex-1 overflow-y-auto p-4">
189
179
  <div className="max-w-3xl mx-auto">
190
180
  {allMainMessages.length > 0 && (
191
- <div className="max-w-2xl mx-auto flex items-center gap-1 mb-4 border-b border-slate-100 pb-2">
181
+ <div className="flex items-center justify-center gap-1 p-1 rounded-lg w-fit mx-auto border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] mb-4">
192
182
  {TABS.map((tab) => {
193
183
  const count = tabCounts[tab.key];
194
184
  const isActive = activeTab === tab.key;
@@ -197,15 +187,15 @@ export function MessageList({
197
187
  key={tab.key}
198
188
  type="button"
199
189
  onClick={() => setActiveTab(tab.key)}
200
- className={`px-3 py-1.5 text-xs font-semibold rounded-md transition-colors ${
190
+ className={`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${
201
191
  isActive
202
- ? "bg-slate-900 text-white"
203
- : "text-slate-400 hover:text-slate-600 hover:bg-slate-50"
192
+ ? "bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm"
193
+ : "text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"
204
194
  }`}
205
195
  >
206
196
  {tab.label}
207
197
  {count > 0 && (
208
- <span className={`ml-1.5 text-[10px] ${isActive ? "text-slate-300" : "text-slate-300"}`}>
198
+ <span className={`ml-1.5 text-[10px] ${isActive ? "opacity-60" : "opacity-50"}`}>
209
199
  {count}
210
200
  </span>
211
201
  )}
@@ -216,13 +206,13 @@ export function MessageList({
216
206
  )}
217
207
  {/* Top-level streaming indicators are now rendered inside their triggering message card */}
218
208
  {allMainMessages.length === 0 && Object.keys(streaming).length === 0 && (
219
- <div className="flex flex-col items-center justify-center text-slate-400 mt-32 space-y-3">
209
+ <div className="flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3">
220
210
  <MessageSquare className="h-6 w-6" strokeWidth={1.5} />
221
211
  <span className="text-sm font-medium tracking-wide">Start a thread</span>
222
212
  </div>
223
213
  )}
224
214
  {allMainMessages.length > 0 && mainMessages.length === 0 && (
225
- <div className="flex flex-col items-center justify-center text-slate-400 mt-16 space-y-2">
215
+ <div className="flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2">
226
216
  <span className="text-sm font-medium">No {activeTab} threads</span>
227
217
  </div>
228
218
  )}
@@ -236,8 +226,8 @@ export function MessageList({
236
226
  ? summaryMsg.content.slice(SUMMARY_MARKER.length).trim()
237
227
  : null;
238
228
 
239
- const repliesToShow = (threadData?.previewReplies || []).filter((r) => !r.content.startsWith(SUMMARY_MARKER));
240
- const msgStatus = msg.threadStatus ?? "thinking";
229
+
230
+ const msgStatus = msg.threadStatus ?? "active";
241
231
  const isCollapsed = COLLAPSED_STATUSES.has(msgStatus);
242
232
  const statusInfo = THREAD_STATUSES.find((s) => s.value === msgStatus) ?? THREAD_STATUSES[0];
243
233
  const hasActiveAgents = Object.values(streaming).some((entry) => entry.rootMessageId === msg.id);
@@ -248,13 +238,13 @@ export function MessageList({
248
238
  key={msg.id}
249
239
  ref={(element) => setMessageRef(msg.id, element)}
250
240
  data-message-id={msg.id}
251
- className="max-w-2xl mx-auto bg-slate-50 rounded-xl border border-slate-200 mb-3 group transition-all hover:border-slate-300 relative cursor-pointer"
241
+ className={`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${statusMenuMessageId === msg.id ? 'z-50' : ''}`}
252
242
  onClick={() => onOpenThread?.(msg.id)}
253
243
  >
254
244
  <div className="px-4 py-2.5">
255
245
  <div className="flex items-center gap-3">
256
- <Hash className="w-3.5 h-3.5 text-slate-400 shrink-0" />
257
- <span className="text-sm font-medium text-slate-500 truncate flex-1">
246
+ <Hash className="w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0" />
247
+ <span className="text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1">
258
248
  {stripMarkers(msg.content.split('\n')[0])}
259
249
  </span>
260
250
  {shipModeThreads?.has(msg.id) && (
@@ -270,9 +260,9 @@ export function MessageList({
270
260
  </span>
271
261
  )}
272
262
  {msg.outcomeNote && (
273
- <span className="text-[11px] text-slate-400 truncate max-w-[200px]">{msg.outcomeNote}</span>
263
+ <span className="text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]">{msg.outcomeNote}</span>
274
264
  )}
275
- <span className="text-[10px] text-slate-400 shrink-0">
265
+ <span className="text-[10px] text-[var(--app-shell-soft-text)] shrink-0">
276
266
  {new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric" }).format(msg.timestamp)}
277
267
  </span>
278
268
  {onUpdateMessageThreadStatus && (() => {
@@ -285,7 +275,7 @@ export function MessageList({
285
275
  e.stopPropagation();
286
276
  setStatusMenuMessageId(isOpen ? null : msg.id);
287
277
  }}
288
- className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-white"
278
+ className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]"
289
279
  style={{ borderColor: statusInfo.color + "40", color: statusInfo.color }}
290
280
  >
291
281
  <span className="w-1.5 h-1.5 rounded-full" style={{ backgroundColor: statusInfo.color }} />
@@ -293,14 +283,14 @@ export function MessageList({
293
283
  </button>
294
284
  {isOpen && (
295
285
  <div
296
- className="absolute top-full right-0 mt-1 z-50 bg-white border border-slate-200 rounded-lg shadow-lg p-1 min-w-[8.5rem]"
286
+ className="absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]"
297
287
  onClick={(e) => e.stopPropagation()}
298
288
  >
299
289
  {THREAD_STATUSES.map((s) => (
300
290
  <button
301
291
  key={s.value}
302
292
  type="button"
303
- className={`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${s.value === msgStatus ? "bg-indigo-50 text-indigo-700" : "text-slate-600 hover:bg-slate-50"}`}
293
+ className={`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${s.value === msgStatus ? "bg-[var(--primary-muted)] text-[var(--primary)]" : "text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`}
304
294
  onClick={(e) => {
305
295
  e.stopPropagation();
306
296
  onUpdateMessageThreadStatus(msg.id, s.value);
@@ -317,18 +307,18 @@ export function MessageList({
317
307
  );
318
308
  })()}
319
309
  {threadData && threadData.replyCount > 0 && (
320
- <span className="text-[10px] text-slate-400 shrink-0">{threadData.replyCount} replies</span>
310
+ <span className="text-[10px] text-[var(--app-shell-muted)] shrink-0">{threadData.replyCount} replies</span>
321
311
  )}
322
312
  </div>
323
313
  {(summaryText || taskDrafts?.[msg.id]) && (
324
314
  <div className="mt-1.5 pl-6 flex flex-col gap-1">
325
315
  {summaryText && (
326
- <div className="text-sm text-slate-600 leading-relaxed prose prose-sm prose-slate max-w-none">
316
+ <div className="text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none">
327
317
  <Markdown content={summaryText} isUser={false} />
328
318
  </div>
329
319
  )}
330
320
  {taskDrafts?.[msg.id] && taskDrafts[msg.id].tasks.length > 0 && (
331
- <span className="text-[10px] text-slate-400 flex items-center gap-1">
321
+ <span className="text-[10px] text-[var(--app-shell-muted)] flex items-center gap-1">
332
322
  <ListTodo className="w-3 h-3" />
333
323
  {taskDrafts[msg.id].tasks.length} {taskDrafts[msg.id].tasks.length === 1 ? "task" : "tasks"}
334
324
  </span>
@@ -341,7 +331,7 @@ export function MessageList({
341
331
  }
342
332
 
343
333
  return (
344
- <div key={msg.id} className="max-w-2xl mx-auto bg-white rounded-2xl border border-slate-200 shadow-sm overflow-hidden mb-6 group transition-all hover:border-slate-300 relative">
334
+ <div key={msg.id} className={`max-w-2xl mx-auto bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-sm mb-6 group transition-all hover:border-[var(--card-hover-border)] relative ${statusMenuMessageId === msg.id ? 'z-50' : ''}`}>
345
335
  {(onCopyThread || onAddToChat || onDeleteThreadRoot) && (
346
336
  <div
347
337
  className="absolute top-4 right-4 z-10 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity"
@@ -350,7 +340,7 @@ export function MessageList({
350
340
  <button
351
341
  type="button"
352
342
  onClick={() => onAddToChat(msg.id)}
353
- className="p-1.5 text-slate-400 hover:bg-indigo-50 hover:text-indigo-600 rounded-md transition-colors"
343
+ className="p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--primary-muted)] hover:text-[var(--primary)] rounded-md transition-colors"
354
344
  title="Mention in chat"
355
345
  >
356
346
  <AtSign className="w-3.5 h-3.5" />
@@ -359,7 +349,7 @@ export function MessageList({
359
349
  <button
360
350
  type="button"
361
351
  onClick={() => { navigator.clipboard.writeText(msg.id); }}
362
- className="p-1.5 text-slate-400 hover:bg-slate-100 rounded-md transition-colors"
352
+ className="p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] rounded-md transition-colors"
363
353
  title="Copy message ID"
364
354
  >
365
355
  <Link className="w-3.5 h-3.5" />
@@ -368,7 +358,7 @@ export function MessageList({
368
358
  <button
369
359
  type="button"
370
360
  onClick={() => onCopyThread(msg.id)}
371
- className="p-1.5 text-slate-400 hover:bg-slate-100 rounded-md transition-colors"
361
+ className="p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] rounded-md transition-colors"
372
362
  title="Copy thread as markdown"
373
363
  >
374
364
  <Copy className="w-3.5 h-3.5" />
@@ -379,7 +369,7 @@ export function MessageList({
379
369
  type="button"
380
370
  onClick={() => onDeleteThreadRoot(msg.id)}
381
371
  disabled={isDeletingRoot}
382
- className="p-1.5 text-slate-400 hover:bg-rose-50 hover:text-rose-600 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
372
+ className="p-1.5 text-[var(--app-shell-muted)] hover:bg-[var(--destructive-muted)] hover:text-[var(--destructive)] rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
383
373
  title="Delete this thread"
384
374
  >
385
375
  {isDeletingRoot ? <Loader2 className="w-3.5 h-3.5 animate-spin" /> : <Trash2 className="w-3.5 h-3.5" />}
@@ -394,7 +384,7 @@ export function MessageList({
394
384
  {/* User Info & Title */}
395
385
  <div className="flex gap-3 mb-4">
396
386
  {msg.role !== 'user' && (
397
- <NextLink href={`/agents/${p?.id || msg.participantId || "assistant"}`} className="w-10 h-10 rounded-full bg-slate-100 overflow-hidden border border-slate-100 shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-blue-300 transition-shadow">
387
+ <NextLink href={`/agents/${p?.id || msg.participantId || "assistant"}`} className="w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow">
398
388
  {p ? (
399
389
  <img
400
390
  src={agentAvatarUrl(p.id, 40, p.color)}
@@ -413,7 +403,7 @@ export function MessageList({
413
403
  <div className="flex-1 min-w-0 pt-0.5">
414
404
  {msg.role !== 'user' && (
415
405
  <div className="flex items-center gap-2 mb-0.5">
416
- <NextLink href={`/agents/${p?.id || msg.participantId || "assistant"}`} className="font-bold text-sm text-slate-900 hover:underline">
406
+ <NextLink href={`/agents/${p?.id || msg.participantId || "assistant"}`} className="font-bold text-sm text-[var(--foreground)] hover:underline">
417
407
  {p?.name || msg.participantId || "Assistant"}
418
408
  </NextLink>
419
409
  </div>
@@ -422,11 +412,11 @@ export function MessageList({
422
412
  className="cursor-pointer group/msg-title mb-1"
423
413
  onClick={() => onOpenThread?.(msg.id)}
424
414
  >
425
- <h3 className="text-lg font-bold text-slate-900 leading-tight group-hover/msg-title:text-indigo-600 transition-colors line-clamp-1">
415
+ <h3 className="text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1">
426
416
  {stripMarkers(msg.content.split('\n')[0])}
427
417
  </h3>
428
418
  <div className="mt-1 flex items-center gap-2">
429
- <span className="text-[11px] font-medium text-slate-400">
419
+ <span className="text-[11px] font-medium text-[var(--app-shell-soft-text)]">
430
420
  {new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric", hour: "numeric", minute: "2-digit" }).format(msg.timestamp)}
431
421
  </span>
432
422
  {onUpdateMessageThreadStatus && (() => {
@@ -439,7 +429,7 @@ export function MessageList({
439
429
  e.stopPropagation();
440
430
  setStatusMenuMessageId(isOpen ? null : msg.id);
441
431
  }}
442
- className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-slate-50"
432
+ className="inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]"
443
433
  style={{ borderColor: statusInfo.color + "40", color: statusInfo.color }}
444
434
  >
445
435
  <span className="w-1.5 h-1.5 rounded-full" style={{ backgroundColor: statusInfo.color }} />
@@ -447,14 +437,14 @@ export function MessageList({
447
437
  </button>
448
438
  {isOpen && (
449
439
  <div
450
- className="absolute top-full left-0 mt-1 z-50 bg-white border border-slate-200 rounded-lg shadow-lg p-1 min-w-[8.5rem]"
440
+ className="absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]"
451
441
  onClick={(e) => e.stopPropagation()}
452
442
  >
453
443
  {THREAD_STATUSES.map((s) => (
454
444
  <button
455
445
  key={s.value}
456
446
  type="button"
457
- className={`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${s.value === msgStatus ? "bg-indigo-50 text-indigo-700" : "text-slate-600 hover:bg-slate-50"}`}
447
+ className={`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${s.value === msgStatus ? "bg-[var(--primary-muted)] text-[var(--primary)]" : "text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`}
458
448
  onClick={(e) => {
459
449
  e.stopPropagation();
460
450
  onUpdateMessageThreadStatus(msg.id, s.value);
@@ -465,28 +455,6 @@ export function MessageList({
465
455
  {s.label}
466
456
  </button>
467
457
  ))}
468
- {msgStatus === "converged" && onUpdateMessageOutcomeNote && (
469
- <div className="px-2 py-1.5 border-t border-slate-100 mt-1">
470
- <input
471
- type="text"
472
- className="w-full border border-slate-200 rounded px-2 py-1 text-[11px] text-slate-700 outline-none focus:border-indigo-400"
473
- placeholder="Outcome note…"
474
- defaultValue={msg.outcomeNote ?? ""}
475
- onClick={(e) => e.stopPropagation()}
476
- onKeyDown={(e) => {
477
- if (e.key === "Enter") {
478
- onUpdateMessageOutcomeNote(msg.id, (e.target as HTMLInputElement).value);
479
- setStatusMenuMessageId(null);
480
- }
481
- }}
482
- onBlur={(e) => {
483
- if (e.target.value !== (msg.outcomeNote ?? "")) {
484
- onUpdateMessageOutcomeNote(msg.id, e.target.value);
485
- }
486
- }}
487
- />
488
- </div>
489
- )}
490
458
  </div>
491
459
  )}
492
460
  </div>
@@ -506,7 +474,7 @@ export function MessageList({
506
474
  )}
507
475
  </div>
508
476
  {(msg.content.length > 80 || msg.content.includes('\n')) && (
509
- <div className="mt-2 text-[15px] text-slate-600 leading-relaxed line-clamp-3">
477
+ <div className="mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3">
510
478
  <Markdown content={stripMarkers(msg.content.split('\n').slice(1).join('\n').trimStart())} isUser={msg.role === 'user'} />
511
479
  </div>
512
480
  )}
@@ -521,7 +489,7 @@ export function MessageList({
521
489
  )}
522
490
 
523
491
  {summaryText && (
524
- <div className="mb-4 text-sm text-slate-600 leading-relaxed">
492
+ <div className="mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed">
525
493
  <Markdown content={summaryText} isUser={false} />
526
494
  </div>
527
495
  )}
@@ -533,12 +501,12 @@ export function MessageList({
533
501
  type="button"
534
502
  onClick={() => onSummarize(msg.id)}
535
503
  disabled={summarizingThreads?.has(msg.id)}
536
- className="flex items-center gap-1.5 px-3 py-1.5 bg-white border border-slate-200 rounded-full text-xs font-bold text-slate-600 hover:bg-slate-50 transition-colors shadow-sm disabled:opacity-50"
504
+ className="flex items-center gap-1.5 px-3 py-1.5 bg-[var(--card-bg)] border border-[var(--card-border)] rounded-full text-xs font-bold text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors shadow-sm disabled:opacity-50"
537
505
  >
538
506
  {summarizingThreads?.has(msg.id) ? (
539
- <Loader2 className="w-3.5 h-3.5 animate-spin text-slate-400" />
507
+ <Loader2 className="w-3.5 h-3.5 animate-spin text-[var(--app-shell-muted)]" />
540
508
  ) : (
541
- <Clock className="w-3.5 h-3.5 text-slate-400" />
509
+ <Clock className="w-3.5 h-3.5 text-[var(--app-shell-muted)]" />
542
510
  )}
543
511
  {summarizingThreads?.has(msg.id) ? "Summarizing\u2026" : "Summarize"}
544
512
  </button>
@@ -549,12 +517,12 @@ export function MessageList({
549
517
  type="button"
550
518
  onClick={() => onCreateTasks(msg.id)}
551
519
  disabled={extractingTasks?.has(msg.id)}
552
- className="flex items-center gap-1.5 px-3 py-1.5 bg-white border border-slate-200 rounded-full text-xs font-bold text-slate-600 hover:bg-slate-50 transition-colors shadow-sm disabled:opacity-50"
520
+ className="flex items-center gap-1.5 px-3 py-1.5 bg-[var(--card-bg)] border border-[var(--card-border)] rounded-full text-xs font-bold text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors shadow-sm disabled:opacity-50"
553
521
  >
554
522
  {extractingTasks?.has(msg.id) ? (
555
- <Loader2 className="w-3.5 h-3.5 animate-spin text-slate-400" />
523
+ <Loader2 className="w-3.5 h-3.5 animate-spin text-[var(--app-shell-muted)]" />
556
524
  ) : (
557
- <ListTodo className="w-3.5 h-3.5 text-slate-400" />
525
+ <ListTodo className="w-3.5 h-3.5 text-[var(--app-shell-muted)]" />
558
526
  )}
559
527
  {extractingTasks?.has(msg.id) ? "Extracting…" : taskDrafts?.[msg.id] ? "Re-extract tasks" : "Create tasks"}
560
528
  </button>
@@ -564,14 +532,14 @@ export function MessageList({
564
532
  <button
565
533
  type="button"
566
534
  onClick={() => onOpenThread(msg.id)}
567
- className="flex items-center gap-2 px-3 py-1.5 bg-slate-50 border border-slate-100 rounded-full text-xs font-bold text-slate-500 hover:bg-slate-100 transition-colors"
535
+ className="flex items-center gap-2 px-3 py-1.5 bg-[var(--app-shell-subtle)] border border-[var(--app-shell-border)] rounded-full text-xs font-bold text-[var(--app-shell-muted)] hover:bg-[var(--item-hover-bg)] transition-colors"
568
536
  >
569
537
  <div className="flex -space-x-1.5">
570
538
  {threadData.participants.slice(0, 3).map((pid) => {
571
539
  if (pid === 'user') {
572
540
  return (
573
- <div key="user" className="w-4 h-4 rounded-full bg-slate-200 flex items-center justify-center ring-1 ring-white">
574
- <User className="w-2.5 h-2.5 text-slate-400" />
541
+ <div key="user" className="w-4 h-4 rounded-full bg-[var(--app-shell-subtle)] flex items-center justify-center ring-1 ring-[var(--card-bg)]">
542
+ <User className="w-2.5 h-2.5 text-[var(--app-shell-muted)]" />
575
543
  </div>
576
544
  );
577
545
  }
@@ -581,10 +549,10 @@ export function MessageList({
581
549
  key={pid}
582
550
  src={agentAvatarUrl(pid, 16, tp.color)}
583
551
  alt={tp.name}
584
- className="w-4 h-4 rounded-full ring-1 ring-white"
552
+ className="w-4 h-4 rounded-full ring-1 ring-[var(--card-bg)]"
585
553
  />
586
554
  ) : (
587
- <div key={pid} className="w-4 h-4 rounded-full bg-slate-200 ring-1 ring-white" />
555
+ <div key={pid} className="w-4 h-4 rounded-full bg-[var(--app-shell-subtle)] ring-1 ring-[var(--card-bg)]" />
588
556
  );
589
557
  })}
590
558
  </div>
@@ -617,7 +585,7 @@ export function MessageList({
617
585
 
618
586
  {/* Extracting tasks spinner */}
619
587
  {extractingTasks?.has(msg.id) && (
620
- <div className="mt-4 flex items-center gap-2 text-xs text-slate-400">
588
+ <div className="mt-4 flex items-center gap-2 text-xs text-[var(--app-shell-muted)]">
621
589
  <Loader2 className="w-3.5 h-3.5 animate-spin" />
622
590
  <span>Extracting tasks…</span>
623
591
  </div>
@@ -625,49 +593,6 @@ export function MessageList({
625
593
  </div>
626
594
  </div>
627
595
 
628
- {/* Inline Replies Section - Only when NO summary exists */}
629
- {!summaryText && threadData && threadData.replyCount > 0 && (
630
- <div className="p-6 pt-0 border-t border-slate-100 bg-slate-50/10">
631
- <div className="pt-4 max-h-[320px] overflow-hidden relative">
632
- {threadData.replyCount > repliesToShow.length && (
633
- <div className="flex items-center gap-4 mb-4">
634
- <div className="flex-1 h-px bg-slate-100" />
635
- <button
636
- onClick={() => onOpenThread?.(msg.id)}
637
- className="flex items-center gap-2 text-[11px] font-bold uppercase tracking-wider text-slate-400 hover:text-indigo-600 transition-colors shrink-0"
638
- >
639
- <MessageSquare className="w-3.5 h-3.5" />
640
- <span>Show {threadData.replyCount - repliesToShow.length} more {threadData.replyCount - repliesToShow.length === 1 ? 'reply' : 'replies'}</span>
641
- </button>
642
- <div className="flex-1 h-px bg-slate-100" />
643
- </div>
644
- )}
645
- <div className="space-y-1">
646
- {repliesToShow.map((reply) => {
647
- const rp = reply.participantId ? participantMap[reply.participantId] : null;
648
- return (
649
- <div
650
- key={reply.id}
651
- ref={(element) => setMessageRef(reply.id, element)}
652
- data-message-id={reply.id}
653
- >
654
- <MessageBubble
655
- isRoot={false}
656
- message={reply}
657
- participantName={rp?.name || reply.participantId || "Assistant"}
658
- participantColor={rp?.color}
659
- participantId={rp?.id || reply.participantId || undefined}
660
- onOpenThread={onOpenThread}
661
- highlighted={reply.id === highlightedMessageId}
662
- />
663
- </div>
664
- );
665
- })}
666
- </div>
667
- <div className="absolute bottom-0 left-0 right-0 h-16 bg-gradient-to-t from-slate-50 via-slate-50/80 to-transparent pointer-events-none z-10" />
668
- </div>
669
- </div>
670
- )}
671
596
 
672
597
  {/* Typing indicators for this thread */}
673
598
  {Object.entries(streaming)