@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
@@ -27,13 +27,14 @@ import type { Participant, GroupMessage, MessageSearchResponse, MessageSearchRes
27
27
  import type { TaskDraftMessage } from "@/types/tasks";
28
28
  import { buildTasks } from "@/services/agxService";
29
29
  import { useProjectsWithAgents, useProjects } from "@/hooks/useProjects";
30
- import { Search, ChevronLeft, SquareTerminal } from "lucide-react";
30
+ import { Search, ChevronLeft, SquareTerminal, PanelLeftOpen, Moon, Sun } from "lucide-react";
31
31
  import { LogPanel } from "./LogPanel";
32
32
  import { StatusIndicator } from "./StatusIndicator";
33
33
 
34
34
  const LEGACY_THREAD_ID = "global";
35
35
  const SUMMARY_MARKER = "<!-- thread-summary -->";
36
36
  const TASK_DRAFT_MARKER = "<!-- task-draft -->";
37
+ const THEME_STORAGE_KEY = "agx-theme";
37
38
 
38
39
  function stripThoughts(text: string): string {
39
40
  return text.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g, "\n").trim();
@@ -105,6 +106,42 @@ function getTimeAgo(ts: number) {
105
106
  return new Intl.DateTimeFormat("en-US", { month: "short", day: "numeric" }).format(ts);
106
107
  }
107
108
 
109
+ function getOrderedParticipantIds(
110
+ participants: Participant[],
111
+ projects: ReturnType<typeof useProjectsWithAgents>["projects"],
112
+ activeThreadId: string | null
113
+ ): string[] {
114
+ const participantIdSet = new Set(participants.map((participant) => participant.id));
115
+ const threadProject = activeThreadId
116
+ ? projects.find((project) => project.thread_ids?.includes(activeThreadId))
117
+ : projects[0];
118
+ const routingOrderIds = threadProject
119
+ ? threadProject.agents.map((agent) => agent.agent_id).filter((id) => participantIdSet.has(id))
120
+ : [];
121
+
122
+ if (routingOrderIds.length === 0) {
123
+ return participants.map((participant) => participant.id);
124
+ }
125
+
126
+ const routedIdSet = new Set(routingOrderIds);
127
+ const fallbackIds = participants
128
+ .map((participant) => participant.id)
129
+ .filter((id) => !routedIdSet.has(id));
130
+ return [...routingOrderIds, ...fallbackIds];
131
+ }
132
+
133
+ function reconcileActiveParticipantIds(
134
+ orderedParticipantIds: string[],
135
+ storedIds: string[] | null
136
+ ): string[] {
137
+ if (storedIds === null) {
138
+ return orderedParticipantIds;
139
+ }
140
+
141
+ const enabledIds = new Set(storedIds);
142
+ return orderedParticipantIds.filter((id) => enabledIds.has(id));
143
+ }
144
+
108
145
  function toMarkdown(
109
146
  messages: GroupMessage[],
110
147
  participants: Participant[],
@@ -196,12 +233,25 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
196
233
  const [participantsLoaded, setParticipantsLoaded] = useState(false);
197
234
  const [activeParticipantIds, setActiveParticipantIds] = useState<string[]>([]);
198
235
  const [copied, setCopied] = useState(false);
236
+ const [theme, setTheme] = useState<"light" | "dark">(() => {
237
+ if (typeof window === "undefined") return "light";
238
+ const stored = window.localStorage.getItem(THEME_STORAGE_KEY);
239
+ if (stored === "dark" || stored === "light") return stored;
240
+ return document.documentElement.classList.contains("dark") ? "dark" : "light";
241
+ });
199
242
  const [workspaceSidebarVisible, setWorkspaceSidebarVisible] = useState(false);
200
243
 
201
244
  // Sync sidebar visibility from localStorage after hydration to avoid SSR mismatch
202
245
  useEffect(() => {
203
246
  setWorkspaceSidebarVisible(loadWorkspaceSidebarVisible());
204
247
  }, []);
248
+ useEffect(() => {
249
+ if (typeof window === "undefined") return;
250
+ const isDark = theme === "dark";
251
+ document.documentElement.classList.toggle("dark", isDark);
252
+ document.documentElement.style.colorScheme = theme;
253
+ window.localStorage.setItem(THEME_STORAGE_KEY, theme);
254
+ }, [theme]);
205
255
  const [logsOpen, setLogsOpen] = useState(false);
206
256
  const [autoModeThreads, setAutoModeThreads] = useState<Set<string>>(new Set());
207
257
  const [pendingAutoMode, setPendingAutoMode] = useState(false);
@@ -488,34 +538,21 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
488
538
  if (!participantsLoaded) {
489
539
  return;
490
540
  }
491
-
492
- const participantIdSet = new Set(participants.map((p) => p.id));
493
-
494
- // Use routing order from the thread's project if available, else fall back to participants order
495
- const threadProject = activeThreadId
496
- ? projects.find((p) => p.thread_ids?.includes(activeThreadId))
497
- : projects[0];
498
- const routingOrderIds = threadProject
499
- ? threadProject.agents.map((a) => a.agent_id).filter((id) => participantIdSet.has(id))
500
- : [];
501
- // Append any participants not in the project (fallback)
502
- const defaultIds = routingOrderIds.length > 0
503
- ? [...routingOrderIds, ...participants.filter((p) => !routingOrderIds.includes(p.id)).map((p) => p.id)]
504
- : participants.map((p) => p.id);
541
+ const orderedParticipantIds = getOrderedParticipantIds(participants, projects, activeThreadId);
505
542
 
506
543
  if (!activeThreadId) {
507
- setActiveParticipantIds(defaultIds);
544
+ setActiveParticipantIds(orderedParticipantIds);
508
545
  return;
509
546
  }
510
547
 
511
548
  const storedIds = loadStoredActiveParticipantIds(activeThreadId);
512
549
  if (storedIds === null) {
513
- setActiveParticipantIds(defaultIds);
550
+ setActiveParticipantIds(orderedParticipantIds);
514
551
  return;
515
552
  }
516
553
 
517
- const reconciled = storedIds.filter((id) => participantIdSet.has(id));
518
- if (reconciled.length !== storedIds.length) {
554
+ const reconciled = reconcileActiveParticipantIds(orderedParticipantIds, storedIds);
555
+ if (reconciled.length !== storedIds.length || reconciled.some((id, index) => storedIds[index] !== id)) {
519
556
  persistStoredActiveParticipantIds(activeThreadId, reconciled);
520
557
  }
521
558
  setActiveParticipantIds(reconciled);
@@ -667,9 +704,13 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
667
704
  }, [activeThreadId, messages, updateThreadMessages]);
668
705
 
669
706
  const handleThreadReply = useCallback(
670
- (rootMessageId: string, content: string, maxRounds: number = 10) => {
707
+ (rootMessageId: string, content: string, maxRounds: number = 10, pinnedParticipantId?: string) => {
671
708
  if (!activeThreadId) return;
672
709
  if (activeParticipants.length === 0) return;
710
+ const selectedActiveIds = activeParticipants.map((participant) => participant.id);
711
+ const orderedActiveIds = pinnedParticipantId && selectedActiveIds.includes(pinnedParticipantId)
712
+ ? [pinnedParticipantId, ...selectedActiveIds.filter((participantId) => participantId !== pinnedParticipantId)]
713
+ : selectedActiveIds;
673
714
  void sendMessage(
674
715
  content,
675
716
  maxRounds,
@@ -677,7 +718,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
677
718
  rootMessageId,
678
719
  undefined,
679
720
  undefined,
680
- activeParticipants.map((participant) => participant.id),
721
+ orderedActiveIds,
681
722
  projectSlug
682
723
  );
683
724
  },
@@ -882,7 +923,13 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
882
923
  }, [activeThreadId, handleSummarize, messages, openThreadId]);
883
924
 
884
925
  const handleSend = useCallback(
885
- async (prompt: string, maxRounds: number, attachmentIds?: string[], attachmentMetas?: import("@/lib/types").Attachment[]) => {
926
+ async (
927
+ prompt: string,
928
+ maxRounds: number,
929
+ attachmentIds?: string[],
930
+ attachmentMetas?: import("@/lib/types").Attachment[],
931
+ pinnedParticipantId?: string
932
+ ) => {
886
933
  const searchMatch = prompt.match(/^\/search(?:\s+([\s\S]+))?$/i);
887
934
  if (searchMatch) {
888
935
  handleSearchCommand(searchMatch[1]);
@@ -920,6 +967,9 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
920
967
  window.alert("Enable at least one agent in this project.");
921
968
  return;
922
969
  }
970
+ const orderedActiveIds = pinnedParticipantId && selectedActiveIds.includes(pinnedParticipantId)
971
+ ? [pinnedParticipantId, ...selectedActiveIds.filter((participantId) => participantId !== pinnedParticipantId)]
972
+ : selectedActiveIds;
923
973
 
924
974
  if (openThreadId) {
925
975
  await sendMessage(
@@ -929,7 +979,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
929
979
  openThreadId,
930
980
  attachmentIds,
931
981
  attachmentMetas,
932
- selectedActiveIds,
982
+ orderedActiveIds,
933
983
  projectSlug
934
984
  );
935
985
  return;
@@ -944,7 +994,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
944
994
  null,
945
995
  attachmentIds,
946
996
  attachmentMetas,
947
- selectedActiveIds,
997
+ orderedActiveIds,
948
998
  projectSlug
949
999
  );
950
1000
 
@@ -1106,7 +1156,9 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1106
1156
  const renderReplyComposer = useCallback(
1107
1157
  (rootMessageId: string) => (
1108
1158
  <Composer
1109
- onSend={(message, maxRounds) => handleThreadReply(rootMessageId, message, maxRounds)}
1159
+ onSend={(message, maxRounds, _attachmentIds, _attachments, pinnedParticipantId) =>
1160
+ handleThreadReply(rootMessageId, message, maxRounds, pinnedParticipantId)
1161
+ }
1110
1162
  onStop={() => handleStopThread(rootMessageId)}
1111
1163
  loading={Object.values(streaming).some((s) => s.rootMessageId === rootMessageId)}
1112
1164
  participants={activeParticipants}
@@ -1186,7 +1238,8 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1186
1238
  const handleToggleParticipantActive = useCallback(
1187
1239
  (participantId: string, active: boolean) => {
1188
1240
  setActiveParticipantIds((prev) => {
1189
- const availableIds = new Set(participants.map((participant) => participant.id));
1241
+ const orderedParticipantIds = getOrderedParticipantIds(participants, projects, activeThreadId);
1242
+ const availableIds = new Set(orderedParticipantIds);
1190
1243
  if (!availableIds.has(participantId)) {
1191
1244
  return prev;
1192
1245
  }
@@ -1198,9 +1251,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1198
1251
  nextSet.delete(participantId);
1199
1252
  }
1200
1253
 
1201
- const next = participants
1202
- .map((participant) => participant.id)
1203
- .filter((id) => nextSet.has(id));
1254
+ const next = orderedParticipantIds.filter((id) => nextSet.has(id));
1204
1255
 
1205
1256
  if (activeThreadId) {
1206
1257
  persistStoredActiveParticipantIds(activeThreadId, next);
@@ -1209,7 +1260,7 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1209
1260
  return next;
1210
1261
  });
1211
1262
  },
1212
- [activeThreadId, participants]
1263
+ [activeThreadId, participants, projects]
1213
1264
  );
1214
1265
 
1215
1266
  const handleSelectProject = useCallback(
@@ -1227,46 +1278,100 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1227
1278
  [projects, activeThreadId]
1228
1279
  );
1229
1280
 
1230
- const searchInputBar = (
1231
- <div className="border-b border-slate-200/60 bg-white px-6 py-2.5">
1232
- <div className="max-w-2xl mx-auto relative group/search">
1233
- <Search
1234
- className="pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400 group-focus-within/search:text-indigo-500 transition-colors"
1235
- strokeWidth={2}
1236
- />
1237
- <input
1238
- ref={searchInputRef}
1239
- type="text"
1240
- value={searchQuery}
1241
- onChange={(e) => setSearchQuery(e.target.value)}
1242
- onKeyDown={(e) => {
1243
- if (e.key === "Escape") clearSearch();
1244
- }}
1245
- placeholder="Search messages…"
1246
- className="h-9 w-full rounded-lg border border-slate-200 bg-slate-50/80 pl-9 pr-16 text-sm font-medium outline-none placeholder:text-slate-400 transition-all focus:bg-white focus:border-indigo-300 focus:ring-2 focus:ring-indigo-500/10 hover:border-slate-300"
1247
- />
1248
- {normalizedSearchQuery ? (
1249
- <div className="absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-2">
1250
- <span className="text-[11px] font-bold text-slate-400">
1251
- {searchLoading ? "…" : searchTotal}
1252
- </span>
1281
+ const toggleTheme = useCallback(() => {
1282
+ setTheme((current) => (current === "dark" ? "light" : "dark"));
1283
+ }, []);
1284
+
1285
+ const renderThemeToggleButton = () => (
1286
+ <button
1287
+ type="button"
1288
+ onClick={toggleTheme}
1289
+ aria-label={theme === "dark" ? "Switch to light theme" : "Switch to dark theme"}
1290
+ title={theme === "dark" ? "Switch to light theme" : "Switch to dark theme"}
1291
+ className="inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
1292
+ >
1293
+ {theme === "dark" ? <Sun className="h-4 w-4" strokeWidth={1.75} /> : <Moon className="h-4 w-4" strokeWidth={1.75} />}
1294
+ </button>
1295
+ );
1296
+
1297
+ const mainToolbar = (
1298
+ <div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
1299
+ <div className="mx-auto flex max-w-5xl items-center gap-3">
1300
+ <div className="flex min-w-0 items-center flex-shrink-0">
1301
+ {!workspaceSidebarVisible && (
1253
1302
  <button
1254
1303
  type="button"
1255
- onClick={clearSearch}
1256
- className="text-[10px] font-bold text-slate-400 hover:text-slate-600 transition-colors"
1304
+ onClick={toggleWorkspaceSidebar}
1305
+ className="inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]"
1306
+ title="Show sidebar"
1307
+ aria-label="Show sidebar"
1257
1308
  >
1258
-
1309
+ <PanelLeftOpen className="h-4 w-4" strokeWidth={1.75} />
1259
1310
  </button>
1311
+ )}
1312
+ </div>
1313
+ <div className="flex flex-1 justify-center min-w-0">
1314
+ <div className="flex w-full max-w-2xl items-center gap-2">
1315
+ <div className="relative group/search min-w-0 flex-1">
1316
+ <Search
1317
+ className="pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]"
1318
+ strokeWidth={2}
1319
+ />
1320
+ <input
1321
+ ref={searchInputRef}
1322
+ type="text"
1323
+ value={searchQuery}
1324
+ onChange={(e) => setSearchQuery(e.target.value)}
1325
+ onKeyDown={(e) => {
1326
+ if (e.key === "Escape") clearSearch();
1327
+ }}
1328
+ placeholder="Search messages…"
1329
+ className="h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"
1330
+ />
1331
+ {normalizedSearchQuery ? (
1332
+ <div className="absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2">
1333
+ <span className="text-[11px] font-bold text-[var(--muted-foreground)]">
1334
+ {searchLoading ? "…" : searchTotal}
1335
+ </span>
1336
+ <button
1337
+ type="button"
1338
+ onClick={clearSearch}
1339
+ className="text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]"
1340
+ >
1341
+
1342
+ </button>
1343
+ </div>
1344
+ ) : (
1345
+ <kbd className="pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]">⌘K</kbd>
1346
+ )}
1347
+ </div>
1348
+ <div className="flex items-center gap-2 flex-shrink-0">
1349
+ {renderThemeToggleButton()}
1350
+ <StatusIndicator />
1351
+ {openThreadId && (
1352
+ <button
1353
+ type="button"
1354
+ onClick={() => setLogsOpen(!logsOpen)}
1355
+ aria-label={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
1356
+ aria-pressed={logsOpen}
1357
+ title={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
1358
+ className={`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${logsOpen
1359
+ ? "border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]"
1360
+ : "border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
1361
+ }`}
1362
+ >
1363
+ <SquareTerminal className="h-4 w-4" strokeWidth={1.75} />
1364
+ </button>
1365
+ )}
1366
+ </div>
1260
1367
  </div>
1261
- ) : (
1262
- <kbd className="pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 px-1.5 py-0.5 text-[10px] font-sans font-bold text-slate-400 bg-slate-100 border border-slate-200 rounded-md">⌘K</kbd>
1263
- )}
1368
+ </div>
1264
1369
  </div>
1265
1370
  </div>
1266
1371
  );
1267
1372
 
1268
1373
  return (
1269
- <div className="flex h-screen bg-white text-zinc-900">
1374
+ <div className="flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]">
1270
1375
  <WorkspaceSidebar
1271
1376
  threads={threads}
1272
1377
  participants={participants}
@@ -1295,73 +1400,65 @@ export function ChatContainer({ projectSlug, initialThreadId, initialRootMessage
1295
1400
  onSelectProject={handleSelectProject}
1296
1401
  />
1297
1402
  <div className="flex flex-col flex-1 min-w-0 relative">
1298
- {/* Top-right controls */}
1299
- <div className="absolute top-4 right-4 z-30 flex items-center gap-2">
1300
- <StatusIndicator />
1301
- {openThreadId && (
1302
- <button
1303
- type="button"
1304
- onClick={() => setLogsOpen(!logsOpen)}
1305
- aria-label={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
1306
- aria-pressed={logsOpen}
1307
- title={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
1308
- className={`inline-flex h-8 w-8 items-center justify-center rounded-md border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400 ${logsOpen
1309
- ? "border-slate-300 bg-slate-50 text-slate-800"
1310
- : "border-slate-200 bg-white text-slate-500 hover:bg-slate-50 hover:text-slate-800"
1311
- }`}
1312
- >
1313
- <SquareTerminal className="h-4 w-4" strokeWidth={1.75} />
1314
- </button>
1315
- )}
1316
- </div>
1317
-
1318
-
1319
-
1320
- {openThreadId && (
1321
- <header className="border-b border-slate-200 px-6 py-4 flex items-center h-16 pr-14">
1322
- <div className="flex items-center gap-3 min-w-0">
1323
- <button
1324
- onClick={() => setOpenThreadId(null)}
1325
- className="p-1.5 text-slate-400 hover:text-indigo-600 hover:bg-zinc-100 rounded-lg transition-all active:scale-95 flex-shrink-0"
1326
- title="Back to main feed"
1327
- >
1328
- <ChevronLeft size={22} strokeWidth={2.5} />
1329
- </button>
1330
- <div className="flex flex-col min-w-0">
1331
- <div className="flex items-center gap-3">
1332
- <h2 className="text-[15px] font-bold text-slate-900 tracking-tight leading-tight truncate max-w-[240px]">
1333
- {activeThreadTitle}
1334
- </h2>
1335
- <div className="flex -space-x-1.5 ml-1 flex-shrink-0">
1336
- {activeThreadParticipants.map((p) => (
1337
- <img
1338
- key={p.id}
1339
- src={`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${p.id}&backgroundColor=${p.color ? p.color.replace('#', '') : 'e2e8f0'}`}
1340
- alt={p.name}
1341
- className="w-5 h-5 rounded-full border-2 border-white shadow-sm ring-1 ring-slate-200 object-cover"
1342
- title={p.name}
1343
- />
1344
- ))}
1345
- </div>
1346
- </div>
1347
- <div className="text-[11px] text-slate-500 font-medium flex items-center gap-1.5">
1348
- <span className="opacity-80">{activeThreadParticipants.length} agents</span>
1349
- <span className="w-0.5 h-0.5 rounded-full bg-slate-300" />
1350
- <span className="opacity-80">Updated {getTimeAgo(lastThreadUpdate)}</span>
1351
- </div>
1352
- </div>
1353
- </div>
1354
- </header>
1355
- )}
1356
1403
  {
1357
1404
  isRestoringActiveThread ? (
1358
- <div className="flex-1 flex items-center justify-center px-4 text-sm text-zinc-500">
1405
+ <div className="flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]">
1359
1406
  Loading your last project…
1360
1407
  </div>
1361
1408
  ) : (
1362
- <div className="flex flex-1 min-h-0 bg-slate-50 relative">
1409
+ <div className="flex flex-1 min-h-0 bg-transparent relative">
1363
1410
  <div className="flex flex-col flex-1 min-w-0">
1364
- {!openThreadId && searchInputBar}
1411
+ {openThreadId ? (
1412
+ <div className="border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6">
1413
+ <div className="mx-auto flex max-w-5xl items-center gap-3 min-w-0">
1414
+ <button
1415
+ onClick={() => setOpenThreadId(null)}
1416
+ className="p-1.5 text-[var(--app-shell-muted)] hover:text-indigo-500 hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0"
1417
+ title="Back to main feed"
1418
+ >
1419
+ <ChevronLeft size={20} strokeWidth={2.25} />
1420
+ </button>
1421
+ <div className="flex-1 flex flex-col min-w-0">
1422
+ <h2 className="text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0">
1423
+ {activeThreadTitle}
1424
+ </h2>
1425
+ <div className="flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]">
1426
+ <span className="opacity-80">{activeThreadParticipants.length} agents</span>
1427
+ <span className="h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]" />
1428
+ <span className="opacity-80">Updated {getTimeAgo(lastThreadUpdate)}</span>
1429
+ </div>
1430
+ </div>
1431
+ <div className="flex -space-x-1.5 flex-shrink-0">
1432
+ {activeThreadParticipants.map((p) => (
1433
+ <img
1434
+ key={p.id}
1435
+ src={`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${p.id}&backgroundColor=${p.color ? p.color.replace('#', '') : 'e2e8f0'}`}
1436
+ alt={p.name}
1437
+ className="h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]"
1438
+ title={p.name}
1439
+ />
1440
+ ))}
1441
+ </div>
1442
+ <div className="ml-auto flex items-center gap-2">
1443
+ {renderThemeToggleButton()}
1444
+ <StatusIndicator />
1445
+ <button
1446
+ type="button"
1447
+ onClick={() => setLogsOpen(!logsOpen)}
1448
+ aria-label={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
1449
+ aria-pressed={logsOpen}
1450
+ title={logsOpen ? "Hide logs" : `Show logs${logs.length > 0 ? ` (${logs.length})` : ""}`}
1451
+ className={`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${logsOpen
1452
+ ? "border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]"
1453
+ : "border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"
1454
+ }`}
1455
+ >
1456
+ <SquareTerminal className="h-4 w-4" strokeWidth={1.75} />
1457
+ </button>
1458
+ </div>
1459
+ </div>
1460
+ </div>
1461
+ ) : mainToolbar}
1365
1462
 
1366
1463
  {searchActive ? (
1367
1464
  <SearchResults
@@ -48,9 +48,9 @@ export function ChatPreview() {
48
48
  className="flex gap-3 animate-in fade-in slide-in-from-bottom-2 duration-300"
49
49
  style={{ animationDelay: `${i * 50}ms` }}
50
50
  >
51
- <div className="w-8 h-8 rounded-full overflow-hidden border border-slate-100 shadow-sm shrink-0 mt-0.5 flex items-center justify-center bg-slate-100">
51
+ <div className="w-8 h-8 rounded-full overflow-hidden border border-[var(--border)] shadow-sm shrink-0 mt-0.5 flex items-center justify-center bg-[var(--muted)]">
52
52
  {isUser ? (
53
- <User className="w-4 h-4 text-slate-400" />
53
+ <User className="w-4 h-4 text-[var(--muted-foreground)]" />
54
54
  ) : p ? (
55
55
  <Link href={`/agents/${p.id}`} className="w-full h-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow">
56
56
  <img
@@ -80,12 +80,12 @@ export function ChatPreview() {
80
80
  </span>
81
81
  )}
82
82
  {!isUser && p?.model && (
83
- <span className="text-[10px] text-slate-400 font-medium">
83
+ <span className="text-[10px] text-[var(--muted-foreground)] font-medium">
84
84
  {p.model}
85
85
  </span>
86
86
  )}
87
87
  </div>
88
- <div className="text-[14px] text-slate-700 leading-relaxed mt-0.5">
88
+ <div className="text-[14px] text-[var(--foreground)] leading-relaxed mt-0.5">
89
89
  <Markdown content={msg.content} isUser={isUser} />
90
90
  </div>
91
91
  </div>
@@ -35,7 +35,7 @@ export function CommandPopover({
35
35
  role="listbox"
36
36
  id={listboxId}
37
37
  aria-label="Command suggestions"
38
- className="max-h-56 overflow-y-auto rounded-xl border border-zinc-200 bg-white shadow-lg"
38
+ className="max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg"
39
39
  >
40
40
  {commands.map((command, index) => {
41
41
  const isActive = index === activeIndex;
@@ -50,7 +50,7 @@ export function CommandPopover({
50
50
  optionRefs.current[index] = el;
51
51
  }}
52
52
  className={`w-full px-3 py-2 text-left text-sm transition-colors ${
53
- isActive ? "bg-blue-50 text-zinc-900" : "text-zinc-700 hover:bg-zinc-50"
53
+ isActive ? "bg-[var(--primary-muted)] text-[var(--foreground)]" : "text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"
54
54
  }`}
55
55
  onMouseDown={(e) => e.preventDefault()}
56
56
  onClick={() => onSelect(command)}
@@ -58,9 +58,9 @@ export function CommandPopover({
58
58
  <span className="inline-flex items-center gap-2">
59
59
  <span className="font-medium font-mono">{command.name}</span>
60
60
  {command.aliases && command.aliases.length > 0 && (
61
- <span className="text-xs text-zinc-300 font-mono">({command.aliases.join(", ")})</span>
61
+ <span className="text-xs text-[var(--app-shell-soft-text)] font-mono">({command.aliases.join(", ")})</span>
62
62
  )}
63
- <span className="text-xs text-zinc-400">{command.description}</span>
63
+ <span className="text-xs text-[var(--muted-foreground)]">{command.description}</span>
64
64
  </span>
65
65
  </button>
66
66
  );