@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
@@ -14,7 +14,6 @@ import {
14
14
  Pencil,
15
15
  Plus,
16
16
  Share2,
17
- Trash2,
18
17
  Upload,
19
18
  Users,
20
19
  X,
@@ -65,23 +64,15 @@ export default function AgentLibraryPage() {
65
64
  const {
66
65
  projects,
67
66
  createProject,
68
- deleteProject,
69
- renameProject,
70
67
  addAgent: addAgentToProject,
71
68
  removeAgent: removeAgentFromProject,
72
69
  refresh: refreshProjects,
73
70
  } = useProjectsWithAgents();
74
71
 
75
72
  const [expandedProjects, setExpandedProjects] = useState<Set<string>>(new Set());
76
- const [createModal, setCreateModal] = useState(false);
77
- const [createName, setCreateName] = useState("");
78
- const [createAgents, setCreateAgents] = useState<Set<string>>(new Set());
79
- const [createWorkspaces, setCreateWorkspaces] = useState<Set<string>>(new Set());
80
73
  const [addAgentModal, setAddAgentModal] = useState<{ projectId: string } | null>(null);
81
74
  const [addAgentSelection, setAddAgentSelection] = useState<Set<string>>(new Set());
82
75
  const [creatingNewAgent, setCreatingNewAgent] = useState(false);
83
- const [renameModal, setRenameModal] = useState<{ projectId: string; currentName: string } | null>(null);
84
- const [renameValue, setRenameValue] = useState("");
85
76
 
86
77
  // Edit agent state
87
78
  const [editAgent, setEditAgent] = useState<Participant | null>(null);
@@ -151,24 +142,6 @@ export default function AgentLibraryPage() {
151
142
  });
152
143
  };
153
144
 
154
- const handleCreateSubmit = async () => {
155
- if (!createName.trim()) return;
156
- const wsIds = Array.from(createWorkspaces);
157
- const project = await createProject(createName.trim(), wsIds.length > 0 ? wsIds : undefined);
158
- if (project) {
159
- for (const agentId of createAgents) {
160
- await addAgentToProject(project.id, agentId);
161
- }
162
- }
163
- setCreateModal(false);
164
- };
165
-
166
- const handleRenameSubmit = async () => {
167
- if (!renameModal || !renameValue.trim()) return;
168
- await renameProject(renameModal.projectId, renameValue.trim());
169
- setRenameModal(null);
170
- };
171
-
172
145
  // ── Outbound (Share / Export) ──────────────────────────────────────
173
146
 
174
147
  const openOutboundModal = () => {
@@ -378,7 +351,7 @@ export default function AgentLibraryPage() {
378
351
  // ── Checkbox helper ─────────────────────────────────────────────────────
379
352
 
380
353
  const Checkbox = ({ checked }: { checked: boolean }) => (
381
- <div className={`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${checked ? "bg-slate-900 border-slate-900" : "border-slate-300"}`}>
354
+ <div className={`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${checked ? "bg-[var(--foreground)] border-[var(--foreground)]" : "border-[var(--app-shell-soft-text)]"}`}>
382
355
  {checked && (
383
356
  <svg width="10" height="10" viewBox="0 0 10 10" fill="none"><path d="M2 5l2 2 4-4" stroke="white" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"/></svg>
384
357
  )}
@@ -386,21 +359,21 @@ export default function AgentLibraryPage() {
386
359
  );
387
360
 
388
361
  return (
389
- <div className="min-h-screen bg-slate-50 p-6">
362
+ <div className="min-h-screen bg-[var(--secondary)] p-6">
390
363
  <div className="max-w-6xl mx-auto">
391
364
  <div className="flex items-center gap-3 mb-6">
392
365
  <Link
393
366
  href="/"
394
- className="inline-flex items-center gap-1 text-sm text-slate-500 hover:text-slate-700 transition-colors"
367
+ className="inline-flex items-center gap-1 text-sm text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors"
395
368
  >
396
369
  <ArrowLeft size={16} />
397
370
  Back
398
371
  </Link>
399
- <h1 className="text-2xl font-semibold text-slate-900">Manage Agents</h1>
372
+ <h1 className="text-2xl font-semibold text-[var(--foreground)]">Manage Agents</h1>
400
373
  <div className="ml-auto flex items-center gap-2">
401
374
  <button
402
375
  type="button"
403
- className="inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-slate-900 rounded-lg hover:bg-slate-800 transition-colors"
376
+ className="inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 transition-colors"
404
377
  onClick={() => setCreatingNewAgent(true)}
405
378
  >
406
379
  <Plus size={13} />
@@ -442,23 +415,23 @@ export default function AgentLibraryPage() {
442
415
 
443
416
  {/* Agent Grid */}
444
417
  {participants.length === 0 ? (
445
- <p className="text-slate-500 text-sm">No agents configured yet.</p>
418
+ <p className="text-[var(--muted-foreground)] text-sm">No agents configured yet.</p>
446
419
  ) : (
447
420
  <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
448
421
  {participants.map((p) => (
449
422
  <div
450
423
  key={p.id}
451
- className="bg-white rounded-xl border border-slate-200 p-4 hover:shadow-md transition-shadow text-left group"
424
+ className="bg-[var(--card-bg)] rounded-xl border border-[var(--border)] p-4 hover:shadow-md transition-shadow text-left group"
452
425
  >
453
426
  <div className="flex items-start gap-3 mb-3">
454
427
  <img
455
428
  src={agentAvatarUrl(p.id, 48, p.color)}
456
429
  alt={p.name}
457
- className="w-12 h-12 rounded-full bg-slate-100"
430
+ className="w-12 h-12 rounded-full bg-[var(--secondary)]"
458
431
  />
459
432
  <div className="min-w-0 flex-1">
460
- <h3 className="font-medium text-slate-900 truncate">{p.name}</h3>
461
- <p className="text-xs text-slate-400 truncate mt-0.5">{p.model}</p>
433
+ <h3 className="font-medium text-[var(--foreground)] truncate">{p.name}</h3>
434
+ <p className="text-xs text-[var(--app-shell-soft-text)] truncate mt-0.5">{p.model}</p>
462
435
  {workingAgents.has(p.id) && (
463
436
  <span className="inline-flex items-center gap-1 mt-1 text-[10px] font-medium text-emerald-600">
464
437
  <span className="w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse" />
@@ -479,15 +452,15 @@ export default function AgentLibraryPage() {
479
452
  </span>
480
453
  ))}
481
454
  {p.skills.length > 3 && (
482
- <span className="text-[10px] px-1.5 py-0.5 rounded bg-slate-50 text-slate-400">
455
+ <span className="text-[10px] px-1.5 py-0.5 rounded bg-[var(--secondary)] text-[var(--app-shell-soft-text)]">
483
456
  +{p.skills.length - 3}
484
457
  </span>
485
458
  )}
486
459
  </div>
487
460
  )}
488
461
 
489
- <div className="flex items-center justify-between pt-2 border-t border-slate-100">
490
- <span className="text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-slate-100 text-slate-600 uppercase tracking-wide">
462
+ <div className="flex items-center justify-between pt-2 border-t border-[var(--border)]">
463
+ <span className="text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-[var(--secondary)] text-[var(--muted-foreground)] uppercase tracking-wide">
491
464
  {p.provider}
492
465
  </span>
493
466
  <div className="flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
@@ -495,14 +468,14 @@ export default function AgentLibraryPage() {
495
468
  type="button"
496
469
  title="Edit"
497
470
  onClick={() => setEditAgent(p)}
498
- className="p-1.5 text-slate-400 hover:text-slate-600 rounded hover:bg-slate-50 transition-colors"
471
+ className="p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors"
499
472
  >
500
473
  <Pencil size={13} />
501
474
  </button>
502
475
  <Link
503
476
  href={`/agents/${p.id}`}
504
477
  title="View profile"
505
- className="p-1.5 text-slate-400 hover:text-slate-600 rounded hover:bg-slate-50 transition-colors"
478
+ className="p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors"
506
479
  >
507
480
  <Eye size={13} />
508
481
  </Link>
@@ -515,27 +488,15 @@ export default function AgentLibraryPage() {
515
488
 
516
489
  {/* Projects Section */}
517
490
  <div className="mt-10">
518
- <div className="flex items-center justify-between mb-4">
519
- <h2 className="text-lg font-semibold text-slate-900">Projects</h2>
520
- <button
521
- type="button"
522
- className="inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-slate-900 rounded-lg hover:bg-slate-800 transition-colors"
523
- onClick={() => {
524
- setCreateName("");
525
- setCreateAgents(new Set());
526
- setCreateWorkspaces(new Set());
527
- setCreateModal(true);
528
- }}
529
- >
530
- <Plus size={13} />
531
- Add project
532
- </button>
491
+ <div className="mb-4">
492
+ <h2 className="text-lg font-semibold text-[var(--foreground)]">Project assignments</h2>
493
+ <p className="mt-1 text-sm text-[var(--app-shell-soft-text)]">Assign agents to existing projects.</p>
533
494
  </div>
534
495
 
535
496
  {nonDefaultProjects.length === 0 ? (
536
- <p className="text-sm text-slate-400">No projects yet. Create one to group agents for a thread.</p>
497
+ <p className="text-sm text-[var(--app-shell-soft-text)]">No projects available for assignment.</p>
537
498
  ) : (
538
- <div className="bg-white rounded-xl border border-slate-200 divide-y divide-slate-100">
499
+ <div className="bg-[var(--card-bg)] rounded-xl border border-[var(--border)] divide-y divide-[var(--border)]">
539
500
  {nonDefaultProjects.map((project) => {
540
501
  const isExpanded = expandedProjects.has(project.id);
541
502
  const threadNames = (project.thread_ids ?? [])
@@ -551,13 +512,13 @@ export default function AgentLibraryPage() {
551
512
  onClick={() => toggleProject(project.id)}
552
513
  >
553
514
  {isExpanded ? (
554
- <ChevronDown size={16} className="text-slate-400 flex-shrink-0" />
515
+ <ChevronDown size={16} className="text-[var(--app-shell-soft-text)] flex-shrink-0" />
555
516
  ) : (
556
- <ChevronRight size={16} className="text-slate-400 flex-shrink-0" />
517
+ <ChevronRight size={16} className="text-[var(--app-shell-soft-text)] flex-shrink-0" />
557
518
  )}
558
- <Users size={16} className="text-slate-400 flex-shrink-0" />
559
- <span className="font-medium text-slate-800 text-sm">{project.name}</span>
560
- <span className="text-xs text-slate-400">
519
+ <Users size={16} className="text-[var(--app-shell-soft-text)] flex-shrink-0" />
520
+ <span className="font-medium text-[var(--foreground)] text-sm">{project.name}</span>
521
+ <span className="text-xs text-[var(--app-shell-soft-text)]">
561
522
  {project.agents.length} {project.agents.length === 1 ? "agent" : "agents"}
562
523
  {threadNames.length > 0 && ` · ${threadNames.length} ${threadNames.length === 1 ? "thread" : "threads"}`}
563
524
  </span>
@@ -565,33 +526,15 @@ export default function AgentLibraryPage() {
565
526
  <div className="flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
566
527
  <button
567
528
  type="button"
568
- className="p-1.5 text-slate-400 hover:text-slate-600 rounded hover:bg-slate-50 transition-colors"
569
- title="Add agent"
529
+ className="inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]"
530
+ title="Add agents"
570
531
  onClick={() => {
571
532
  setAddAgentSelection(new Set());
572
533
  setAddAgentModal({ projectId: project.id });
573
534
  }}
574
535
  >
575
536
  <Plus size={14} />
576
- </button>
577
- <button
578
- type="button"
579
- className="p-1.5 text-slate-400 hover:text-slate-600 rounded hover:bg-slate-50 transition-colors"
580
- title="Rename project"
581
- onClick={() => {
582
- setRenameValue(project.name);
583
- setRenameModal({ projectId: project.id, currentName: project.name });
584
- }}
585
- >
586
- <Pencil size={13} />
587
- </button>
588
- <button
589
- type="button"
590
- className="p-1.5 text-slate-400 hover:text-red-500 rounded hover:bg-slate-50 transition-colors"
591
- title="Delete project"
592
- onClick={() => void deleteProject(project.id)}
593
- >
594
- <Trash2 size={13} />
537
+ Add agents
595
538
  </button>
596
539
  </div>
597
540
  </div>
@@ -599,7 +542,7 @@ export default function AgentLibraryPage() {
599
542
  {isExpanded && (
600
543
  <div className="px-5 pb-4 pt-1 ml-9 flex flex-col gap-1">
601
544
  {project.agents.length === 0 && (
602
- <p className="text-xs text-slate-400 py-1">No agents in this project.</p>
545
+ <p className="text-xs text-[var(--app-shell-soft-text)] py-1">No agents in this project.</p>
603
546
  )}
604
547
  {project.agents.map((ta) => {
605
548
  const agent = participants.find((p) => p.id === ta.agent_id);
@@ -613,13 +556,13 @@ export default function AgentLibraryPage() {
613
556
  alt=""
614
557
  className="w-6 h-6 rounded-full flex-shrink-0"
615
558
  />
616
- <span className="text-sm text-slate-700 truncate flex-1">
559
+ <span className="text-sm text-[var(--secondary-foreground)] truncate flex-1">
617
560
  {agent?.name ?? ta.agent_id}
618
561
  </span>
619
- <span className="text-[10px] text-slate-400">{agent?.model}</span>
562
+ <span className="text-[10px] text-[var(--app-shell-soft-text)]">{agent?.model}</span>
620
563
  <button
621
564
  type="button"
622
- className="opacity-0 group-hover/agent:opacity-100 text-slate-400 hover:text-red-500 transition-opacity"
565
+ className="opacity-0 group-hover/agent:opacity-100 text-[var(--app-shell-soft-text)] hover:text-red-500 transition-opacity"
623
566
  onClick={() => void removeAgentFromProject(project.id, ta.agent_id)}
624
567
  title="Remove from project"
625
568
  >
@@ -629,9 +572,21 @@ export default function AgentLibraryPage() {
629
572
  );
630
573
  })}
631
574
 
575
+ <button
576
+ type="button"
577
+ className="mt-2 inline-flex items-center gap-1.5 self-start rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]"
578
+ onClick={() => {
579
+ setAddAgentSelection(new Set());
580
+ setAddAgentModal({ projectId: project.id });
581
+ }}
582
+ >
583
+ <Plus size={12} />
584
+ Add agents
585
+ </button>
586
+
632
587
  {threadNames.length > 0 && (
633
- <div className="mt-2 pt-2 border-t border-slate-100">
634
- <p className="text-[10px] font-medium text-slate-400 uppercase tracking-wide mb-1">Threads</p>
588
+ <div className="mt-2 pt-2 border-t border-[var(--border)]">
589
+ <p className="text-[10px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-1">Threads</p>
635
590
  <div className="flex flex-wrap gap-1.5">
636
591
  {threadNames.map((name, i) => (
637
592
  <span
@@ -662,12 +617,12 @@ export default function AgentLibraryPage() {
662
617
  onClick={() => setOutboundModal(false)}
663
618
  >
664
619
  <div
665
- className="bg-white rounded-xl shadow-xl border border-slate-200 w-[440px] max-h-[80vh] flex flex-col"
620
+ className="bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col"
666
621
  onClick={(e) => e.stopPropagation()}
667
622
  >
668
- <div className="flex items-center justify-between px-5 py-3.5 border-b border-slate-100">
669
- <h3 className="text-sm font-medium text-slate-900">Share Agents</h3>
670
- <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setOutboundModal(false)}>
623
+ <div className="flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]">
624
+ <h3 className="text-sm font-medium text-[var(--foreground)]">Share Agents</h3>
625
+ <button type="button" className="text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]" onClick={() => setOutboundModal(false)}>
671
626
  <X size={16} />
672
627
  </button>
673
628
  </div>
@@ -675,20 +630,20 @@ export default function AgentLibraryPage() {
675
630
  {shareCode ? (
676
631
  <div className="px-5 py-6 flex flex-col items-center gap-4">
677
632
  <div className="text-center">
678
- <p className="text-sm text-slate-600 mb-3">Share this code with the recipient:</p>
633
+ <p className="text-sm text-[var(--muted-foreground)] mb-3">Share this code with the recipient:</p>
679
634
  <div className="flex items-center justify-center gap-3">
680
- <span className="text-3xl font-mono font-bold tracking-[0.3em] text-slate-900">{shareCode}</span>
681
- <button type="button" className="p-2 text-slate-400 hover:text-slate-600 transition-colors" onClick={copyCode}>
635
+ <span className="text-3xl font-mono font-bold tracking-[0.3em] text-[var(--foreground)]">{shareCode}</span>
636
+ <button type="button" className="p-2 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] transition-colors" onClick={copyCode}>
682
637
  {codeCopied ? <Check size={18} className="text-green-500" /> : <Copy size={18} />}
683
638
  </button>
684
639
  </div>
685
640
  </div>
686
641
  {shareExpiresAt && (
687
- <p className="text-[11px] text-slate-400">Expires {new Date(shareExpiresAt).toLocaleTimeString()}</p>
642
+ <p className="text-[11px] text-[var(--app-shell-soft-text)]">Expires {new Date(shareExpiresAt).toLocaleTimeString()}</p>
688
643
  )}
689
644
  <button
690
645
  type="button"
691
- className="px-4 py-2 text-xs font-medium text-slate-600 bg-slate-100 rounded-lg hover:bg-slate-200 transition-colors"
646
+ className="px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors"
692
647
  onClick={() => setOutboundModal(false)}
693
648
  >
694
649
  Done
@@ -699,8 +654,8 @@ export default function AgentLibraryPage() {
699
654
  <div className="overflow-y-auto flex-1">
700
655
  {/* Projects as quick-select presets */}
701
656
  {nonDefaultProjects.length > 0 && (
702
- <div className="border-b border-slate-100 px-5 py-3">
703
- <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide mb-2">Select by project</p>
657
+ <div className="border-b border-[var(--border)] px-5 py-3">
658
+ <p className="text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-2">Select by project</p>
704
659
  <div className="flex flex-wrap gap-1.5">
705
660
  {nonDefaultProjects.map((t) => {
706
661
  const projectAgentIds = t.agents.map((a) => a.agent_id);
@@ -712,10 +667,10 @@ export default function AgentLibraryPage() {
712
667
  type="button"
713
668
  className={`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors ${
714
669
  allSelected
715
- ? "bg-slate-900 text-white"
670
+ ? "bg-[var(--foreground)] text-white"
716
671
  : someSelected
717
- ? "bg-slate-300 text-slate-700"
718
- : "bg-slate-100 text-slate-600 hover:bg-slate-200"
672
+ ? "bg-[var(--app-shell-soft-text)] text-[var(--secondary-foreground)]"
673
+ : "bg-[var(--secondary)] text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"
719
674
  }`}
720
675
  onClick={() => {
721
676
  setOutboundAgents((prev) => {
@@ -732,7 +687,7 @@ export default function AgentLibraryPage() {
732
687
  >
733
688
  <Users size={10} />
734
689
  {t.name}
735
- <span className={`text-[10px] ${allSelected ? "text-slate-300" : "text-slate-400"}`}>
690
+ <span className={`text-[10px] ${allSelected ? "text-[var(--app-shell-soft-text)]" : "text-[var(--app-shell-soft-text)]"}`}>
736
691
  {t.agents.length}
737
692
  </span>
738
693
  </button>
@@ -743,12 +698,12 @@ export default function AgentLibraryPage() {
743
698
  )}
744
699
 
745
700
  {/* Agents selection */}
746
- <div className="border-b border-slate-100">
701
+ <div className="border-b border-[var(--border)]">
747
702
  <div className="px-5 pt-3 pb-1 flex items-center justify-between">
748
- <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide">Agents</p>
703
+ <p className="text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide">Agents</p>
749
704
  <button
750
705
  type="button"
751
- className="text-[11px] text-slate-400 hover:text-slate-600"
706
+ className="text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]"
752
707
  onClick={() => {
753
708
  if (outboundAgents.size === participants.length) setOutboundAgents(new Set());
754
709
  else setOutboundAgents(new Set(participants.map((p) => p.id)));
@@ -763,7 +718,7 @@ export default function AgentLibraryPage() {
763
718
  <button
764
719
  key={p.id}
765
720
  type="button"
766
- className={`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${selected ? "bg-slate-50 text-slate-900" : "text-slate-600 hover:bg-slate-50"}`}
721
+ className={`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${selected ? "bg-[var(--secondary)] text-[var(--foreground)]" : "text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`}
767
722
  onClick={() => {
768
723
  setOutboundAgents((prev) => {
769
724
  const next = new Set(prev);
@@ -776,7 +731,7 @@ export default function AgentLibraryPage() {
776
731
  <Checkbox checked={selected} />
777
732
  <img src={agentAvatarUrl(p.id, 24, p.color)} alt="" className="w-6 h-6 rounded-full flex-shrink-0" />
778
733
  <span className="truncate text-xs font-medium flex-1">{p.name}</span>
779
- <span className="text-[10px] text-slate-400">{p.provider}</span>
734
+ <span className="text-[10px] text-[var(--app-shell-soft-text)]">{p.provider}</span>
780
735
  </button>
781
736
  );
782
737
  })}
@@ -786,7 +741,7 @@ export default function AgentLibraryPage() {
786
741
  <div className="px-5 py-3">
787
742
  <button
788
743
  type="button"
789
- className={`flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors ${outboundIncludeSelf ? "bg-slate-50 text-slate-900" : "text-slate-600 hover:bg-slate-50"}`}
744
+ className={`flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors ${outboundIncludeSelf ? "bg-[var(--secondary)] text-[var(--foreground)]" : "text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`}
790
745
  onClick={() => setOutboundIncludeSelf(!outboundIncludeSelf)}
791
746
  >
792
747
  <Checkbox checked={outboundIncludeSelf} />
@@ -795,15 +750,15 @@ export default function AgentLibraryPage() {
795
750
  </div>
796
751
  </div>
797
752
 
798
- <div className="px-5 py-3 border-t border-slate-100 flex items-center justify-between">
799
- <span className="text-[11px] text-slate-400">
753
+ <div className="px-5 py-3 border-t border-[var(--border)] flex items-center justify-between">
754
+ <span className="text-[11px] text-[var(--app-shell-soft-text)]">
800
755
  {outboundAgents.size} {outboundAgents.size === 1 ? "agent" : "agents"}
801
756
  </span>
802
757
  <div className="flex gap-2">
803
758
  <button
804
759
  type="button"
805
760
  disabled={outboundAgents.size === 0 || outboundBusy}
806
- className="inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-slate-600 bg-white border border-slate-200 rounded-lg hover:bg-slate-50 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
761
+ className="inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--card-bg)] border border-[var(--border)] rounded-lg hover:bg-[var(--item-hover-bg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
807
762
  onClick={() => void handleExportToFile()}
808
763
  >
809
764
  <Download size={12} />
@@ -820,7 +775,7 @@ export default function AgentLibraryPage() {
820
775
  </button>
821
776
  <button
822
777
  type="button"
823
- className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors"
778
+ className="px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors"
824
779
  onClick={() => setOutboundModal(false)}
825
780
  >
826
781
  Cancel
@@ -833,115 +788,6 @@ export default function AgentLibraryPage() {
833
788
  </div>
834
789
  )}
835
790
 
836
- {/* ── Create Project Modal ──────────────────────────────────────────── */}
837
- {createModal && (
838
- <div
839
- className="fixed inset-0 z-50 flex items-center justify-center bg-black/30"
840
- onClick={() => setCreateModal(false)}
841
- >
842
- <div
843
- className="bg-white rounded-xl shadow-xl border border-slate-200 w-[420px] max-h-[80vh] flex flex-col"
844
- onClick={(e) => e.stopPropagation()}
845
- >
846
- <div className="flex items-center justify-between px-5 py-3.5 border-b border-slate-100">
847
- <h3 className="text-sm font-medium text-slate-900">Create project</h3>
848
- <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setCreateModal(false)}>
849
- <X size={16} />
850
- </button>
851
- </div>
852
-
853
- <div className="overflow-y-auto flex-1">
854
- <div className="px-5 py-3 border-b border-slate-100">
855
- <label className="text-[11px] font-medium text-slate-400 uppercase tracking-wide block mb-1.5">Name</label>
856
- <input
857
- autoFocus
858
- type="text"
859
- value={createName}
860
- onChange={(e) => setCreateName(e.target.value)}
861
- placeholder="e.g. Frontend Crew"
862
- className="w-full px-3 py-2 text-sm border border-slate-200 rounded-lg outline-none focus:border-slate-400 focus:ring-1 focus:ring-slate-200 transition-all"
863
- />
864
- </div>
865
-
866
- <div className="px-5 py-3 border-b border-slate-100">
867
- <label className="text-[11px] font-medium text-slate-400 uppercase tracking-wide block mb-1.5">Threads</label>
868
- {threads.length === 0 ? (
869
- <p className="text-xs text-slate-400">No threads available.</p>
870
- ) : (
871
- <div className="flex flex-col gap-0.5">
872
- {threads.map((ws) => {
873
- const selected = createWorkspaces.has(ws.id);
874
- const title = ws.title?.trim() || "Untitled";
875
- return (
876
- <button
877
- key={ws.id}
878
- type="button"
879
- className={`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-colors ${selected ? "bg-indigo-50 text-indigo-700" : "text-slate-600 hover:bg-slate-50"}`}
880
- onClick={() => {
881
- setCreateWorkspaces((prev) => {
882
- const next = new Set(prev);
883
- if (next.has(ws.id)) next.delete(ws.id);
884
- else next.add(ws.id);
885
- return next;
886
- });
887
- }}
888
- >
889
- <div className={`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${selected ? "bg-indigo-600 border-indigo-600" : "border-slate-300"}`}>
890
- {selected && (
891
- <svg width="10" height="10" viewBox="0 0 10 10" fill="none"><path d="M2 5l2 2 4-4" stroke="white" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"/></svg>
892
- )}
893
- </div>
894
- <Hash size={13} className="flex-shrink-0 text-slate-400" />
895
- <span className="truncate text-xs font-medium">{title}</span>
896
- </button>
897
- );
898
- })}
899
- </div>
900
- )}
901
- </div>
902
-
903
- <div className="py-1">
904
- <p className="px-5 py-1.5 text-[11px] font-medium text-slate-400 uppercase tracking-wide">Agents</p>
905
- {participants.map((p) => {
906
- const selected = createAgents.has(p.id);
907
- return (
908
- <button
909
- key={p.id}
910
- type="button"
911
- className={`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${selected ? "bg-slate-100 text-slate-900" : "text-slate-700 hover:bg-slate-50"}`}
912
- onClick={() => {
913
- setCreateAgents((prev) => {
914
- const next = new Set(prev);
915
- if (next.has(p.id)) next.delete(p.id);
916
- else next.add(p.id);
917
- return next;
918
- });
919
- }}
920
- >
921
- <Checkbox checked={selected} />
922
- <img src={agentAvatarUrl(p.id, 24, p.color)} alt="" className="w-6 h-6 rounded-full flex-shrink-0" />
923
- <span className="truncate text-xs font-medium">{p.name}</span>
924
- </button>
925
- );
926
- })}
927
- </div>
928
- </div>
929
-
930
- <div className="px-5 py-3 border-t border-slate-100 flex justify-end gap-2">
931
- <button type="button" className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors" onClick={() => setCreateModal(false)}>Cancel</button>
932
- <button
933
- type="button"
934
- disabled={!createName.trim()}
935
- className="px-3 py-1.5 text-xs font-medium text-white bg-slate-900 rounded-lg hover:bg-slate-800 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
936
- onClick={() => void handleCreateSubmit()}
937
- >
938
- Create
939
- </button>
940
- </div>
941
- </div>
942
- </div>
943
- )}
944
-
945
791
  {/* ── Add Agent to Project Modal ────────────────────────────────────── */}
946
792
  {addAgentModal && !creatingNewAgent && (
947
793
  <div
@@ -949,24 +795,24 @@ export default function AgentLibraryPage() {
949
795
  onClick={() => setAddAgentModal(null)}
950
796
  >
951
797
  <div
952
- className="bg-white rounded-xl shadow-xl border border-slate-200 w-80 max-h-[70vh] flex flex-col"
798
+ className="bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col"
953
799
  onClick={(e) => e.stopPropagation()}
954
800
  >
955
- <div className="flex items-center justify-between px-4 py-3 border-b border-slate-100">
956
- <h3 className="text-sm font-medium text-slate-900">Add to {addAgentModalProject?.name ?? "project"}</h3>
957
- <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setAddAgentModal(null)}><X size={16} /></button>
801
+ <div className="flex items-center justify-between px-4 py-3 border-b border-[var(--border)]">
802
+ <h3 className="text-sm font-medium text-[var(--foreground)]">Add to {addAgentModalProject?.name ?? "project"}</h3>
803
+ <button type="button" className="text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]" onClick={() => setAddAgentModal(null)}><X size={16} /></button>
958
804
  </div>
959
805
  <div className="overflow-y-auto py-1 flex-1">
960
806
  <button
961
807
  type="button"
962
- className="w-full flex items-center gap-3 px-4 py-2.5 text-sm text-slate-700 hover:bg-slate-50 transition-colors border-b border-slate-100"
808
+ className="w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)] transition-colors border-b border-[var(--border)]"
963
809
  onClick={() => setCreatingNewAgent(true)}
964
810
  >
965
- <Plus size={14} className="text-slate-400" />
811
+ <Plus size={14} className="text-[var(--app-shell-soft-text)]" />
966
812
  <span className="text-xs font-medium">Create new agent</span>
967
813
  </button>
968
814
  {addAgentModalAvailable.length === 0 ? (
969
- <p className="px-4 py-6 text-xs text-slate-400 text-center">All agents are already in this project</p>
815
+ <p className="px-4 py-6 text-xs text-[var(--app-shell-soft-text)] text-center">All agents are already in this project</p>
970
816
  ) : (
971
817
  addAgentModalAvailable.map((p) => {
972
818
  const selected = addAgentSelection.has(p.id);
@@ -974,7 +820,7 @@ export default function AgentLibraryPage() {
974
820
  <button
975
821
  key={p.id}
976
822
  type="button"
977
- className={`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${selected ? "bg-slate-100 text-slate-900" : "text-slate-700 hover:bg-slate-50"}`}
823
+ className={`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${selected ? "bg-[var(--secondary)] text-[var(--foreground)]" : "text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)]"}`}
978
824
  onClick={() => {
979
825
  setAddAgentSelection((prev) => {
980
826
  const next = new Set(prev);
@@ -995,12 +841,12 @@ export default function AgentLibraryPage() {
995
841
  )}
996
842
  </div>
997
843
  {addAgentModalAvailable.length > 0 && (
998
- <div className="px-4 py-3 border-t border-slate-100 flex justify-end gap-2">
999
- <button type="button" className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors" onClick={() => setAddAgentModal(null)}>Cancel</button>
844
+ <div className="px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2">
845
+ <button type="button" className="px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors" onClick={() => setAddAgentModal(null)}>Cancel</button>
1000
846
  <button
1001
847
  type="button"
1002
848
  disabled={addAgentSelection.size === 0}
1003
- className="px-3 py-1.5 text-xs font-medium text-white bg-slate-900 rounded-lg hover:bg-slate-800 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
849
+ className="px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
1004
850
  onClick={() => {
1005
851
  for (const agentId of addAgentSelection) {
1006
852
  void addAgentToProject(addAgentModal.projectId, agentId);
@@ -1105,47 +951,6 @@ export default function AgentLibraryPage() {
1105
951
  />
1106
952
  )}
1107
953
 
1108
- {/* ── Rename Project Modal ──────────────────────────────────────────── */}
1109
- {renameModal && (
1110
- <div
1111
- className="fixed inset-0 z-50 flex items-center justify-center bg-black/30"
1112
- onClick={() => setRenameModal(null)}
1113
- >
1114
- <div
1115
- className="bg-white rounded-xl shadow-xl border border-slate-200 w-80 flex flex-col"
1116
- onClick={(e) => e.stopPropagation()}
1117
- >
1118
- <div className="flex items-center justify-between px-4 py-3 border-b border-slate-100">
1119
- <h3 className="text-sm font-medium text-slate-900">Rename project</h3>
1120
- <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setRenameModal(null)}><X size={16} /></button>
1121
- </div>
1122
- <form
1123
- className="px-4 py-4 flex flex-col gap-3"
1124
- onSubmit={(e) => { e.preventDefault(); void handleRenameSubmit(); }}
1125
- >
1126
- <input
1127
- autoFocus
1128
- type="text"
1129
- value={renameValue}
1130
- onChange={(e) => setRenameValue(e.target.value)}
1131
- placeholder="Project name"
1132
- className="w-full px-3 py-2 text-sm border border-slate-200 rounded-lg outline-none focus:border-slate-400 focus:ring-1 focus:ring-slate-200 transition-all"
1133
- />
1134
- <div className="flex justify-end gap-2">
1135
- <button type="button" className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors" onClick={() => setRenameModal(null)}>Cancel</button>
1136
- <button
1137
- type="submit"
1138
- disabled={!renameValue.trim() || renameValue.trim() === renameModal.currentName}
1139
- className="px-3 py-1.5 text-xs font-medium text-white bg-slate-900 rounded-lg hover:bg-slate-800 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
1140
- >
1141
- Save
1142
- </button>
1143
- </div>
1144
- </form>
1145
- </div>
1146
- </div>
1147
- )}
1148
-
1149
954
  {/* ── Inbound Modal (Import: Pull from Hub / Upload File) ────────── */}
1150
955
  {inboundModal && (
1151
956
  <div
@@ -1153,12 +958,12 @@ export default function AgentLibraryPage() {
1153
958
  onClick={() => setInboundModal(false)}
1154
959
  >
1155
960
  <div
1156
- className="bg-white rounded-xl shadow-xl border border-slate-200 w-[440px] max-h-[80vh] flex flex-col"
961
+ className="bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col"
1157
962
  onClick={(e) => e.stopPropagation()}
1158
963
  >
1159
- <div className="flex items-center justify-between px-5 py-3.5 border-b border-slate-100">
1160
- <h3 className="text-sm font-medium text-slate-900">Import Agents</h3>
1161
- <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setInboundModal(false)}>
964
+ <div className="flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]">
965
+ <h3 className="text-sm font-medium text-[var(--foreground)]">Import Agents</h3>
966
+ <button type="button" className="text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]" onClick={() => setInboundModal(false)}>
1162
967
  <X size={16} />
1163
968
  </button>
1164
969
  </div>
@@ -1168,31 +973,31 @@ export default function AgentLibraryPage() {
1168
973
  <div className="px-5 py-6 flex flex-col gap-3">
1169
974
  <button
1170
975
  type="button"
1171
- className="flex items-center gap-3 px-4 py-3.5 rounded-lg border border-slate-200 hover:border-violet-300 hover:bg-violet-50 transition-colors text-left"
976
+ className="flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-violet-300 hover:bg-violet-50 transition-colors text-left"
1172
977
  onClick={() => setInboundMode("pull")}
1173
978
  >
1174
979
  <div className="w-9 h-9 rounded-lg bg-violet-100 flex items-center justify-center flex-shrink-0">
1175
980
  <Download size={16} className="text-violet-600" />
1176
981
  </div>
1177
982
  <div>
1178
- <p className="text-sm font-medium text-slate-900">Pull from Hub</p>
1179
- <p className="text-[11px] text-slate-400">Enter a share code to import agents</p>
983
+ <p className="text-sm font-medium text-[var(--foreground)]">Pull from Hub</p>
984
+ <p className="text-[11px] text-[var(--app-shell-soft-text)]">Enter a share code to import agents</p>
1180
985
  </div>
1181
986
  </button>
1182
987
  <button
1183
988
  type="button"
1184
- className="flex items-center gap-3 px-4 py-3.5 rounded-lg border border-slate-200 hover:border-slate-300 hover:bg-slate-50 transition-colors text-left"
989
+ className="flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-[var(--border)] hover:bg-[var(--item-hover-bg)] transition-colors text-left"
1185
990
  onClick={() => {
1186
991
  setInboundMode("file");
1187
992
  setTimeout(() => fileInputRef.current?.click(), 100);
1188
993
  }}
1189
994
  >
1190
- <div className="w-9 h-9 rounded-lg bg-slate-100 flex items-center justify-center flex-shrink-0">
1191
- <Upload size={16} className="text-slate-600" />
995
+ <div className="w-9 h-9 rounded-lg bg-[var(--secondary)] flex items-center justify-center flex-shrink-0">
996
+ <Upload size={16} className="text-[var(--muted-foreground)]" />
1192
997
  </div>
1193
998
  <div>
1194
- <p className="text-sm font-medium text-slate-900">Upload File</p>
1195
- <p className="text-[11px] text-slate-400">Import from a .agent.json bundle</p>
999
+ <p className="text-sm font-medium text-[var(--foreground)]">Upload File</p>
1000
+ <p className="text-[11px] text-[var(--app-shell-soft-text)]">Import from a .agent.json bundle</p>
1196
1001
  </div>
1197
1002
  </button>
1198
1003
  </div>
@@ -1201,7 +1006,7 @@ export default function AgentLibraryPage() {
1201
1006
  {inboundMode === "pull" && !inboundBundle && (
1202
1007
  /* ── Enter code ── */
1203
1008
  <div className="px-5 py-5 flex flex-col gap-3">
1204
- <label className="text-sm text-slate-600">Enter share code:</label>
1009
+ <label className="text-sm text-[var(--muted-foreground)]">Enter share code:</label>
1205
1010
  <input
1206
1011
  autoFocus
1207
1012
  type="text"
@@ -1209,14 +1014,14 @@ export default function AgentLibraryPage() {
1209
1014
  onChange={(e) => setPullCode(e.target.value.toUpperCase())}
1210
1015
  placeholder="e.g. A3X9K2"
1211
1016
  maxLength={6}
1212
- className="w-full px-3 py-2.5 text-center text-2xl font-mono font-bold tracking-[0.3em] border border-slate-200 rounded-lg outline-none focus:border-violet-400 focus:ring-1 focus:ring-violet-200 transition-all"
1017
+ className="w-full px-3 py-2.5 text-center text-2xl font-mono font-bold tracking-[0.3em] border border-[var(--border)] rounded-lg outline-none focus:border-violet-400 focus:ring-1 focus:ring-violet-200 transition-all bg-[var(--card-bg)] text-[var(--foreground)]"
1213
1018
  onKeyDown={(e) => { if (e.key === "Enter") void handlePullFetch(); }}
1214
1019
  />
1215
1020
  {inboundError && (
1216
1021
  <p className="text-xs text-red-500">{inboundError}</p>
1217
1022
  )}
1218
1023
  <div className="flex justify-end gap-2 mt-1">
1219
- <button type="button" className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors" onClick={() => { setInboundMode("choice"); setInboundError(null); }}>
1024
+ <button type="button" className="px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors" onClick={() => { setInboundMode("choice"); setInboundError(null); }}>
1220
1025
  Back
1221
1026
  </button>
1222
1027
  <button
@@ -1234,10 +1039,10 @@ export default function AgentLibraryPage() {
1234
1039
  {inboundMode === "file" && !inboundBundle && (
1235
1040
  /* ── Waiting for file ── */
1236
1041
  <div className="px-5 py-6 flex flex-col items-center gap-3">
1237
- <p className="text-sm text-slate-500">Select a .agent.json file to import</p>
1042
+ <p className="text-sm text-[var(--muted-foreground)]">Select a .agent.json file to import</p>
1238
1043
  <button
1239
1044
  type="button"
1240
- className="inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium text-slate-600 bg-slate-100 rounded-lg hover:bg-slate-200 transition-colors"
1045
+ className="inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors"
1241
1046
  onClick={() => fileInputRef.current?.click()}
1242
1047
  >
1243
1048
  <Upload size={13} />
@@ -1246,7 +1051,7 @@ export default function AgentLibraryPage() {
1246
1051
  {inboundError && (
1247
1052
  <p className="text-xs text-red-500">{inboundError}</p>
1248
1053
  )}
1249
- <button type="button" className="text-xs text-slate-400 hover:text-slate-600 mt-1" onClick={() => { setInboundMode("choice"); setInboundError(null); }}>
1054
+ <button type="button" className="text-xs text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] mt-1" onClick={() => { setInboundMode("choice"); setInboundError(null); }}>
1250
1055
  Back
1251
1056
  </button>
1252
1057
  </div>
@@ -1258,22 +1063,22 @@ export default function AgentLibraryPage() {
1258
1063
  <div className="overflow-y-auto flex-1">
1259
1064
  {/* Bundle info */}
1260
1065
  {inboundBundle.exportedAt && (
1261
- <div className="px-5 py-3 border-b border-slate-100 bg-slate-50">
1262
- <p className="text-[11px] text-slate-400">
1066
+ <div className="px-5 py-3 border-b border-[var(--border)] bg-[var(--secondary)]">
1067
+ <p className="text-[11px] text-[var(--app-shell-soft-text)]">
1263
1068
  Exported {new Date(inboundBundle.exportedAt).toLocaleDateString()} · {inboundBundle.agents.length} agents{getBundleProjects(inboundBundle).length > 0 ? `, ${getBundleProjects(inboundBundle).length} projects` : ""}
1264
1069
  </p>
1265
1070
  </div>
1266
1071
  )}
1267
1072
 
1268
1073
  {/* Agents */}
1269
- <div className="border-b border-slate-100">
1074
+ <div className="border-b border-[var(--border)]">
1270
1075
  <div className="px-5 pt-3 pb-1 flex items-center justify-between">
1271
- <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide">
1076
+ <p className="text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide">
1272
1077
  {inboundBundle.agents.length} agent{inboundBundle.agents.length === 1 ? "" : "s"} found
1273
1078
  </p>
1274
1079
  <button
1275
1080
  type="button"
1276
- className="text-[11px] text-slate-400 hover:text-slate-600"
1081
+ className="text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]"
1277
1082
  onClick={() => {
1278
1083
  if (inboundAgents.size === inboundBundle.agents.length) setInboundAgents(new Set());
1279
1084
  else setInboundAgents(new Set(inboundBundle.agents.map((a) => a.id)));
@@ -1289,7 +1094,7 @@ export default function AgentLibraryPage() {
1289
1094
  <button
1290
1095
  key={a.id}
1291
1096
  type="button"
1292
- className={`w-full flex items-center gap-3 px-5 py-2.5 text-sm transition-colors ${selected ? "bg-slate-50 text-slate-900" : "text-slate-600 hover:bg-slate-50"}`}
1097
+ className={`w-full flex items-center gap-3 px-5 py-2.5 text-sm transition-colors ${selected ? "bg-[var(--secondary)] text-[var(--foreground)]" : "text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`}
1293
1098
  onClick={() => {
1294
1099
  setInboundAgents((prev) => {
1295
1100
  const next = new Set(prev);
@@ -1303,7 +1108,7 @@ export default function AgentLibraryPage() {
1303
1108
  <img src={agentAvatarUrl(a.id, 24, a.color)} alt="" className="w-6 h-6 rounded-full flex-shrink-0" />
1304
1109
  <div className="min-w-0 flex-1 text-left">
1305
1110
  <div className="truncate text-xs font-medium">{a.name}</div>
1306
- <div className="truncate text-[10px] text-slate-400">{a.provider}{a.model ? ` · ${a.model}` : ""}</div>
1111
+ <div className="truncate text-[10px] text-[var(--app-shell-soft-text)]">{a.provider}{a.model ? ` · ${a.model}` : ""}</div>
1307
1112
  </div>
1308
1113
  {existing && (
1309
1114
  <span className="text-[10px] px-1.5 py-0.5 rounded bg-amber-50 text-amber-600 flex-shrink-0">
@@ -1316,7 +1121,7 @@ export default function AgentLibraryPage() {
1316
1121
  </span>
1317
1122
  )}
1318
1123
  {a.self && (
1319
- <span className="text-[10px] text-slate-400 flex-shrink-0">+ self.md</span>
1124
+ <span className="text-[10px] text-[var(--muted-foreground)] flex-shrink-0">+ self.md</span>
1320
1125
  )}
1321
1126
  </button>
1322
1127
  );
@@ -1327,7 +1132,7 @@ export default function AgentLibraryPage() {
1327
1132
  {getBundleProjects(inboundBundle).length > 0 && (
1328
1133
  <div>
1329
1134
  <div className="px-5 pt-3 pb-1">
1330
- <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide">Projects</p>
1135
+ <p className="text-[11px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide">Projects</p>
1331
1136
  </div>
1332
1137
  {getBundleProjects(inboundBundle).map((project) => {
1333
1138
  const selected = inboundProjects.has(project.name);
@@ -1335,7 +1140,7 @@ export default function AgentLibraryPage() {
1335
1140
  <button
1336
1141
  key={project.name}
1337
1142
  type="button"
1338
- className={`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${selected ? "bg-slate-50 text-slate-900" : "text-slate-600 hover:bg-slate-50"}`}
1143
+ className={`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${selected ? "bg-[var(--app-shell-subtle)] text-[var(--foreground)]" : "text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`}
1339
1144
  onClick={() => {
1340
1145
  setInboundProjects((prev) => {
1341
1146
  const next = new Set(prev);
@@ -1346,9 +1151,9 @@ export default function AgentLibraryPage() {
1346
1151
  }}
1347
1152
  >
1348
1153
  <Checkbox checked={selected} />
1349
- <Users size={14} className="text-slate-400 flex-shrink-0" />
1154
+ <Users size={14} className="text-[var(--muted-foreground)] flex-shrink-0" />
1350
1155
  <span className="truncate text-xs font-medium flex-1">{project.name}</span>
1351
- <span className="text-[10px] text-slate-400">{project.agentIds.length} agents</span>
1156
+ <span className="text-[10px] text-[var(--muted-foreground)]">{project.agentIds.length} agents</span>
1352
1157
  </button>
1353
1158
  );
1354
1159
  })}
@@ -1362,14 +1167,14 @@ export default function AgentLibraryPage() {
1362
1167
  </div>
1363
1168
  )}
1364
1169
 
1365
- <div className="px-5 py-3 border-t border-slate-100 flex items-center justify-between">
1366
- <span className="text-[11px] text-slate-400">
1170
+ <div className="px-5 py-3 border-t border-[var(--border)] flex items-center justify-between">
1171
+ <span className="text-[11px] text-[var(--muted-foreground)]">
1367
1172
  {inboundAgents.size} {inboundAgents.size === 1 ? "agent" : "agents"}{inboundProjects.size > 0 ? `, ${inboundProjects.size} ${inboundProjects.size === 1 ? "project" : "projects"}` : ""}
1368
1173
  </span>
1369
1174
  <div className="flex gap-2">
1370
1175
  <button
1371
1176
  type="button"
1372
- className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors"
1177
+ className="px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors"
1373
1178
  onClick={() => { setInboundBundle(null); setInboundAgents(new Set()); setInboundProjects(new Set()); }}
1374
1179
  >
1375
1180
  Back