@mndrk/agx 2.0.13 → 2.0.15

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 (495) hide show
  1. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +8 -0
  3. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/prerender-manifest.json +27 -3
  5. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +58 -0
  6. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.html +2 -2
  9. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.rsc +1 -1
  10. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js.nft.json +1 -1
  16. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.html +2 -2
  18. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.rsc +2 -2
  19. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  20. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page/app-paths-manifest.json +3 -0
  26. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page/build-manifest.json +18 -0
  27. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page/next-font-manifest.json +11 -0
  28. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page/react-loadable-manifest.json +1 -0
  29. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page/server-reference-manifest.json +4 -0
  30. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page.js +16 -0
  31. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page.js.map +5 -0
  32. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page.js.nft.json +1 -0
  33. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/[id]/page_client-reference-manifest.js +2 -0
  34. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page/app-paths-manifest.json +3 -0
  35. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page/build-manifest.json +18 -0
  36. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page/next-font-manifest.json +11 -0
  37. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page/react-loadable-manifest.json +1 -0
  38. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page/server-reference-manifest.json +4 -0
  39. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page.js +16 -0
  40. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page.js.map +5 -0
  41. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page.js.nft.json +1 -0
  42. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents/page_client-reference-manifest.js +2 -0
  43. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.html +9 -0
  44. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.meta +15 -0
  45. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.rsc +23 -0
  46. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.segments/_full.segment.rsc +23 -0
  47. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.segments/_head.segment.rsc +5 -0
  48. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.segments/_index.segment.rsc +9 -0
  49. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.segments/_tree.segment.rsc +5 -0
  50. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +9 -0
  51. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/agents.segments/agents.segment.rsc +4 -0
  52. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/messages/route/app-paths-manifest.json +3 -0
  53. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/messages/route/build-manifest.json +11 -0
  54. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/messages/route/server-reference-manifest.json +4 -0
  55. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/messages/route.js +6 -0
  56. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/messages/route.js.map +5 -0
  57. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/messages/route.js.nft.json +1 -0
  58. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/messages/route_client-reference-manifest.js +2 -0
  59. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/profile/route/app-paths-manifest.json +3 -0
  60. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/profile/route/build-manifest.json +11 -0
  61. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/profile/route/server-reference-manifest.json +4 -0
  62. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/profile/route.js +6 -0
  63. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/profile/route.js.map +5 -0
  64. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -0
  65. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/[id]/profile/route_client-reference-manifest.js +2 -0
  66. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/export/route/app-paths-manifest.json +3 -0
  67. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/export/route/build-manifest.json +11 -0
  68. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/export/route/server-reference-manifest.json +4 -0
  69. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/export/route.js +6 -0
  70. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/export/route.js.map +5 -0
  71. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/export/route.js.nft.json +1 -0
  72. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/agents/export/route_client-reference-manifest.js +2 -0
  73. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/attachments/[id]/route.js +1 -1
  74. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/attachments/[id]/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/chat/route.js +2 -1
  76. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/chat/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/file-search/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route.js +1 -1
  79. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/history/route.js +3 -3
  81. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/history/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route.js +1 -1
  83. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/route.js +1 -1
  85. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route.js +1 -1
  87. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/memories/route.js +1 -1
  89. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/memories/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +1 -1
  91. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +1 -1
  93. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  95. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  97. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/participants/route.js +2 -1
  99. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/participants/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  101. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  103. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route.js +1 -1
  105. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route.js +1 -1
  107. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/providers/route.js +1 -1
  109. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/providers/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route.js +1 -1
  111. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route.js +1 -1
  113. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/reactions/route.js +1 -1
  115. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/reactions/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/search/route.js +1 -1
  117. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/search/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/status/route.js +1 -1
  119. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/status/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/summarize/route.js +1 -1
  121. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/summarize/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/task-drafts/route.js +1 -1
  124. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  126. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  128. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  130. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
  132. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  134. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  136. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  138. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
  140. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  142. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  144. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  146. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  148. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
  150. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  152. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  154. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
  156. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  158. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  160. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route.js +1 -1
  162. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  164. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  166. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  168. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  170. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  172. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  174. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  175. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +1 -1
  176. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  177. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js +1 -1
  178. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  180. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  181. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/extract/route.js +1 -1
  182. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  183. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js +1 -1
  184. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js.nft.json +1 -1
  185. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route.js +1 -1
  186. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/agents/route/app-paths-manifest.json +3 -0
  188. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/agents/route/build-manifest.json +11 -0
  189. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/agents/route/server-reference-manifest.json +4 -0
  190. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/agents/route.js +8 -0
  191. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/agents/route.js.map +5 -0
  192. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/agents/route.js.nft.json +1 -0
  193. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/agents/route_client-reference-manifest.js +2 -0
  194. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/route/app-paths-manifest.json +3 -0
  195. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/route/build-manifest.json +11 -0
  196. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/route/server-reference-manifest.json +4 -0
  197. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/route.js +8 -0
  198. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/route.js.map +5 -0
  199. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/route.js.nft.json +1 -0
  200. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/[id]/route_client-reference-manifest.js +2 -0
  201. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/route/app-paths-manifest.json +3 -0
  202. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/route/build-manifest.json +11 -0
  203. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/route/server-reference-manifest.json +4 -0
  204. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/route.js +8 -0
  205. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/route.js.map +5 -0
  206. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/route.js.nft.json +1 -0
  207. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/teams/route_client-reference-manifest.js +2 -0
  208. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/[id]/route.js +1 -1
  209. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/[id]/route.js.nft.json +1 -1
  210. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/route.js +1 -1
  211. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/route.js.nft.json +1 -1
  212. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route.js +1 -1
  213. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  214. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page.js.nft.json +1 -1
  215. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page_client-reference-manifest.js +1 -1
  216. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.html +2 -2
  217. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.rsc +2 -2
  218. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_full.segment.rsc +2 -2
  219. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_head.segment.rsc +1 -1
  220. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_index.segment.rsc +2 -2
  221. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  222. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  223. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/board.segment.rsc +1 -1
  224. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page.js.nft.json +1 -1
  225. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  226. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.html +2 -2
  227. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.rsc +3 -3
  228. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  229. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  230. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  231. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  232. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  233. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  234. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.html +2 -2
  235. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.rsc +4 -4
  236. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  237. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_full.segment.rsc +4 -4
  238. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_head.segment.rsc +1 -1
  239. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_index.segment.rsc +2 -2
  240. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  241. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js.nft.json +1 -1
  242. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page_client-reference-manifest.js +1 -1
  243. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  244. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  245. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  246. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  247. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  248. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  249. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.html +1 -1
  250. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.rsc +3 -3
  251. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  252. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  253. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  254. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  256. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  257. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  258. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js.nft.json +1 -1
  259. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  260. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.html +2 -2
  261. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.rsc +3 -3
  262. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  263. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  264. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  265. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  266. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  267. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js.nft.json +1 -1
  269. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  270. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.html +2 -2
  271. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.rsc +2 -2
  272. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  273. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  274. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  275. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  276. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  277. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  278. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page.js.nft.json +1 -1
  279. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page_client-reference-manifest.js +1 -1
  280. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.html +2 -2
  281. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.rsc +3 -3
  282. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_full.segment.rsc +3 -3
  283. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_head.segment.rsc +1 -1
  284. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_index.segment.rsc +2 -2
  285. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  286. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  287. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/status.segment.rsc +1 -1
  288. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page.js.nft.json +1 -1
  289. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  290. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.html +2 -2
  291. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.rsc +3 -3
  292. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  293. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  294. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  295. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  296. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  297. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  298. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +8 -0
  299. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/7e210_Agents_agx-cloud__next-internal_server_app_api_teams_route_actions_e76eb762.js +3 -0
  300. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_d237c059._.js +1 -1
  301. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_6041e016._.js +3 -3
  302. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_6a5d1c80._.js +9 -9
  303. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_8c82981b._.js +3 -3
  304. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__02ca2128._.js → [root-of-the-server]__11b52378._.js} +2 -2
  305. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__bbf5f222._.js → [root-of-the-server]__138cda76._.js} +2 -2
  306. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__b478bb36._.js → [root-of-the-server]__14c4cd90._.js} +2 -2
  307. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__ccb0a291._.js → [root-of-the-server]__1af3c133._.js} +2 -2
  308. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__7fae991f._.js → [root-of-the-server]__1d6b3dc4._.js} +2 -2
  309. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__c6bd42f9._.js → [root-of-the-server]__2435226f._.js} +2 -2
  310. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__094cda80._.js → [root-of-the-server]__24676138._.js} +2 -2
  311. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__325b119d._.js +162 -0
  312. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__0469e3c4._.js → [root-of-the-server]__34e15c3b._.js} +2 -2
  313. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__84058042._.js → [root-of-the-server]__374c51fe._.js} +2 -2
  314. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__5e048929._.js → [root-of-the-server]__3a60a457._.js} +17 -14
  315. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__bca6e014._.js → [root-of-the-server]__3da4ecb4._.js} +2 -2
  316. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__4005f2fb._.js +3 -0
  317. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__42ab2b45._.js +205 -0
  318. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__9db4ed07._.js → [root-of-the-server]__45a42d30._.js} +2 -2
  319. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__45d4a92e._.js → [root-of-the-server]__46443bd1._.js} +2 -2
  320. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__6a99c121._.js → [root-of-the-server]__4964be9e._.js} +2 -2
  321. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__b3d06607._.js → [root-of-the-server]__49732c7a._.js} +2 -2
  322. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__c24f04db._.js → [root-of-the-server]__4e8944f5._.js} +2 -2
  323. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__e6839bac._.js → [root-of-the-server]__541b6536._.js} +17 -14
  324. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__a5ebf587._.js → [root-of-the-server]__5aa0850a._.js} +2 -2
  325. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__5ad371f3._.js +197 -0
  326. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__5d4e1eab._.js → [root-of-the-server]__61362d2c._.js} +2 -2
  327. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__f8f5dd3f._.js → [root-of-the-server]__63e6c5cb._.js} +2 -2
  328. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__c6a83450._.js → [root-of-the-server]__74d2fecb._.js} +2 -2
  329. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__a085810b._.js → [root-of-the-server]__757bd844._.js} +2 -2
  330. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__a798a81b._.js → [root-of-the-server]__7f3fb99b._.js} +2 -2
  331. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__8f70f57a._.js → [root-of-the-server]__862414fb._.js} +2 -2
  332. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__33b4886e._.js → [root-of-the-server]__8c335165._.js} +2 -2
  333. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__843bda67._.js → [root-of-the-server]__950e925a._.js} +2 -2
  334. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__9dbd4061._.js +30 -0
  335. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__9a8408c2._.js → [root-of-the-server]__abc1c78f._.js} +2 -2
  336. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__9d711adb._.js → [root-of-the-server]__b1710728._.js} +2 -2
  337. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__b1ee8259._.js +3 -0
  338. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__086fd26c._.js → [root-of-the-server]__b773a26b._.js} +2 -2
  339. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__6d540484._.js → [root-of-the-server]__b8bfcfcb._.js} +2 -2
  340. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__68eac206._.js → [root-of-the-server]__b92cc388._.js} +2 -2
  341. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bd492c8b._.js +3 -0
  342. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__754f11c3._.js → [root-of-the-server]__bde5cdeb._.js} +19 -16
  343. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__be6f07e4._.js +35 -0
  344. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__8d27656d._.js → [root-of-the-server]__be72cd19._.js} +2 -2
  345. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__bf0cbc6e._.js → [root-of-the-server]__bf5839ef._.js} +2 -2
  346. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__23d4344c._.js → [root-of-the-server]__c07f5dbd._.js} +17 -14
  347. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__d5556385._.js → [root-of-the-server]__c7021bce._.js} +2 -2
  348. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__5231c027._.js → [root-of-the-server]__cbc1e994._.js} +2 -2
  349. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__ccad2301._.js +16 -0
  350. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__d339de9d._.js +201 -0
  351. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__7c2d99de._.js → [root-of-the-server]__ede3487d._.js} +2 -2
  352. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__3dfd0006._.js → [root-of-the-server]__ee1d4f22._.js} +2 -2
  353. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__29975f5f._.js → [root-of-the-server]__f1ce0903._.js} +2 -2
  354. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__c0525aa9._.js → [root-of-the-server]__fb7ad71b._.js} +2 -2
  355. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__ffe75a5a._.js +22 -0
  356. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__10254e41._.js → [root-of-the-server]__fffe72ac._.js} +2 -2
  357. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_agents_[id]_messages_route_actions_4a5b93aa.js +3 -0
  358. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_agents_[id]_profile_route_actions_3a7d8cf0.js +3 -0
  359. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_teams_[id]_agents_route_actions_97fafccc.js +3 -0
  360. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ad555_agx-cloud__next-internal_server_app_api_agents_export_route_actions_5d64c0cd.js +3 -0
  361. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ad555_agx-cloud__next-internal_server_app_api_teams_[id]_route_actions_2f771636.js +3 -0
  362. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ae43b_next_dist_esm_build_templates_app-route_122e31fe.js +33 -20
  363. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/7e210_Agents_agx-cloud__next-internal_server_app_agents_[id]_page_actions_f250f955.js +3 -0
  364. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_199f4916._.js +3 -0
  365. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_1a89ff22._.js +3 -0
  366. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_23a74345._.js +3 -0
  367. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_274b1253._.js +100 -0
  368. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_5defd267._.js +3 -0
  369. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_7bc01e46._.js +5 -5
  370. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_8feb2597._.js +2 -2
  371. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_97e800de._.js +5 -5
  372. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud__next-internal_server_app_agents_page_actions_e400c0d2.js +3 -0
  373. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_app_agents_[id]_page_tsx_8537539a._.js +3 -0
  374. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_app_agents_layout_tsx_7aedca18._.js +3 -0
  375. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_app_agents_page_tsx_ff7a8da5._.js +3 -0
  376. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_app_execution-graph_page_tsx_a9c51dd9._.js +2 -2
  377. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_b0381c73._.js +3 -0
  378. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_b5ebb745._.js +3 -0
  379. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_ba18e49a._.js +3 -0
  380. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_d2d4c5b2._.js +2 -2
  381. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_d74432d4._.js +4 -0
  382. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_dee298a4._.js +3 -0
  383. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_edc80ce4._.js +4 -0
  384. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__c76acf29._.js → [root-of-the-server]__14d40aef._.js} +2 -2
  385. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__43df8b74._.js +3 -0
  386. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__6e065405._.js +3 -0
  387. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__99fa92e8._.js → [root-of-the-server]__7764ec5b._.js} +2 -2
  388. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__00507cd5._.js → [root-of-the-server]__8c7946de._.js} +2 -2
  389. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__9602ff02._.js +3 -0
  390. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__96241c2a._.js +3 -0
  391. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__d78a9d61._.js +3 -0
  392. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_4dbe1295._.js +3 -0
  393. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/functions-config-manifest.json +6 -0
  394. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json +5 -5
  395. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/next-font-manifest.js +1 -1
  396. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/next-font-manifest.json +8 -0
  397. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
  398. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +2 -2
  399. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
  400. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
  401. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/05abf1bd00d94cf8.js +5 -0
  402. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/0921d653d52e4010.js +1 -0
  403. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/0ca3d85999e974cd.js +1 -0
  404. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{60a9c7b6ddb4f3f5.js → 2d8cc58676973d4c.js} +7 -7
  405. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/3192d43fdf9f54f2.js +30 -0
  406. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/3e48187863c47db7.js +1 -0
  407. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{c19172117f196735.js → 4a8f67c6ca864f30.js} +1 -1
  408. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/55c07b9b3795a4db.js +1 -0
  409. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{7d2c10033c8a8554.js → 77c849083402f61f.js} +1 -1
  410. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{ae26536f21ac3989.js → 79db9e451bfa80a8.js} +1 -1
  411. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/7eabb545e691cc51.js +1 -0
  412. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/95901ed98d4ed7b1.css +1 -0
  413. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/a25163733aaa771d.js +1 -0
  414. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/a5524fedec1d4539.js +30 -0
  415. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/ae11a9833582a364.css +2 -0
  416. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/beaa6c9ec1984b1a.js +1 -0
  417. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/bfb2423083fa77ea.js +1 -0
  418. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/c9a61a2b91917a11.js +1 -0
  419. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/e081d11e088dfd04.js +98 -0
  420. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/agents/[id]/page.tsx +723 -0
  421. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/agents/layout.tsx +3 -0
  422. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/agents/page.tsx +1093 -0
  423. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/agents/[id]/messages/route.ts +91 -0
  424. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/agents/[id]/profile/route.ts +87 -0
  425. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/agents/export/route.ts +51 -0
  426. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/chat/route.ts +47 -0
  427. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/history/route.ts +17 -0
  428. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/participants/route.ts +35 -0
  429. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/teams/[id]/agents/route.ts +118 -0
  430. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/teams/[id]/route.ts +80 -0
  431. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/teams/route.ts +132 -0
  432. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/projects/[slug]/layout.tsx +42 -23
  433. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/KanbanBoard.tsx +1 -0
  434. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/SortableTaskCard.tsx +3 -1
  435. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/TaskCard.tsx +27 -1
  436. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ChatContainer.tsx +79 -25
  437. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/Composer.tsx +25 -9
  438. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/MentionPopover.tsx +84 -31
  439. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/MessageBubble.tsx +22 -11
  440. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/MessageList.tsx +236 -28
  441. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ParticipantBar.tsx +117 -13
  442. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ThreadView.tsx +6 -3
  443. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadItem.tsx +1 -1
  444. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadList.tsx +1 -1
  445. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/WorkspaceSidebar.tsx +1376 -0
  446. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/db/sqlite/001_agx_board_schema.sql +41 -0
  447. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useGroupChat.ts +6 -2
  448. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useMentionAutocomplete.ts +86 -31
  449. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useTeams.ts +171 -0
  450. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useThreadState.ts +75 -7
  451. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/history-store.ts +34 -4
  452. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/participants-store.ts +22 -3
  453. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/sqlite-query-adapter.ts +13 -0
  454. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/local-thread-adapter.ts +6 -0
  455. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/thread-adapter.ts +11 -0
  456. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/stream-multiplexer.ts +59 -8
  457. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/teams.ts +130 -0
  458. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/tiptap/composer-mentions.ts +1 -0
  459. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/types.ts +5 -0
  460. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/migrations/sqlite_schema.sql +41 -0
  461. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/services/threadService.ts +65 -1
  462. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/state/uiSettings.ts +2 -2
  463. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/styles/{threadSidebar.css → workspaceSidebar.css} +79 -57
  464. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tsconfig.json +2 -1
  465. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tsconfig.tsbuildinfo +1 -1
  466. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +8 -0
  467. package/lib/cli/onboarding.js +67 -16
  468. package/lib/commands/chat.js +4 -0
  469. package/package.json +1 -1
  470. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__384eb9c5._.js +0 -194
  471. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__4dc3c88e._.js +0 -202
  472. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__8c40bccb._.js +0 -159
  473. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__cac59af9._.js +0 -198
  474. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__e5230b89._.js +0 -16
  475. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_304dc58c._.js +0 -3
  476. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_components_chat-ui_f59beea5._.js +0 -95
  477. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_e7635878._.js +0 -3
  478. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_ef78b9d7._.js +0 -3
  479. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__a4a5c57b._.js +0 -3
  480. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__a73fd1ea._.js +0 -3
  481. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_6c755856._.js +0 -3
  482. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/04612fc0fdf7b4ef.css +0 -1
  483. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/122dafa7cd2594e4.js +0 -30
  484. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/38cf24cf2de25782.js +0 -1
  485. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/49b2630db3ff37fe.js +0 -5
  486. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/55e870d6246760c7.js +0 -93
  487. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/870ea0d4e47d21ce.js +0 -1
  488. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/a56604cde5f45ff6.js +0 -30
  489. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/b3af23a09f4d9204.js +0 -1
  490. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/cdd364319efbfb0a.js +0 -1
  491. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/e479bda541d8b5c4.css +0 -2
  492. package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadSidebar.tsx +0 -359
  493. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{XZDiIYejKYJCT3rT4mrnp → 1fdQDYVXlcwnVGQtgask4}/_buildManifest.js +0 -0
  494. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{XZDiIYejKYJCT3rT4mrnp → 1fdQDYVXlcwnVGQtgask4}/_clientMiddlewareManifest.json +0 -0
  495. /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{XZDiIYejKYJCT3rT4mrnp → 1fdQDYVXlcwnVGQtgask4}/_ssgManifest.js +0 -0
@@ -0,0 +1,1093 @@
1
+ "use client";
2
+
3
+ import { useEffect, useRef, useState } from "react";
4
+ import Link from "next/link";
5
+ import {
6
+ ArrowLeft,
7
+ ChevronDown,
8
+ ChevronRight,
9
+ Download,
10
+ Hash,
11
+ Pencil,
12
+ Plus,
13
+ Trash2,
14
+ Upload,
15
+ Users,
16
+ X,
17
+ } from "lucide-react";
18
+ import type { Participant } from "@/lib/types";
19
+ import { useTeams, type Team } from "@/hooks/useTeams";
20
+ import { agentAvatarUrl, AgentForm, type AgentFormData } from "@/components/chat-ui/ParticipantBar";
21
+ import type { Thread } from "@/lib/storage";
22
+ import { threadService } from "@/services/threadService";
23
+
24
+ // ── Bundle types ────────────────────────────────────────────────────────────
25
+
26
+ interface BundleAgent {
27
+ id: string;
28
+ name: string;
29
+ provider: string;
30
+ model: string | null;
31
+ color: string;
32
+ identity?: string | null;
33
+ identityFile?: string | null;
34
+ skills?: { file: string; condition: string }[];
35
+ variables?: Record<string, string>;
36
+ self?: string | null;
37
+ }
38
+
39
+ interface BundleTeam {
40
+ name: string;
41
+ agentIds: string[];
42
+ }
43
+
44
+ interface AgentBundle {
45
+ version: 1;
46
+ exportedAt: string;
47
+ agents: BundleAgent[];
48
+ teams: BundleTeam[];
49
+ }
50
+
51
+ // ── Component ───────────────────────────────────────────────────────────────
52
+
53
+ export default function AgentLibraryPage() {
54
+ const [participants, setParticipants] = useState<Participant[]>([]);
55
+ const [threads, setThreads] = useState<Thread[]>([]);
56
+ const {
57
+ teams,
58
+ createTeam,
59
+ deleteTeam,
60
+ renameTeam,
61
+ addAgent: addAgentToTeam,
62
+ removeAgent: removeAgentFromTeam,
63
+ refresh: refreshTeams,
64
+ } = useTeams();
65
+
66
+ const [expandedTeams, setExpandedTeams] = useState<Set<string>>(new Set());
67
+ const [createModal, setCreateModal] = useState(false);
68
+ const [createName, setCreateName] = useState("");
69
+ const [createAgents, setCreateAgents] = useState<Set<string>>(new Set());
70
+ const [createWorkspaces, setCreateWorkspaces] = useState<Set<string>>(new Set());
71
+ const [addAgentModal, setAddAgentModal] = useState<{ teamId: string } | null>(null);
72
+ const [addAgentSelection, setAddAgentSelection] = useState<Set<string>>(new Set());
73
+ const [creatingNewAgent, setCreatingNewAgent] = useState(false);
74
+ const [renameModal, setRenameModal] = useState<{ teamId: string; currentName: string } | null>(null);
75
+ const [renameValue, setRenameValue] = useState("");
76
+
77
+ // Export state
78
+ const [exportModal, setExportModal] = useState(false);
79
+ const [exportAgents, setExportAgents] = useState<Set<string>>(new Set());
80
+ const [exportIncludeSelf, setExportIncludeSelf] = useState(true);
81
+ const [exporting, setExporting] = useState(false);
82
+
83
+ // Import state
84
+ const [importModal, setImportModal] = useState(false);
85
+ const [importBundle, setImportBundle] = useState<AgentBundle | null>(null);
86
+ const [importAgents, setImportAgents] = useState<Set<string>>(new Set());
87
+ const [importTeams, setImportTeams] = useState<Set<string>>(new Set());
88
+ const [importing, setImporting] = useState(false);
89
+ const [importError, setImportError] = useState<string | null>(null);
90
+ const fileInputRef = useRef<HTMLInputElement>(null);
91
+
92
+ const refreshParticipants = () => {
93
+ void fetch("/api/participants")
94
+ .then((r) => r.json())
95
+ .then((data) => setParticipants(Array.isArray(data) ? data : []));
96
+ };
97
+
98
+ useEffect(() => {
99
+ refreshParticipants();
100
+ void threadService.listThreads().then(setThreads);
101
+ }, []);
102
+
103
+ const threadById = new Map(threads.map((t) => [t.id, t]));
104
+ const nonDefaultTeams = teams.filter((t) => !t.is_default);
105
+
106
+ const toggleTeam = (id: string) => {
107
+ setExpandedTeams((prev) => {
108
+ const next = new Set(prev);
109
+ if (next.has(id)) next.delete(id);
110
+ else next.add(id);
111
+ return next;
112
+ });
113
+ };
114
+
115
+ const handleCreateSubmit = async () => {
116
+ if (!createName.trim()) return;
117
+ const wsIds = Array.from(createWorkspaces);
118
+ const team = await createTeam(createName.trim(), wsIds.length > 0 ? wsIds : undefined);
119
+ if (team) {
120
+ for (const agentId of createAgents) {
121
+ await addAgentToTeam(team.id, agentId);
122
+ }
123
+ }
124
+ setCreateModal(false);
125
+ };
126
+
127
+ const handleRenameSubmit = async () => {
128
+ if (!renameModal || !renameValue.trim()) return;
129
+ await renameTeam(renameModal.teamId, renameValue.trim());
130
+ setRenameModal(null);
131
+ };
132
+
133
+ // ── Export ──────────────────────────────────────────────────────────────
134
+
135
+ const openExportModal = () => {
136
+ setExportAgents(new Set(participants.map((p) => p.id)));
137
+ setExportIncludeSelf(true);
138
+ setExportModal(true);
139
+ };
140
+
141
+ const handleExport = async () => {
142
+ if (exportAgents.size === 0) return;
143
+ setExporting(true);
144
+ try {
145
+ // Fetch agent data including self.md from server
146
+ const agentIds = Array.from(exportAgents);
147
+ const res = await fetch("/api/agents/export", {
148
+ method: "POST",
149
+ headers: { "Content-Type": "application/json" },
150
+ body: JSON.stringify({ agentIds }),
151
+ });
152
+ if (!res.ok) throw new Error("Export failed");
153
+ const data = await res.json();
154
+
155
+ const bundleAgents: BundleAgent[] = (data.agents as BundleAgent[]).map((a) => ({
156
+ ...a,
157
+ self: exportIncludeSelf ? a.self : null,
158
+ }));
159
+
160
+ const bundle: AgentBundle = {
161
+ version: 1,
162
+ exportedAt: new Date().toISOString(),
163
+ agents: bundleAgents,
164
+ teams: [],
165
+ };
166
+
167
+ // Download as JSON
168
+ const blob = new Blob([JSON.stringify(bundle, null, 2)], { type: "application/json" });
169
+ const url = URL.createObjectURL(blob);
170
+ const a = document.createElement("a");
171
+ a.href = url;
172
+ const nameHint = bundleAgents.length === 1
173
+ ? `${bundleAgents[0].name.toLowerCase().replace(/\s+/g, "-")}.agent.json`
174
+ : "agents.bundle.json";
175
+ a.download = nameHint;
176
+ a.click();
177
+ URL.revokeObjectURL(url);
178
+ setExportModal(false);
179
+ } catch (e) {
180
+ console.error("Export error:", e);
181
+ } finally {
182
+ setExporting(false);
183
+ }
184
+ };
185
+
186
+ // ── Import ──────────────────────────────────────────────────────────────
187
+
188
+ const handleFileSelect = (e: React.ChangeEvent<HTMLInputElement>) => {
189
+ const file = e.target.files?.[0];
190
+ if (!file) return;
191
+ setImportError(null);
192
+
193
+ const reader = new FileReader();
194
+ reader.onload = () => {
195
+ try {
196
+ const bundle = JSON.parse(reader.result as string) as AgentBundle;
197
+ if (!bundle.version || !Array.isArray(bundle.agents)) {
198
+ throw new Error("Invalid bundle format");
199
+ }
200
+ setImportBundle(bundle);
201
+ setImportAgents(new Set(bundle.agents.map((a) => a.id)));
202
+ setImportTeams(new Set((bundle.teams ?? []).map((t) => t.name)));
203
+ setImportModal(true);
204
+ } catch {
205
+ setImportError("Invalid file. Expected an .agent.json bundle.");
206
+ }
207
+ };
208
+ reader.readAsText(file);
209
+ // Reset so same file can be re-selected
210
+ e.target.value = "";
211
+ };
212
+
213
+ const handleImport = async () => {
214
+ if (!importBundle) return;
215
+ setImporting(true);
216
+ try {
217
+ const existingIds = new Set(participants.map((p) => p.id));
218
+
219
+ // Import selected agents
220
+ for (const agent of importBundle.agents) {
221
+ if (!importAgents.has(agent.id)) continue;
222
+
223
+ const payload: Record<string, unknown> = {
224
+ name: agent.name,
225
+ provider: agent.provider,
226
+ model: agent.model,
227
+ color: agent.color,
228
+ identity: agent.identity || undefined,
229
+ identityFile: agent.identityFile || undefined,
230
+ skills: agent.skills || [],
231
+ variables: agent.variables || {},
232
+ };
233
+
234
+ if (existingIds.has(agent.id)) {
235
+ // Update existing
236
+ payload.id = agent.id;
237
+ await fetch("/api/participants", {
238
+ method: "PATCH",
239
+ headers: { "Content-Type": "application/json" },
240
+ body: JSON.stringify(payload),
241
+ });
242
+ } else {
243
+ // Create new
244
+ await fetch("/api/participants", {
245
+ method: "POST",
246
+ headers: { "Content-Type": "application/json" },
247
+ body: JSON.stringify(payload),
248
+ });
249
+ }
250
+ }
251
+
252
+ // Import selected teams
253
+ for (const bundleTeam of importBundle.teams ?? []) {
254
+ if (!importTeams.has(bundleTeam.name)) continue;
255
+
256
+ const team = await createTeam(bundleTeam.name);
257
+ if (team) {
258
+ for (const agentId of bundleTeam.agentIds) {
259
+ if (importAgents.has(agentId)) {
260
+ await addAgentToTeam(team.id, agentId);
261
+ }
262
+ }
263
+ }
264
+ }
265
+
266
+ // Refresh data
267
+ refreshParticipants();
268
+ await refreshTeams();
269
+ setImportModal(false);
270
+ setImportBundle(null);
271
+ } catch (e) {
272
+ console.error("Import error:", e);
273
+ setImportError("Import failed. Check console for details.");
274
+ } finally {
275
+ setImporting(false);
276
+ }
277
+ };
278
+
279
+ // Add agent modal helpers
280
+ const addAgentModalTeam = addAgentModal ? teams.find((t) => t.id === addAgentModal.teamId) : null;
281
+ const addAgentModalMemberIds = new Set(addAgentModalTeam?.agents.map((a) => a.agent_id) ?? []);
282
+ const addAgentModalAvailable = addAgentModal ? participants.filter((p) => !addAgentModalMemberIds.has(p.id)) : [];
283
+
284
+ // ── Checkbox helper ─────────────────────────────────────────────────────
285
+
286
+ const Checkbox = ({ checked }: { checked: boolean }) => (
287
+ <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"}`}>
288
+ {checked && (
289
+ <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>
290
+ )}
291
+ </div>
292
+ );
293
+
294
+ return (
295
+ <div className="min-h-screen bg-slate-50 p-6">
296
+ <div className="max-w-6xl mx-auto">
297
+ <div className="flex items-center gap-3 mb-6">
298
+ <Link
299
+ href="/"
300
+ className="inline-flex items-center gap-1 text-sm text-slate-500 hover:text-slate-700 transition-colors"
301
+ >
302
+ <ArrowLeft size={16} />
303
+ Back
304
+ </Link>
305
+ <h1 className="text-2xl font-semibold text-slate-900">Manage Agents</h1>
306
+ <div className="ml-auto flex items-center gap-2">
307
+ <button
308
+ type="button"
309
+ 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"
310
+ onClick={() => setCreatingNewAgent(true)}
311
+ >
312
+ <Plus size={13} />
313
+ New Agent
314
+ </button>
315
+ <button
316
+ type="button"
317
+ 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 transition-colors"
318
+ onClick={() => fileInputRef.current?.click()}
319
+ >
320
+ <Upload size={13} />
321
+ Import
322
+ </button>
323
+ <input
324
+ ref={fileInputRef}
325
+ type="file"
326
+ accept=".json"
327
+ className="hidden"
328
+ onChange={handleFileSelect}
329
+ />
330
+ <button
331
+ type="button"
332
+ 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 transition-colors"
333
+ onClick={openExportModal}
334
+ disabled={participants.length === 0}
335
+ >
336
+ <Download size={13} />
337
+ Export
338
+ </button>
339
+ </div>
340
+ </div>
341
+
342
+ {importError && (
343
+ <div className="mb-4 px-4 py-3 rounded-lg bg-red-50 border border-red-200 text-sm text-red-700 flex items-center justify-between">
344
+ <span>{importError}</span>
345
+ <button type="button" onClick={() => setImportError(null)} className="text-red-400 hover:text-red-600"><X size={14} /></button>
346
+ </div>
347
+ )}
348
+
349
+ {/* Agent Grid */}
350
+ {participants.length === 0 ? (
351
+ <p className="text-slate-500 text-sm">No agents configured yet.</p>
352
+ ) : (
353
+ <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
354
+ {participants.map((p) => (
355
+ <Link
356
+ key={p.id}
357
+ href={`/agents/${p.id}`}
358
+ className="bg-white rounded-xl border border-slate-200 p-4 hover:shadow-md transition-shadow text-left cursor-pointer block"
359
+ >
360
+ <div className="flex items-start gap-3 mb-3">
361
+ <img
362
+ src={agentAvatarUrl(p.id, 48, p.color)}
363
+ alt={p.name}
364
+ className="w-12 h-12 rounded-full bg-slate-100"
365
+ />
366
+ <div className="min-w-0 flex-1">
367
+ <h3 className="font-medium text-slate-900 truncate">{p.name}</h3>
368
+ <p className="text-xs text-slate-400 truncate mt-0.5">{p.model}</p>
369
+ </div>
370
+ </div>
371
+
372
+ {p.skills && p.skills.length > 0 && (
373
+ <div className="flex flex-wrap gap-1 mb-3">
374
+ {p.skills.slice(0, 3).map((s, i) => (
375
+ <span
376
+ key={i}
377
+ className="text-[10px] px-1.5 py-0.5 rounded bg-blue-50 text-blue-600 truncate max-w-[120px]"
378
+ >
379
+ {s.file.split("/").pop()}
380
+ </span>
381
+ ))}
382
+ {p.skills.length > 3 && (
383
+ <span className="text-[10px] px-1.5 py-0.5 rounded bg-slate-50 text-slate-400">
384
+ +{p.skills.length - 3}
385
+ </span>
386
+ )}
387
+ </div>
388
+ )}
389
+
390
+ <div className="flex items-center gap-1.5 pt-2 border-t border-slate-100">
391
+ <span className="text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-slate-100 text-slate-600 uppercase tracking-wide">
392
+ {p.provider}
393
+ </span>
394
+ </div>
395
+ </Link>
396
+ ))}
397
+ </div>
398
+ )}
399
+
400
+ {/* Teams Section */}
401
+ <div className="mt-10">
402
+ <div className="flex items-center justify-between mb-4">
403
+ <h2 className="text-lg font-semibold text-slate-900">Teams</h2>
404
+ <button
405
+ type="button"
406
+ 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"
407
+ onClick={() => {
408
+ setCreateName("");
409
+ setCreateAgents(new Set());
410
+ setCreateWorkspaces(new Set());
411
+ setCreateModal(true);
412
+ }}
413
+ >
414
+ <Plus size={13} />
415
+ Add team
416
+ </button>
417
+ </div>
418
+
419
+ {nonDefaultTeams.length === 0 ? (
420
+ <p className="text-sm text-slate-400">No teams yet. Create one to group agents for a workspace.</p>
421
+ ) : (
422
+ <div className="bg-white rounded-xl border border-slate-200 divide-y divide-slate-100">
423
+ {nonDefaultTeams.map((team) => {
424
+ const isExpanded = expandedTeams.has(team.id);
425
+ const wsNames = (team.workspace_ids ?? [])
426
+ .map((id) => threadById.get(id)?.title?.trim() || "Untitled")
427
+ .filter(Boolean);
428
+
429
+ return (
430
+ <div key={team.id}>
431
+ <div className="flex items-center gap-3 px-5 py-3.5 group">
432
+ <button
433
+ type="button"
434
+ className="flex items-center gap-3 flex-1 min-w-0 text-left"
435
+ onClick={() => toggleTeam(team.id)}
436
+ >
437
+ {isExpanded ? (
438
+ <ChevronDown size={16} className="text-slate-400 flex-shrink-0" />
439
+ ) : (
440
+ <ChevronRight size={16} className="text-slate-400 flex-shrink-0" />
441
+ )}
442
+ <Users size={16} className="text-slate-400 flex-shrink-0" />
443
+ <span className="font-medium text-slate-800 text-sm">{team.name}</span>
444
+ <span className="text-xs text-slate-400">
445
+ {team.agents.length} {team.agents.length === 1 ? "agent" : "agents"}
446
+ {wsNames.length > 0 && ` · ${wsNames.length} ${wsNames.length === 1 ? "workspace" : "workspaces"}`}
447
+ </span>
448
+ </button>
449
+ <div className="flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
450
+ <button
451
+ type="button"
452
+ className="p-1.5 text-slate-400 hover:text-slate-600 rounded hover:bg-slate-50 transition-colors"
453
+ title="Add agent"
454
+ onClick={() => {
455
+ setAddAgentSelection(new Set());
456
+ setAddAgentModal({ teamId: team.id });
457
+ }}
458
+ >
459
+ <Plus size={14} />
460
+ </button>
461
+ <button
462
+ type="button"
463
+ className="p-1.5 text-slate-400 hover:text-slate-600 rounded hover:bg-slate-50 transition-colors"
464
+ title="Rename team"
465
+ onClick={() => {
466
+ setRenameValue(team.name);
467
+ setRenameModal({ teamId: team.id, currentName: team.name });
468
+ }}
469
+ >
470
+ <Pencil size={13} />
471
+ </button>
472
+ <button
473
+ type="button"
474
+ className="p-1.5 text-slate-400 hover:text-red-500 rounded hover:bg-slate-50 transition-colors"
475
+ title="Delete team"
476
+ onClick={() => void deleteTeam(team.id)}
477
+ >
478
+ <Trash2 size={13} />
479
+ </button>
480
+ </div>
481
+ </div>
482
+
483
+ {isExpanded && (
484
+ <div className="px-5 pb-4 pt-1 ml-9 flex flex-col gap-1">
485
+ {team.agents.length === 0 && (
486
+ <p className="text-xs text-slate-400 py-1">No agents in this team.</p>
487
+ )}
488
+ {team.agents.map((ta) => {
489
+ const agent = participants.find((p) => p.id === ta.agent_id);
490
+ return (
491
+ <div
492
+ key={ta.agent_id}
493
+ className="flex items-center gap-2.5 py-1.5 group/agent"
494
+ >
495
+ <img
496
+ src={agentAvatarUrl(ta.agent_id, 24, agent?.color)}
497
+ alt=""
498
+ className="w-6 h-6 rounded-full flex-shrink-0"
499
+ />
500
+ <span className="text-sm text-slate-700 truncate flex-1">
501
+ {agent?.name ?? ta.agent_id}
502
+ </span>
503
+ <span className="text-[10px] text-slate-400">{agent?.model}</span>
504
+ <button
505
+ type="button"
506
+ className="opacity-0 group-hover/agent:opacity-100 text-slate-400 hover:text-red-500 transition-opacity"
507
+ onClick={() => void removeAgentFromTeam(team.id, ta.agent_id)}
508
+ title="Remove from team"
509
+ >
510
+ <X size={14} />
511
+ </button>
512
+ </div>
513
+ );
514
+ })}
515
+
516
+ {wsNames.length > 0 && (
517
+ <div className="mt-2 pt-2 border-t border-slate-100">
518
+ <p className="text-[10px] font-medium text-slate-400 uppercase tracking-wide mb-1">Workspaces</p>
519
+ <div className="flex flex-wrap gap-1.5">
520
+ {wsNames.map((name, i) => (
521
+ <span
522
+ key={i}
523
+ className="inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md bg-indigo-50 text-indigo-600"
524
+ >
525
+ <Hash size={11} />
526
+ {name}
527
+ </span>
528
+ ))}
529
+ </div>
530
+ </div>
531
+ )}
532
+ </div>
533
+ )}
534
+ </div>
535
+ );
536
+ })}
537
+ </div>
538
+ )}
539
+ </div>
540
+ </div>
541
+
542
+ {/* ── Export Modal ──────────────────────────────────────────────────── */}
543
+ {exportModal && (
544
+ <div
545
+ className="fixed inset-0 z-50 flex items-center justify-center bg-black/30"
546
+ onClick={() => setExportModal(false)}
547
+ >
548
+ <div
549
+ className="bg-white rounded-xl shadow-xl border border-slate-200 w-[440px] max-h-[80vh] flex flex-col"
550
+ onClick={(e) => e.stopPropagation()}
551
+ >
552
+ <div className="flex items-center justify-between px-5 py-3.5 border-b border-slate-100">
553
+ <h3 className="text-sm font-medium text-slate-900">Export Agents & Teams</h3>
554
+ <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setExportModal(false)}>
555
+ <X size={16} />
556
+ </button>
557
+ </div>
558
+
559
+ <div className="overflow-y-auto flex-1">
560
+ {/* Teams as quick-select presets */}
561
+ {nonDefaultTeams.length > 0 && (
562
+ <div className="border-b border-slate-100 px-5 py-3">
563
+ <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide mb-2">Select by team</p>
564
+ <div className="flex flex-wrap gap-1.5">
565
+ {nonDefaultTeams.map((t) => {
566
+ const teamAgentIds = t.agents.map((a) => a.agent_id);
567
+ const allSelected = teamAgentIds.length > 0 && teamAgentIds.every((id) => exportAgents.has(id));
568
+ const someSelected = teamAgentIds.some((id) => exportAgents.has(id));
569
+ return (
570
+ <button
571
+ key={t.id}
572
+ type="button"
573
+ className={`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors ${
574
+ allSelected
575
+ ? "bg-slate-900 text-white"
576
+ : someSelected
577
+ ? "bg-slate-300 text-slate-700"
578
+ : "bg-slate-100 text-slate-600 hover:bg-slate-200"
579
+ }`}
580
+ onClick={() => {
581
+ setExportAgents((prev) => {
582
+ const next = new Set(prev);
583
+ if (allSelected) {
584
+ teamAgentIds.forEach((id) => next.delete(id));
585
+ } else {
586
+ teamAgentIds.forEach((id) => next.add(id));
587
+ }
588
+ return next;
589
+ });
590
+ }}
591
+ title={teamAgentIds.map((id) => participants.find((p) => p.id === id)?.name ?? id).join(", ")}
592
+ >
593
+ <Users size={10} />
594
+ {t.name}
595
+ <span className={`text-[10px] ${allSelected ? "text-slate-300" : "text-slate-400"}`}>
596
+ {t.agents.length}
597
+ </span>
598
+ </button>
599
+ );
600
+ })}
601
+ </div>
602
+ </div>
603
+ )}
604
+
605
+ {/* Agents selection */}
606
+ <div className="border-b border-slate-100">
607
+ <div className="px-5 pt-3 pb-1 flex items-center justify-between">
608
+ <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide">Agents</p>
609
+ <button
610
+ type="button"
611
+ className="text-[11px] text-slate-400 hover:text-slate-600"
612
+ onClick={() => {
613
+ if (exportAgents.size === participants.length) setExportAgents(new Set());
614
+ else setExportAgents(new Set(participants.map((p) => p.id)));
615
+ }}
616
+ >
617
+ {exportAgents.size === participants.length ? "Deselect all" : "Select all"}
618
+ </button>
619
+ </div>
620
+ {participants.map((p) => {
621
+ const selected = exportAgents.has(p.id);
622
+ return (
623
+ <button
624
+ key={p.id}
625
+ type="button"
626
+ 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"}`}
627
+ onClick={() => {
628
+ setExportAgents((prev) => {
629
+ const next = new Set(prev);
630
+ if (next.has(p.id)) next.delete(p.id);
631
+ else next.add(p.id);
632
+ return next;
633
+ });
634
+ }}
635
+ >
636
+ <Checkbox checked={selected} />
637
+ <img src={agentAvatarUrl(p.id, 24, p.color)} alt="" className="w-6 h-6 rounded-full flex-shrink-0" />
638
+ <span className="truncate text-xs font-medium flex-1">{p.name}</span>
639
+ <span className="text-[10px] text-slate-400">{p.provider}</span>
640
+ </button>
641
+ );
642
+ })}
643
+ </div>
644
+
645
+ {/* Options */}
646
+ <div className="px-5 py-3">
647
+ <button
648
+ type="button"
649
+ className={`flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors ${exportIncludeSelf ? "bg-slate-50 text-slate-900" : "text-slate-600 hover:bg-slate-50"}`}
650
+ onClick={() => setExportIncludeSelf(!exportIncludeSelf)}
651
+ >
652
+ <Checkbox checked={exportIncludeSelf} />
653
+ <span className="text-xs font-medium">Include self.md (agent bio)</span>
654
+ </button>
655
+ </div>
656
+ </div>
657
+
658
+ <div className="px-5 py-3 border-t border-slate-100 flex items-center justify-between">
659
+ <span className="text-[11px] text-slate-400">
660
+ {exportAgents.size} {exportAgents.size === 1 ? "agent" : "agents"}
661
+ </span>
662
+ <div className="flex gap-2">
663
+ <button
664
+ type="button"
665
+ className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors"
666
+ onClick={() => setExportModal(false)}
667
+ >
668
+ Cancel
669
+ </button>
670
+ <button
671
+ type="button"
672
+ disabled={exportAgents.size === 0 || exporting}
673
+ 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 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
674
+ onClick={() => void handleExport()}
675
+ >
676
+ <Download size={12} />
677
+ {exporting ? "Exporting..." : "Export"}
678
+ </button>
679
+ </div>
680
+ </div>
681
+ </div>
682
+ </div>
683
+ )}
684
+
685
+ {/* ── Import Modal ──────────────────────────────────────────────────── */}
686
+ {importModal && importBundle && (
687
+ <div
688
+ className="fixed inset-0 z-50 flex items-center justify-center bg-black/30"
689
+ onClick={() => { setImportModal(false); setImportBundle(null); }}
690
+ >
691
+ <div
692
+ className="bg-white rounded-xl shadow-xl border border-slate-200 w-[440px] max-h-[80vh] flex flex-col"
693
+ onClick={(e) => e.stopPropagation()}
694
+ >
695
+ <div className="flex items-center justify-between px-5 py-3.5 border-b border-slate-100">
696
+ <h3 className="text-sm font-medium text-slate-900">Import Agents & Teams</h3>
697
+ <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => { setImportModal(false); setImportBundle(null); }}>
698
+ <X size={16} />
699
+ </button>
700
+ </div>
701
+
702
+ <div className="overflow-y-auto flex-1">
703
+ {/* Bundle info */}
704
+ <div className="px-5 py-3 border-b border-slate-100 bg-slate-50">
705
+ <p className="text-[11px] text-slate-400">
706
+ Exported {new Date(importBundle.exportedAt).toLocaleDateString()} · {importBundle.agents.length} agents, {(importBundle.teams ?? []).length} teams
707
+ </p>
708
+ </div>
709
+
710
+ {/* Agents */}
711
+ <div className="border-b border-slate-100">
712
+ <div className="px-5 pt-3 pb-1 flex items-center justify-between">
713
+ <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide">Agents</p>
714
+ <button
715
+ type="button"
716
+ className="text-[11px] text-slate-400 hover:text-slate-600"
717
+ onClick={() => {
718
+ if (importAgents.size === importBundle.agents.length) setImportAgents(new Set());
719
+ else setImportAgents(new Set(importBundle.agents.map((a) => a.id)));
720
+ }}
721
+ >
722
+ {importAgents.size === importBundle.agents.length ? "Deselect all" : "Select all"}
723
+ </button>
724
+ </div>
725
+ {importBundle.agents.map((a) => {
726
+ const selected = importAgents.has(a.id);
727
+ const existing = participants.find((p) => p.id === a.id);
728
+ return (
729
+ <button
730
+ key={a.id}
731
+ type="button"
732
+ 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"}`}
733
+ onClick={() => {
734
+ setImportAgents((prev) => {
735
+ const next = new Set(prev);
736
+ if (next.has(a.id)) next.delete(a.id);
737
+ else next.add(a.id);
738
+ return next;
739
+ });
740
+ }}
741
+ >
742
+ <Checkbox checked={selected} />
743
+ <img src={agentAvatarUrl(a.id, 24, a.color)} alt="" className="w-6 h-6 rounded-full flex-shrink-0" />
744
+ <div className="min-w-0 flex-1 text-left">
745
+ <div className="truncate text-xs font-medium">{a.name}</div>
746
+ <div className="truncate text-[10px] text-slate-400">{a.provider} · {a.model}</div>
747
+ </div>
748
+ {existing && (
749
+ <span className="text-[10px] px-1.5 py-0.5 rounded bg-amber-50 text-amber-600 flex-shrink-0">
750
+ update
751
+ </span>
752
+ )}
753
+ {!existing && (
754
+ <span className="text-[10px] px-1.5 py-0.5 rounded bg-green-50 text-green-600 flex-shrink-0">
755
+ new
756
+ </span>
757
+ )}
758
+ {a.self && (
759
+ <span className="text-[10px] text-slate-400 flex-shrink-0">+ self.md</span>
760
+ )}
761
+ </button>
762
+ );
763
+ })}
764
+ </div>
765
+
766
+ {/* Teams */}
767
+ {(importBundle.teams ?? []).length > 0 && (
768
+ <div>
769
+ <div className="px-5 pt-3 pb-1">
770
+ <p className="text-[11px] font-medium text-slate-400 uppercase tracking-wide">Teams</p>
771
+ </div>
772
+ {(importBundle.teams ?? []).map((t) => {
773
+ const selected = importTeams.has(t.name);
774
+ return (
775
+ <button
776
+ key={t.name}
777
+ type="button"
778
+ 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"}`}
779
+ onClick={() => {
780
+ setImportTeams((prev) => {
781
+ const next = new Set(prev);
782
+ if (next.has(t.name)) next.delete(t.name);
783
+ else next.add(t.name);
784
+ return next;
785
+ });
786
+ }}
787
+ >
788
+ <Checkbox checked={selected} />
789
+ <Users size={14} className="text-slate-400 flex-shrink-0" />
790
+ <span className="truncate text-xs font-medium flex-1">{t.name}</span>
791
+ <span className="text-[10px] text-slate-400">{t.agentIds.length} agents</span>
792
+ </button>
793
+ );
794
+ })}
795
+ </div>
796
+ )}
797
+ </div>
798
+
799
+ <div className="px-5 py-3 border-t border-slate-100 flex items-center justify-between">
800
+ <span className="text-[11px] text-slate-400">
801
+ {importAgents.size} {importAgents.size === 1 ? "agent" : "agents"}, {importTeams.size} {importTeams.size === 1 ? "team" : "teams"}
802
+ </span>
803
+ <div className="flex gap-2">
804
+ <button
805
+ type="button"
806
+ className="px-3 py-1.5 text-xs text-slate-500 hover:text-slate-700 transition-colors"
807
+ onClick={() => { setImportModal(false); setImportBundle(null); }}
808
+ >
809
+ Cancel
810
+ </button>
811
+ <button
812
+ type="button"
813
+ disabled={importAgents.size === 0 || importing}
814
+ 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 disabled:opacity-40 disabled:cursor-not-allowed transition-colors"
815
+ onClick={() => void handleImport()}
816
+ >
817
+ <Upload size={12} />
818
+ {importing ? "Importing..." : "Import"}
819
+ </button>
820
+ </div>
821
+ </div>
822
+ </div>
823
+ </div>
824
+ )}
825
+
826
+ {/* ── Create Team Modal ────────────────────────────────────────────── */}
827
+ {createModal && (
828
+ <div
829
+ className="fixed inset-0 z-50 flex items-center justify-center bg-black/30"
830
+ onClick={() => setCreateModal(false)}
831
+ >
832
+ <div
833
+ className="bg-white rounded-xl shadow-xl border border-slate-200 w-[420px] max-h-[80vh] flex flex-col"
834
+ onClick={(e) => e.stopPropagation()}
835
+ >
836
+ <div className="flex items-center justify-between px-5 py-3.5 border-b border-slate-100">
837
+ <h3 className="text-sm font-medium text-slate-900">Create team</h3>
838
+ <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setCreateModal(false)}>
839
+ <X size={16} />
840
+ </button>
841
+ </div>
842
+
843
+ <div className="overflow-y-auto flex-1">
844
+ <div className="px-5 py-3 border-b border-slate-100">
845
+ <label className="text-[11px] font-medium text-slate-400 uppercase tracking-wide block mb-1.5">Name</label>
846
+ <input
847
+ autoFocus
848
+ type="text"
849
+ value={createName}
850
+ onChange={(e) => setCreateName(e.target.value)}
851
+ placeholder="e.g. Frontend Crew"
852
+ 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"
853
+ />
854
+ </div>
855
+
856
+ <div className="px-5 py-3 border-b border-slate-100">
857
+ <label className="text-[11px] font-medium text-slate-400 uppercase tracking-wide block mb-1.5">Workspaces</label>
858
+ {threads.length === 0 ? (
859
+ <p className="text-xs text-slate-400">No workspaces available.</p>
860
+ ) : (
861
+ <div className="flex flex-col gap-0.5">
862
+ {threads.map((ws) => {
863
+ const selected = createWorkspaces.has(ws.id);
864
+ const title = ws.title?.trim() || "Untitled";
865
+ return (
866
+ <button
867
+ key={ws.id}
868
+ type="button"
869
+ 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"}`}
870
+ onClick={() => {
871
+ setCreateWorkspaces((prev) => {
872
+ const next = new Set(prev);
873
+ if (next.has(ws.id)) next.delete(ws.id);
874
+ else next.add(ws.id);
875
+ return next;
876
+ });
877
+ }}
878
+ >
879
+ <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"}`}>
880
+ {selected && (
881
+ <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>
882
+ )}
883
+ </div>
884
+ <Hash size={13} className="flex-shrink-0 text-slate-400" />
885
+ <span className="truncate text-xs font-medium">{title}</span>
886
+ </button>
887
+ );
888
+ })}
889
+ </div>
890
+ )}
891
+ </div>
892
+
893
+ <div className="py-1">
894
+ <p className="px-5 py-1.5 text-[11px] font-medium text-slate-400 uppercase tracking-wide">Agents</p>
895
+ {participants.map((p) => {
896
+ const selected = createAgents.has(p.id);
897
+ return (
898
+ <button
899
+ key={p.id}
900
+ type="button"
901
+ 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"}`}
902
+ onClick={() => {
903
+ setCreateAgents((prev) => {
904
+ const next = new Set(prev);
905
+ if (next.has(p.id)) next.delete(p.id);
906
+ else next.add(p.id);
907
+ return next;
908
+ });
909
+ }}
910
+ >
911
+ <Checkbox checked={selected} />
912
+ <img src={agentAvatarUrl(p.id, 24, p.color)} alt="" className="w-6 h-6 rounded-full flex-shrink-0" />
913
+ <span className="truncate text-xs font-medium">{p.name}</span>
914
+ </button>
915
+ );
916
+ })}
917
+ </div>
918
+ </div>
919
+
920
+ <div className="px-5 py-3 border-t border-slate-100 flex justify-end gap-2">
921
+ <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>
922
+ <button
923
+ type="button"
924
+ disabled={!createName.trim()}
925
+ 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"
926
+ onClick={() => void handleCreateSubmit()}
927
+ >
928
+ Create
929
+ </button>
930
+ </div>
931
+ </div>
932
+ </div>
933
+ )}
934
+
935
+ {/* ── Add Agent to Team Modal ──────────────────────────────────────── */}
936
+ {addAgentModal && !creatingNewAgent && (
937
+ <div
938
+ className="fixed inset-0 z-50 flex items-center justify-center bg-black/30"
939
+ onClick={() => setAddAgentModal(null)}
940
+ >
941
+ <div
942
+ className="bg-white rounded-xl shadow-xl border border-slate-200 w-80 max-h-[70vh] flex flex-col"
943
+ onClick={(e) => e.stopPropagation()}
944
+ >
945
+ <div className="flex items-center justify-between px-4 py-3 border-b border-slate-100">
946
+ <h3 className="text-sm font-medium text-slate-900">Add to {addAgentModalTeam?.name ?? "team"}</h3>
947
+ <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setAddAgentModal(null)}><X size={16} /></button>
948
+ </div>
949
+ <div className="overflow-y-auto py-1 flex-1">
950
+ <button
951
+ type="button"
952
+ 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"
953
+ onClick={() => setCreatingNewAgent(true)}
954
+ >
955
+ <Plus size={14} className="text-slate-400" />
956
+ <span className="text-xs font-medium">Create new agent</span>
957
+ </button>
958
+ {addAgentModalAvailable.length === 0 ? (
959
+ <p className="px-4 py-6 text-xs text-slate-400 text-center">All agents are already in this team</p>
960
+ ) : (
961
+ addAgentModalAvailable.map((p) => {
962
+ const selected = addAgentSelection.has(p.id);
963
+ return (
964
+ <button
965
+ key={p.id}
966
+ type="button"
967
+ 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"}`}
968
+ onClick={() => {
969
+ setAddAgentSelection((prev) => {
970
+ const next = new Set(prev);
971
+ if (next.has(p.id)) next.delete(p.id);
972
+ else next.add(p.id);
973
+ return next;
974
+ });
975
+ }}
976
+ >
977
+ <Checkbox checked={selected} />
978
+ <img src={agentAvatarUrl(p.id, 24, p.color)} alt="" className="w-6 h-6 rounded-full flex-shrink-0" />
979
+ <div className="min-w-0 flex-1 text-left">
980
+ <div className="truncate font-medium text-xs">{p.name}</div>
981
+ </div>
982
+ </button>
983
+ );
984
+ })
985
+ )}
986
+ </div>
987
+ {addAgentModalAvailable.length > 0 && (
988
+ <div className="px-4 py-3 border-t border-slate-100 flex justify-end gap-2">
989
+ <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>
990
+ <button
991
+ type="button"
992
+ disabled={addAgentSelection.size === 0}
993
+ 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"
994
+ onClick={() => {
995
+ for (const agentId of addAgentSelection) {
996
+ void addAgentToTeam(addAgentModal.teamId, agentId);
997
+ }
998
+ setAddAgentModal(null);
999
+ }}
1000
+ >
1001
+ Add {addAgentSelection.size > 0 ? `(${addAgentSelection.size})` : ""}
1002
+ </button>
1003
+ </div>
1004
+ )}
1005
+ </div>
1006
+ </div>
1007
+ )}
1008
+
1009
+ {/* ── Create New Agent Modal (AgentForm) ────────────────────────────── */}
1010
+ {creatingNewAgent && (
1011
+ <AgentForm
1012
+ title="Create new agent"
1013
+ initial={{ name: "", provider: "claude", model: "", identity: "", identityFile: "", skills: [], variables: {} }}
1014
+ submitLabel="Create"
1015
+ teams={nonDefaultTeams.map((t) => {
1016
+ const wsName = (t.workspace_ids ?? []).map((wid) => threadById.get(wid)?.title?.trim()).filter(Boolean).join(", ") || "No workspace";
1017
+ return { id: t.id, name: t.name, label: `${wsName} › ${t.name}` };
1018
+ })}
1019
+ initialTeamIds={addAgentModal ? [addAgentModal.teamId] : []}
1020
+ onSubmit={async (data: AgentFormData, teamIds?: string[]) => {
1021
+ const colors = ["#D97706", "#2563EB", "#059669", "#DC2626", "#7C3AED", "#DB2777", "#0891B2"];
1022
+ const color = colors[participants.length % colors.length];
1023
+ const id = data.name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
1024
+ const firstTeamId = teamIds?.[0];
1025
+ const res = await fetch("/api/participants", {
1026
+ method: "POST",
1027
+ headers: { "Content-Type": "application/json" },
1028
+ body: JSON.stringify({
1029
+ id, name: data.name, provider: data.provider, model: data.model, color,
1030
+ ...(data.identity ? { identity: data.identity } : {}),
1031
+ ...(data.identityFile ? { identityFile: data.identityFile } : {}),
1032
+ skills: data.skills,
1033
+ variables: data.variables,
1034
+ ...(firstTeamId ? { teamId: firstTeamId } : {}),
1035
+ }),
1036
+ });
1037
+ if (res.ok) {
1038
+ for (const tid of (teamIds ?? []).slice(1)) {
1039
+ await addAgentToTeam(tid, id);
1040
+ }
1041
+ setCreatingNewAgent(false);
1042
+ setAddAgentModal(null);
1043
+ refreshParticipants();
1044
+ refreshTeams();
1045
+ }
1046
+ }}
1047
+ onCancel={() => { setCreatingNewAgent(false); }}
1048
+ />
1049
+ )}
1050
+
1051
+ {/* ── Rename Team Modal ────────────────────────────────────────────── */}
1052
+ {renameModal && (
1053
+ <div
1054
+ className="fixed inset-0 z-50 flex items-center justify-center bg-black/30"
1055
+ onClick={() => setRenameModal(null)}
1056
+ >
1057
+ <div
1058
+ className="bg-white rounded-xl shadow-xl border border-slate-200 w-80 flex flex-col"
1059
+ onClick={(e) => e.stopPropagation()}
1060
+ >
1061
+ <div className="flex items-center justify-between px-4 py-3 border-b border-slate-100">
1062
+ <h3 className="text-sm font-medium text-slate-900">Rename team</h3>
1063
+ <button type="button" className="text-slate-400 hover:text-slate-600" onClick={() => setRenameModal(null)}><X size={16} /></button>
1064
+ </div>
1065
+ <form
1066
+ className="px-4 py-4 flex flex-col gap-3"
1067
+ onSubmit={(e) => { e.preventDefault(); void handleRenameSubmit(); }}
1068
+ >
1069
+ <input
1070
+ autoFocus
1071
+ type="text"
1072
+ value={renameValue}
1073
+ onChange={(e) => setRenameValue(e.target.value)}
1074
+ placeholder="Team name"
1075
+ 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"
1076
+ />
1077
+ <div className="flex justify-end gap-2">
1078
+ <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>
1079
+ <button
1080
+ type="submit"
1081
+ disabled={!renameValue.trim() || renameValue.trim() === renameModal.currentName}
1082
+ 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"
1083
+ >
1084
+ Save
1085
+ </button>
1086
+ </div>
1087
+ </form>
1088
+ </div>
1089
+ </div>
1090
+ )}
1091
+ </div>
1092
+ );
1093
+ }