@mndrk/agx 2.0.26 → 2.0.32

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 (831) hide show
  1. package/README.md +4 -6
  2. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +6 -0
  4. package/cloud-runtime/standalone/.next/build-manifest.json +4 -4
  5. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  6. package/cloud-runtime/standalone/.next/required-server-files.json +4 -4
  7. package/cloud-runtime/standalone/.next/routes-manifest.json +45 -0
  8. package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  28. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +2 -2
  30. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  34. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  35. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  37. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  38. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  39. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +2 -2
  41. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +2 -2
  43. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +2 -2
  45. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +4 -3
  47. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +3 -3
  49. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +7 -4
  51. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/app-paths-manifest.json +3 -0
  53. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/build-manifest.json +11 -0
  54. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/server-reference-manifest.json +4 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +8 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.map +5 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route_client-reference-manifest.js +2 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/app-paths-manifest.json +3 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/build-manifest.json +11 -0
  61. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/server-reference-manifest.json +4 -0
  62. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +7 -0
  63. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.map +5 -0
  64. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -0
  65. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route_client-reference-manifest.js +2 -0
  66. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/app-paths-manifest.json +3 -0
  67. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/build-manifest.json +11 -0
  68. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/server-reference-manifest.json +4 -0
  69. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +8 -0
  70. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.map +5 -0
  71. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -0
  72. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route_client-reference-manifest.js +2 -0
  73. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -2
  75. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +5 -4
  77. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +5 -4
  81. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  84. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +2 -2
  86. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +2 -2
  89. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +2 -2
  91. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +3 -3
  93. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +3 -3
  95. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +5 -4
  97. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +4 -3
  99. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +3 -3
  101. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +3 -3
  103. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +4 -4
  105. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +4 -4
  107. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +4 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +4 -3
  111. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +3 -3
  113. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +3 -3
  115. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +3 -3
  117. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +4 -3
  119. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +3 -3
  123. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +5 -4
  125. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +3 -3
  128. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +5 -4
  130. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -3
  132. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +4 -3
  134. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  139. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +6 -5
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +6 -5
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +5 -4
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +4 -3
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +4 -4
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +5 -5
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +5 -5
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +2 -2
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +5 -5
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +4 -3
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +4 -3
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +5 -5
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +6 -5
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +4 -3
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +2 -2
  173. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +2 -2
  175. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +5 -4
  177. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +4 -3
  179. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +3 -3
  183. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +7 -6
  185. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  186. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +7 -6
  187. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +6 -5
  189. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +6 -5
  191. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +7 -6
  193. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +8 -6
  195. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -3
  197. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +5 -4
  199. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  200. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  201. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +5 -4
  203. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  204. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js +2 -2
  205. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/app-paths-manifest.json +3 -0
  207. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/build-manifest.json +11 -0
  208. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/server-reference-manifest.json +4 -0
  209. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +10 -0
  210. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.map +5 -0
  211. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -0
  212. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route_client-reference-manifest.js +2 -0
  213. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +5 -2
  214. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +5 -4
  216. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +2 -2
  218. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  221. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  222. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  223. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  225. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  226. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  227. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +2 -2
  229. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  231. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  232. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  233. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  237. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
  240. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  242. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
  243. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  244. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  245. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  247. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  249. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  250. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  251. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  252. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  253. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  254. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  256. package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  258. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +2 -2
  260. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/app-paths-manifest.json +3 -0
  263. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/build-manifest.json +18 -0
  264. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/next-font-manifest.json +11 -0
  265. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/react-loadable-manifest.json +1 -0
  266. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/server-reference-manifest.json +4 -0
  267. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js +16 -0
  268. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.map +5 -0
  269. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -0
  270. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +2 -0
  271. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +2 -2
  272. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  273. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  274. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/app-paths-manifest.json +3 -0
  275. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +18 -0
  276. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +11 -0
  277. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/react-loadable-manifest.json +1 -0
  278. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/server-reference-manifest.json +4 -0
  279. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js +16 -0
  280. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.map +5 -0
  281. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -0
  282. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +2 -0
  283. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +2 -2
  284. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  285. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  286. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  287. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +3 -3
  288. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  289. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  290. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  291. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  292. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  293. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  294. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  295. package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  296. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  297. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  298. package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
  299. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  300. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  301. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  302. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  303. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  304. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  305. package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +2 -2
  306. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  307. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  308. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  309. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  310. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  311. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  312. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  313. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  314. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  315. package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +2 -2
  316. package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
  317. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  318. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  319. package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
  320. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
  321. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  322. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  323. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  324. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  325. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  326. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +2 -2
  327. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  328. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  329. package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +2 -2
  330. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  331. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  332. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  333. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  334. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  335. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  336. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  337. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  338. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  339. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  340. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +6 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__017f03c3._.js +13 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +46 -0
  343. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__10940c29._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12afd8a3._.js +3 -0
  345. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +29 -0
  346. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__16dd1fd7._.js +13 -0
  347. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +52 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1dd062c1._.js +1 -1
  349. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +55 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2388b2b3._.js +3 -0
  351. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__241a8bcf._.js +1 -1
  352. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +20 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29ce9c60._.js +3 -0
  354. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2e596cc8._.js +4 -4
  355. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +2 -2
  356. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +14 -14
  357. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__399b2ca9._.js +3 -0
  358. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +8 -0
  359. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +52 -0
  360. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c50f159._.js +4 -4
  361. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c8624cc._.js +3 -0
  362. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d318eb0._.js +146 -0
  363. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__507a4363._.js +4 -0
  364. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +3 -0
  365. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +5 -1
  366. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59b5d4e5._.js +1 -1
  367. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5ca87ba0._.js +3 -0
  368. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5d359afa._.js +46 -0
  369. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__666f8712._.js +3 -0
  370. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c187704._.js +3 -0
  371. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c26221d._.js +7 -0
  372. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6e59b27c._.js +3 -0
  373. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74b97f0a._.js +1 -1
  374. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75bff965._.js +46 -0
  375. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +8 -8
  376. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__80655727._.js +3 -0
  377. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__86f7d27b._.js +3 -0
  378. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__94fa1edc._.js +46 -0
  379. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98535eb3._.js +3 -0
  380. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9dfaaf72._.js +52 -0
  381. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a189593a._.js +3 -0
  382. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +52 -0
  383. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b40c7aab._.js +1 -1
  384. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4d05543._.js +1 -1
  385. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +52 -0
  386. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c08bef05._.js +3 -0
  387. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5634f17._.js +112 -0
  388. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5b8ceb7._.js +3 -0
  389. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccfcbcd5._.js +42 -0
  390. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +3 -0
  391. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da20a0aa._.js +1 -1
  392. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dede3dcd._.js +75 -0
  393. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e122cae2._.js +3 -0
  394. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +25 -0
  395. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e446cb39._.js +3 -0
  396. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e6ad07c3._.js +1 -1
  397. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b70b67._.js +46 -0
  398. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5a2358a._.js +7 -0
  399. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5b93200._.js +3 -0
  400. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa0ebee3._.js +13 -0
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +15 -0
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fce2cdce._.js +3 -0
  403. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +3 -0
  404. package/cloud-runtime/standalone/.next/server/chunks/_05fa3b89._.js +46 -0
  405. package/cloud-runtime/standalone/.next/server/chunks/_0a767dfe._.js +3 -0
  406. package/cloud-runtime/standalone/.next/server/chunks/_2f3e5ac1._.js +6 -0
  407. package/cloud-runtime/standalone/.next/server/chunks/_3e0d34cc._.js +97 -0
  408. package/cloud-runtime/standalone/.next/server/chunks/_4190f170._.js +46 -0
  409. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a104cda8._.js → _42e9c8d5._.js} +7 -7
  410. package/cloud-runtime/standalone/.next/server/chunks/_5ca51127._.js +54 -0
  411. package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +57 -0
  412. package/cloud-runtime/standalone/.next/server/chunks/_6bb93816._.js +6 -0
  413. package/cloud-runtime/standalone/.next/server/chunks/_7011db4f._.js +3 -0
  414. package/cloud-runtime/standalone/.next/server/chunks/_8b9fde82._.js +97 -0
  415. package/cloud-runtime/standalone/.next/server/chunks/_95ac98db._.js +49 -0
  416. package/cloud-runtime/standalone/.next/server/chunks/_994414cd._.js +54 -0
  417. package/cloud-runtime/standalone/.next/server/chunks/_99b78daf._.js +46 -0
  418. package/cloud-runtime/standalone/.next/server/chunks/_a877d34f._.js +6 -0
  419. package/cloud-runtime/standalone/.next/server/chunks/_affbdbb0._.js +46 -0
  420. package/cloud-runtime/standalone/.next/server/chunks/_c31ca6ab._.js +3 -0
  421. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
  422. package/cloud-runtime/standalone/.next/server/chunks/_ee99a36b._.js +6 -0
  423. package/cloud-runtime/standalone/.next/server/chunks/_efc73784._.js +46 -0
  424. package/cloud-runtime/standalone/.next/server/chunks/_fba13a4a._.js +6 -0
  425. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_route_actions_033ac330.js +3 -0
  426. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_signal_route_actions_4b56f1cd.js +3 -0
  427. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_route_actions_0c8cd01c.js +3 -0
  428. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_threads_knowledge_route_actions_c139bcf7.js +3 -0
  429. package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +57 -0
  430. package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +18 -0
  431. package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
  432. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +68 -23
  433. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +74 -30
  434. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +70 -31
  435. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +87 -17
  436. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +294 -0
  437. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0f808fa3.js +3 -0
  438. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_2bdede98.js +3 -0
  439. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +50 -43
  440. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3d31fed0.js +3 -0
  441. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_57a073eb.js +3 -0
  442. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +3 -0
  443. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7f8022ab.js +3 -0
  444. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_84e28f38.js +3 -0
  445. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_8ec90680.js +3 -0
  446. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_a590fcd6.js +3 -0
  447. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cc6c687d.js +3 -0
  448. package/cloud-runtime/standalone/.next/server/chunks/src_graph_14067235._.js +46 -0
  449. package/cloud-runtime/standalone/.next/server/chunks/src_graph_api-route-utils_ts_b7225a0e._.js +1 -1
  450. package/cloud-runtime/standalone/.next/server/chunks/src_graph_b63e2d39._.js +46 -0
  451. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +3 -3
  452. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_a8bc8d58._.js +1 -1
  453. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1322ced8._.js +3 -0
  454. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
  455. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6e83bf83._.js +3 -0
  456. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__783669c3._.js +3 -0
  457. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +3 -0
  458. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9166c1d6._.js +3 -0
  459. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a0a1cb74._.js +3 -0
  460. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a8a8afdc._.js +3 -0
  461. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__fca7df40._.js +3 -0
  462. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27f9c020._.js → _0061ebd8._.js} +2 -2
  463. package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +3 -0
  464. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0f4e70b1._.js +3 -0
  465. package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +3 -0
  466. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27cb3359._.js → _5b2b8a85._.js} +2 -2
  467. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a696e9b3._.js → _68ac991e._.js} +2 -2
  468. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6de3f1de._.js +3 -0
  469. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_c838f593._.js → _6fc3736e._.js} +2 -2
  470. package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +8 -0
  471. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a0cc0fe7._.js +3 -0
  472. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a10eb951._.js +4 -0
  473. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cb4d8a23._.js +4 -0
  474. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6a367524._.js → _ccb409c5._.js} +2 -2
  475. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +1 -1
  476. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_d021529a._.js → _fb292eed._.js} +2 -2
  477. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_4b5d7c9b._.js → _ff5799d6._.js} +2 -2
  478. package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_knowledge_page_actions_1037c40a.js +3 -0
  479. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
  480. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_graph_[taskId]_page_tsx_d8b1d582._.js +1 -1
  481. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +3 -0
  482. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_welcome_page_tsx_6c79bc59._.js +3 -0
  483. package/cloud-runtime/standalone/.next/server/chunks/ssr/ce889_server_app_projects_[slug]_thread_[threadId]_page_actions_660a8857.js +3 -0
  484. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +5 -5
  485. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  486. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e70f9321._.js +3 -0
  487. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +3 -0
  488. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +4 -0
  489. package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +2 -2
  490. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  491. package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
  492. package/cloud-runtime/standalone/.next/server/next-font-manifest.json +8 -0
  493. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  494. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  495. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  496. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  497. package/cloud-runtime/standalone/.next/static/chunks/{b5bd2eb6e0c7f71a.js → 010aff7b601302de.js} +3 -3
  498. package/cloud-runtime/standalone/.next/static/chunks/0c467f54bc78a380.js +1 -0
  499. package/cloud-runtime/standalone/.next/static/chunks/1f415d0ce7ebbd08.js +8 -0
  500. package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +1 -0
  501. package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +1 -0
  502. package/cloud-runtime/standalone/.next/static/chunks/{e44264686aa5ecbf.js → 4200b512bdc226bc.js} +1 -1
  503. package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +1 -0
  504. package/cloud-runtime/standalone/.next/static/chunks/486bf7ff282b91a6.js +5 -0
  505. package/cloud-runtime/standalone/.next/static/chunks/{616d66dbec9e4b8b.js → 58025a80caa3629d.js} +1 -1
  506. package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +1 -0
  507. package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +1 -0
  508. package/cloud-runtime/standalone/.next/static/chunks/{45b4d0ee5c92d45b.js → 6fbe08eab578c7d3.js} +1 -1
  509. package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +1 -0
  510. package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +1 -0
  511. package/cloud-runtime/standalone/.next/static/chunks/{b4e298542d366e31.js → 87f099ea02aa419d.js} +1 -1
  512. package/cloud-runtime/standalone/.next/static/chunks/8d15ced2dc70090a.js +1 -0
  513. package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +1 -0
  514. package/cloud-runtime/standalone/.next/static/chunks/a66e1891e808a664.js +1 -0
  515. package/cloud-runtime/standalone/.next/static/chunks/{3344004561eabdf8.js → bc3cad3c821b169b.js} +1 -1
  516. package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +1 -0
  517. package/cloud-runtime/standalone/.next/static/chunks/cd308f61797939cd.js +6 -0
  518. package/cloud-runtime/standalone/.next/static/chunks/d5d6be8239e57c56.js +1 -0
  519. package/cloud-runtime/standalone/.next/static/chunks/{ee5f1457fbc593e1.js → dfff51033c303fc7.js} +1 -1
  520. package/cloud-runtime/standalone/.next/static/chunks/e62d5fa120fdf21f.js +1 -0
  521. package/cloud-runtime/standalone/.next/static/chunks/{turbopack-5b5918f610666d2d.js → turbopack-97e846241a3a64af.js} +1 -1
  522. package/cloud-runtime/standalone/README.md +3 -3
  523. package/cloud-runtime/standalone/app/api/chat/route.ts +38 -28
  524. package/cloud-runtime/standalone/app/api/chat-runs/[id]/route.ts +19 -0
  525. package/cloud-runtime/standalone/app/api/chat-runs/[id]/signal/route.ts +32 -0
  526. package/cloud-runtime/standalone/app/api/chat-runs/route.ts +37 -0
  527. package/cloud-runtime/standalone/app/api/history/route.ts +6 -0
  528. package/cloud-runtime/standalone/app/api/projects/[id]/memory/route.ts +17 -0
  529. package/cloud-runtime/standalone/app/api/providers/route.ts +9 -13
  530. package/cloud-runtime/standalone/app/api/schedules/debug/route.ts +23 -3
  531. package/cloud-runtime/standalone/app/api/schedules/poll/route.ts +5 -3
  532. package/cloud-runtime/standalone/app/api/schedules/route.ts +12 -17
  533. package/cloud-runtime/standalone/app/api/status/route.ts +6 -5
  534. package/cloud-runtime/standalone/app/api/threads/knowledge/route.ts +91 -0
  535. package/cloud-runtime/standalone/app/api/threads/route.ts +18 -1
  536. package/cloud-runtime/standalone/app/globals.css +1 -4
  537. package/cloud-runtime/standalone/app/projects/[slug]/graph/[taskId]/page.tsx +0 -21
  538. package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +608 -0
  539. package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +18 -2
  540. package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +1 -455
  541. package/cloud-runtime/standalone/app/projects/[slug]/thread/[threadId]/page.tsx +14 -0
  542. package/cloud-runtime/standalone/app/welcome/page.tsx +329 -107
  543. package/cloud-runtime/standalone/components/ActionToolbar.tsx +3 -3
  544. package/cloud-runtime/standalone/components/ConfirmDialog.tsx +133 -0
  545. package/cloud-runtime/standalone/components/IconButton.tsx +3 -3
  546. package/cloud-runtime/standalone/components/ProjectModal.tsx +2 -2
  547. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +415 -76
  548. package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +149 -97
  549. package/cloud-runtime/standalone/components/chat-ui/ThreadView.tsx +73 -34
  550. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +51 -23
  551. package/cloud-runtime/standalone/hooks/useComposerHistory.ts +130 -0
  552. package/cloud-runtime/standalone/hooks/useGroupChat.ts +24 -1
  553. package/cloud-runtime/standalone/hooks/useProcessPolling.ts +69 -6
  554. package/cloud-runtime/standalone/lib/history-store.ts +532 -38
  555. package/cloud-runtime/standalone/lib/knowledge-notes.ts +251 -0
  556. package/cloud-runtime/standalone/lib/knowledge-store.ts +233 -0
  557. package/cloud-runtime/standalone/lib/memory-extractor.ts +76 -60
  558. package/cloud-runtime/standalone/lib/mesh-core/journal.ts +30 -0
  559. package/cloud-runtime/standalone/lib/mesh-core/self.ts +94 -0
  560. package/cloud-runtime/standalone/lib/orchestrator/chat-activities.ts +60 -0
  561. package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +168 -0
  562. package/cloud-runtime/standalone/lib/orchestrator/chat-types.ts +29 -0
  563. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +20 -0
  564. package/cloud-runtime/standalone/lib/provider-clis.ts +63 -0
  565. package/cloud-runtime/standalone/lib/queue/boss.ts +2 -1
  566. package/cloud-runtime/standalone/lib/repo-knowledge.ts +19 -2
  567. package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +78 -0
  568. package/cloud-runtime/standalone/lib/stream-multiplexer.ts +101 -14
  569. package/cloud-runtime/standalone/lib/task-context.ts +7 -4
  570. package/cloud-runtime/standalone/lib/thread-knowledge-runs.ts +227 -0
  571. package/cloud-runtime/standalone/lib/thread-knowledge.ts +419 -0
  572. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/README.md +2 -2
  573. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
  574. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
  575. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/package.json +11 -5
  576. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  577. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  578. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  579. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  580. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  581. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  582. package/cloud-runtime/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  583. package/cloud-runtime/standalone/node_modules/@img/{sharp-darwin-arm64 → sharp-linux-x64}/package.json +13 -7
  584. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  585. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  586. package/cloud-runtime/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  587. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/build/Release/better_sqlite3.node +0 -0
  588. package/cloud-runtime/standalone/package-lock.json +13 -0
  589. package/cloud-runtime/standalone/package.json +1 -0
  590. package/cloud-runtime/standalone/server.js +1 -1
  591. package/cloud-runtime/standalone/src/graph/api-schemas.ts +2 -2
  592. package/cloud-runtime/standalone/src/graph/executor.ts +9 -7
  593. package/cloud-runtime/standalone/src/graph/function-executor.ts +4 -1
  594. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +174 -0
  595. package/cloud-runtime/standalone/src/graph/types.ts +3 -3
  596. package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +5 -1
  597. package/cloud-runtime/standalone/tsconfig.json +3 -1
  598. package/cloud-runtime/standalone/worker/index.js +2930 -137
  599. package/cloud-runtime/standalone/worker/index.ts +8 -1
  600. package/package.json +1 -1
  601. package/cloud-runtime/standalone/.next/server/chunks/[externals]_child_process_964038fc._.js +0 -3
  602. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__03a1bf91._.js +0 -6
  603. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__065c5114._.js +0 -3
  604. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__07dce481._.js +0 -3
  605. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__09f46c85._.js +0 -46
  606. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__149bcf6d._.js +0 -115
  607. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14bad16e._.js +0 -3
  608. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14e3bf74._.js +0 -3
  609. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1632828c._.js +0 -46
  610. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__24b8ccd3._.js +0 -52
  611. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__284e1cbe._.js +0 -3
  612. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__28d6e806._.js +0 -3
  613. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2bcb75a7._.js +0 -3
  614. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__32e5f341._.js +0 -4
  615. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b4a126a._.js +0 -46
  616. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c7464e8._.js +0 -46
  617. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d82dc78._.js +0 -46
  618. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__406bdd54._.js +0 -46
  619. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__40d6458a._.js +0 -3
  620. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__47ca4946._.js +0 -3
  621. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__49fb4a12._.js +0 -3
  622. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5327e395._.js +0 -46
  623. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__55d75c3a._.js +0 -7
  624. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__592e81f9._.js +0 -13
  625. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5a6a194c._.js +0 -52
  626. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5af16b4f._.js +0 -3
  627. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__60ba5058._.js +0 -3
  628. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6716441c._.js +0 -3
  629. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__673aedc6._.js +0 -3
  630. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a44c891._.js +0 -3
  631. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6b680112._.js +0 -55
  632. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7312fad4._.js +0 -46
  633. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7456196c._.js +0 -52
  634. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74d26856._.js +0 -3
  635. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__772c6fae._.js +0 -3
  636. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__787ba54b._.js +0 -3
  637. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__79157eef._.js +0 -3
  638. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__82d76712._.js +0 -3
  639. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8311f060._.js +0 -6
  640. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__84e90655._.js +0 -46
  641. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__90a887dc._.js +0 -3
  642. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9345d703._.js +0 -3
  643. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98294450._.js +0 -3
  644. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__985f0d9f._.js +0 -51
  645. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9b32295e._.js +0 -3
  646. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a64d978e._.js +0 -6
  647. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__babcd1af._.js +0 -13
  648. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c16f03fb._.js +0 -13
  649. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c2767ca5._.js +0 -3
  650. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c72c6d4a._.js +0 -25
  651. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ca851b15._.js +0 -3
  652. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d25227df._.js +0 -29
  653. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e06820c3._.js +0 -6
  654. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e429a0bc._.js +0 -3
  655. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4397d43._.js +0 -7
  656. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ec8735f4._.js +0 -3
  657. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef09ab99._.js +0 -13
  658. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f366a937._.js +0 -46
  659. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fdaa8a27._.js +0 -3
  660. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fddde532._.js +0 -3
  661. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff53f445._.js +0 -3
  662. package/cloud-runtime/standalone/.next/server/chunks/_1111d342._.js +0 -101
  663. package/cloud-runtime/standalone/.next/server/chunks/_4b60ba15._.js +0 -49
  664. package/cloud-runtime/standalone/.next/server/chunks/_54252651._.js +0 -49
  665. package/cloud-runtime/standalone/.next/server/chunks/_818a89c4._.js +0 -46
  666. package/cloud-runtime/standalone/.next/server/chunks/_a4a21d4f._.js +0 -3
  667. package/cloud-runtime/standalone/.next/server/chunks/_a759d52b._.js +0 -3
  668. package/cloud-runtime/standalone/.next/server/chunks/_e6b28eae._.js +0 -46
  669. package/cloud-runtime/standalone/.next/server/chunks/_e868e7c1._.js +0 -46
  670. package/cloud-runtime/standalone/.next/server/chunks/lib_23509137._.js +0 -196
  671. package/cloud-runtime/standalone/.next/server/chunks/lib_3273d5f9._.js +0 -196
  672. package/cloud-runtime/standalone/.next/server/chunks/lib_50ba0b4c._.js +0 -63
  673. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_33963d95.js +0 -3
  674. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_56c5acb3.js +0 -3
  675. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_888b3578.js +0 -3
  676. package/cloud-runtime/standalone/.next/server/chunks/src_graph_e3bb4da8._.js +0 -46
  677. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__113d6767._.js +0 -3
  678. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a9d3855._.js +0 -3
  679. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__942ca438._.js +0 -3
  680. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce3b51aa._.js +0 -3
  681. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1ec61dee._.js +0 -3
  682. package/cloud-runtime/standalone/.next/server/chunks/ssr/_27904584._.js +0 -3
  683. package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +0 -3
  684. package/cloud-runtime/standalone/.next/server/chunks/ssr/_94effa0f._.js +0 -3
  685. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d458d1eb._.js +0 -3
  686. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fbced30b._.js +0 -3
  687. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_page_tsx_e0fabf6e._.js +0 -8
  688. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_a8f86889._.js +0 -3
  689. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_play_6595a532.js +0 -3
  690. package/cloud-runtime/standalone/.next/static/chunks/1184bf1bfdf97666.js +0 -1
  691. package/cloud-runtime/standalone/.next/static/chunks/4c01a5f19f9e775e.js +0 -8
  692. package/cloud-runtime/standalone/.next/static/chunks/5ace4b4f4475962a.js +0 -1
  693. package/cloud-runtime/standalone/.next/static/chunks/6509f7fecbf44493.js +0 -1
  694. package/cloud-runtime/standalone/.next/static/chunks/661090206d8bae9b.css +0 -1
  695. package/cloud-runtime/standalone/.next/static/chunks/6dbf5940e30fa9c7.js +0 -1
  696. package/cloud-runtime/standalone/.next/static/chunks/7e91f395ace1dd2c.js +0 -1
  697. package/cloud-runtime/standalone/.next/static/chunks/7f13efe9329d3f97.js +0 -1
  698. package/cloud-runtime/standalone/.next/static/chunks/80219bbddcf65109.js +0 -1
  699. package/cloud-runtime/standalone/.next/static/chunks/86ace6febb11ad71.js +0 -1
  700. package/cloud-runtime/standalone/.next/static/chunks/b079c677d9b39f98.js +0 -5
  701. package/cloud-runtime/standalone/.next/static/chunks/b88352740262931f.js +0 -6
  702. package/cloud-runtime/standalone/.next/static/chunks/c5609fd2abb65850.js +0 -1
  703. package/cloud-runtime/standalone/.next/static/chunks/d95cd010361834be.js +0 -1
  704. package/cloud-runtime/standalone/.next/static/chunks/f7bbf5cfcfed8ba9.js +0 -1
  705. package/cloud-runtime/standalone/coverage/clover.xml +0 -1208
  706. package/cloud-runtime/standalone/coverage/coverage-final.json +0 -29
  707. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +0 -116
  708. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +0 -208
  709. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +0 -116
  710. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +0 -166
  711. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +0 -116
  712. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +0 -532
  713. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +0 -116
  714. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +0 -178
  715. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +0 -116
  716. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +0 -262
  717. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +0 -116
  718. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +0 -448
  719. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +0 -116
  720. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +0 -331
  721. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +0 -116
  722. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +0 -505
  723. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +0 -116
  724. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +0 -412
  725. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +0 -116
  726. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +0 -304
  727. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +0 -116
  728. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +0 -116
  729. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +0 -202
  730. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +0 -373
  731. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +0 -116
  732. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +0 -499
  733. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +0 -116
  734. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +0 -349
  735. package/cloud-runtime/standalone/coverage/lcov-report/base.css +0 -224
  736. package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +0 -87
  737. package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +0 -259
  738. package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +0 -1228
  739. package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +0 -1024
  740. package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +0 -211
  741. package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +0 -535
  742. package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +0 -415
  743. package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +0 -358
  744. package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +0 -439
  745. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +0 -514
  746. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +0 -256
  747. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +0 -622
  748. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +0 -253
  749. package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +0 -281
  750. package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
  751. package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +0 -116
  752. package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +0 -1042
  753. package/cloud-runtime/standalone/coverage/lcov-report/index.html +0 -341
  754. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +0 -202
  755. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +0 -172
  756. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +0 -265
  757. package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +0 -1252
  758. package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +0 -131
  759. package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +0 -409
  760. package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +0 -1165
  761. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +0 -175
  762. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +0 -157
  763. package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +0 -1
  764. package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +0 -2
  765. package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  766. package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +0 -210
  767. package/cloud-runtime/standalone/coverage/lcov.info +0 -2386
  768. package/cloud-runtime/standalone/docs/LIMITS.md +0 -63
  769. package/cloud-runtime/standalone/docs/architecture/ADR-001-hybrid-to-full-sqlite.md +0 -345
  770. package/cloud-runtime/standalone/docs/baseline/baseline-report.json +0 -1009
  771. package/cloud-runtime/standalone/docs/baseline/critical-queries.md +0 -105
  772. package/cloud-runtime/standalone/docs/baseline/lock-metrics.json +0 -21
  773. package/cloud-runtime/standalone/docs/baseline/read-latency.json +0 -146
  774. package/cloud-runtime/standalone/docs/baseline/restore-time.json +0 -10
  775. package/cloud-runtime/standalone/docs/baseline/write-metrics.json +0 -803
  776. package/cloud-runtime/standalone/docs/decisions/sqlite-migration-adr.md +0 -327
  777. package/cloud-runtime/standalone/docs/error-code-mapping.md +0 -74
  778. package/cloud-runtime/standalone/docs/migration-plan.md +0 -120
  779. package/cloud-runtime/standalone/docs/migration-spec.md +0 -345
  780. package/cloud-runtime/standalone/docs/pg-sqlite-compatibility-matrix.md +0 -554
  781. package/cloud-runtime/standalone/docs/project-agent-migration-status.md +0 -229
  782. package/cloud-runtime/standalone/docs/runbook-shadow-read.md +0 -66
  783. package/cloud-runtime/standalone/docs/runbook.md +0 -155
  784. package/cloud-runtime/standalone/docs/specs/cli-postgres-removal.md +0 -69
  785. package/cloud-runtime/standalone/docs/specs/thread-mentions.md +0 -53
  786. package/cloud-runtime/standalone/docs/ux/GlobalChatFlow.storyboard +0 -23
  787. package/cloud-runtime/standalone/docs/ux/assistant-chat-cli.md +0 -32
  788. package/cloud-runtime/standalone/mcp/dist/constants.js +0 -66
  789. package/cloud-runtime/standalone/mcp/dist/db.js +0 -220
  790. package/cloud-runtime/standalone/mcp/dist/index.js +0 -7
  791. package/cloud-runtime/standalone/mcp/dist/security.js +0 -18
  792. package/cloud-runtime/standalone/mcp/dist/server.js +0 -240
  793. package/cloud-runtime/standalone/mcp/dist/task-context.js +0 -287
  794. package/cloud-runtime/standalone/mcp/dist/test-client.js +0 -82
  795. package/cloud-runtime/standalone/mcp/dist/tools/audit.js +0 -69
  796. package/cloud-runtime/standalone/mcp/dist/tools/learnings.js +0 -88
  797. package/cloud-runtime/standalone/mcp/dist/tools/queue.js +0 -312
  798. package/cloud-runtime/standalone/mcp/dist/tools/tasks.js +0 -244
  799. package/cloud-runtime/standalone/mcp/dist/types.js +0 -74
  800. package/cloud-runtime/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  801. package/cloud-runtime/standalone/notes/comments-context-demo.md +0 -141
  802. package/cloud-runtime/standalone/notes/comments-context-plan.md +0 -119
  803. package/cloud-runtime/standalone/notes/context-audit.md +0 -21
  804. package/cloud-runtime/standalone/notes/project-layer-plan.md +0 -30
  805. package/cloud-runtime/standalone/notes/project-layer.md +0 -123
  806. package/cloud-runtime/standalone/notes/temporal-migration-design.md +0 -199
  807. package/cloud-runtime/standalone/playwright-report/data/00d55996f37c1506b90144c85493dd85032c13e5.png +0 -0
  808. package/cloud-runtime/standalone/playwright-report/data/0b9d409e57237ae111d7ba258d3dfe64dc368456.png +0 -0
  809. package/cloud-runtime/standalone/playwright-report/data/b33d5e80a15bd1deda4415b9d318ef73f581c950.png +0 -0
  810. package/cloud-runtime/standalone/playwright-report/data/b55684161aa440d0614595e13c91338f0420abbb.md +0 -131
  811. package/cloud-runtime/standalone/playwright-report/data/b9913957ae07e7565c38ddd71215be79b1ceb017.png +0 -0
  812. package/cloud-runtime/standalone/playwright-report/data/c3538be8ebbebc9fe4a7df8f12f04483af4a0d91.png +0 -0
  813. package/cloud-runtime/standalone/playwright-report/data/fe638f64ff5e36f1c30325564565662d3f57da87.md +0 -180
  814. package/cloud-runtime/standalone/playwright-report/index.html +0 -85
  815. package/cloud-runtime/standalone/test-results/auth-Authentication-Flow-S-aff25-sion-across-page-navigation-chromium/test-failed-1.png +0 -0
  816. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/error-context.md +0 -131
  817. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/test-failed-1.png +0 -0
  818. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/error-context.md +0 -180
  819. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/test-failed-1.png +0 -0
  820. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/error-context.md +0 -180
  821. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/test-failed-1.png +0 -0
  822. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/error-context.md +0 -180
  823. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/test-failed-1.png +0 -0
  824. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-Display-shows-task-count-per-column-chromium/test-failed-1.png +0 -0
  825. package/cloud-runtime/standalone/test-results/kanban-Task-Lifecycle-can-advance-task-through-all-stages-chromium/test-failed-1.png +0 -0
  826. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +0 -1
  827. /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_buildManifest.js +0 -0
  828. /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_clientMiddlewareManifest.json +0 -0
  829. /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_ssgManifest.js +0 -0
  830. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/index.js +0 -0
  831. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/versions.json +0 -0
@@ -0,0 +1,8 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,37452,e=>{e.v({fileMentionFadeIn:"FileMentionPopover-module__1CTxzW__fileMentionFadeIn",popover:"FileMentionPopover-module__1CTxzW__popover"})},30426,e=>{"use strict";var t=e.i(18050),a=e.i(71645),r=e.i(18566);function s(e){return`threadId=${encodeURIComponent(e)}`}function l(e){return`workspaceId=${encodeURIComponent(e)}`}var n=e.i(50030),i=e.i(16625),o=e.i(68542),d=e.i(22016),c=e.i(14065),u=e.i(25459),p=e.i(29415);function m(){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px] ml-1",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})}function h({participantId:e,participantName:a,participantColor:r,content:s}){let l=(0,p.stripMarkers)(s),n=l.length>0;return(0,t.jsxs)("div",{className:"flex gap-4 py-4 group transition-colors animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,t.jsx)(d.default,{href:`/agents/${e}`,className:"w-9 h-9 rounded-full bg-[var(--muted)] overflow-hidden shrink-0 shadow-sm border border-[var(--border)] hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,t.jsx)("img",{src:(0,u.agentAvatarUrl)(e,36,r),alt:"",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[(0,t.jsx)(d.default,{href:`/agents/${e}`,className:"font-bold text-[15px] hover:underline",style:{color:r},children:a}),(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[var(--muted-foreground)] font-bold opacity-0 group-hover:opacity-100 transition-opacity",children:"Streaming"})]}),(0,t.jsx)("div",{className:"text-[15px] text-[var(--foreground)] leading-relaxed min-h-[1.5rem] flex items-center",children:n?(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(c.Markdown,{content:l}),(0,t.jsx)("span",{className:"inline-flex items-baseline ml-0.5",children:(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-indigo-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"})})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[var(--muted-foreground)] italic",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:"working"}),(0,t.jsx)(m,{})]})})]})]})}var f=e.i(78583),x=e.i(40160);function g({attachments:e,compact:a=!1}){if(0===e.length)return null;let r=e.filter(e=>e.mimeType.startsWith("image/")),s=e.filter(e=>!e.mimeType.startsWith("image/")),l=a?"max-w-[120px]":"max-w-[240px]",n=a?"max-h-[90px]":"max-h-[180px]";return(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[r.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.map(e=>(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"block rounded-lg overflow-hidden border border-[var(--border)] hover:border-[var(--border)] transition-colors",children:(0,t.jsx)("img",{src:e.url,alt:e.filename,className:`${l} ${n} object-cover`,loading:"lazy"})},e.id))}),s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>{var r;return(0,t.jsxs)("a",{href:e.url,download:e.filename,className:`inline-flex items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:border-[var(--border)] transition-colors ${a?"px-2 py-0.5 text-[11px]":"px-2.5 py-1 text-xs"}`,children:[(0,t.jsx)(f.FileText,{className:`text-[var(--muted-foreground)] shrink-0 ${a?"w-3 h-3":"w-3.5 h-3.5"}`}),(0,t.jsx)("span",{className:`truncate ${a?"max-w-[100px]":"max-w-[150px]"}`,children:e.filename}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0",children:(r=e.size)<1024?`${r}B`:r<1048576?`${(r/1024).toFixed(0)}KB`:`${(r/1048576).toFixed(1)}MB`}),(0,t.jsx)(x.Download,{className:`text-[var(--muted-foreground)] shrink-0 ${a?"w-2.5 h-2.5":"w-3 h-3"}`})]},e.id)})})]})}var v=e.i(39312),b=e.i(75254);let j=(0,b.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var y=e.i(64659),w=e.i(63059),k=e.i(7233),N=e.i(37727);let C=(0,b.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var I=e.i(74886),S=e.i(43531),$=e.i(47167);let M=$.default.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741";async function T(){let e=await fetch(`${M}/api/projects`);if(!e.ok){if(503===e.status)throw Error("SCHEMA_NOT_READY");throw Error(`Failed to list projects: ${e.status}`)}let t=await e.json();return t.projects??t}async function P(e,t){let a=await fetch(`${M}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,description:t})});if(!a.ok)throw Error(`Failed to create project: ${a.status}`);return a.json()}async function E(e,t){let a=await fetch(`${M}/api/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,...t})});if(!a.ok)throw Error(`Failed to create task: ${a.status}`);let r=await a.json(),s=r.task??r;return r.id&&!s.id&&(s.id=r.id),s}async function D(e){let t=await fetch(`${M}/api/tasks/${e}`);if(!t.ok)return null;let a=await t.json();return a.task??a}async function A(e,t,a,r){let s=[],l={...r},n=new Map((function(e){let t=new Set(e.map(e=>e.id)),a=new Map;for(let r of e)a.set(r.id,(r.dependsOn||[]).filter(e=>t.has(e)));let r=[],s=new Set,l=new Set;for(let t of e)!function t(n){if(!s.has(n)&&!l.has(n)){for(let e of(l.add(n),a.get(n)||[]))t(e);l.delete(n),s.add(n),r.push(e.find(e=>e.id===n))}}(t.id);return r})(e).map(e=>[e.id,e]));for(;n.size>0;){let e=[];for(let t of n.values())(t.dependsOn||[]).every(e=>!n.has(e)||l[e])&&e.push(t);0===e.length&&e.push(...n.values());let a=await Promise.allSettled(e.map(async e=>{let a=l[e.id];if(a&&await D(a))return{task:e,remoteId:a};let r=(e.dependsOn||[]).map(e=>l[e]).filter(Boolean),s=await E(e.description,{title:e.title,project_id:t,depends_on:r.length>0?r:void 0});return{task:e,remoteId:s.id}}));for(let t of a)if("fulfilled"===t.status){let{task:e,remoteId:a}=t.value;l[e.id]=a,s.push({clientTaskId:e.id,remoteTaskId:a,status:"created"}),n.delete(e.id)}else{let r=e[a.indexOf(t)];s.push({clientTaskId:r.id,status:"failed",error:t.reason instanceof Error?t.reason.message:"Unknown error"}),n.delete(r.id)}}return{buildId:a,projectId:t,results:s}}let R=(0,b.default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);var O=e.i(75505),z=e.i(78894);function U({onSelect:e,onClose:r}){let[s,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(!0),[o,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(!1),[p,m]=(0,a.useState)(""),[h,f]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{try{let e=await T();l(e)}catch(e){e instanceof Error&&"SCHEMA_NOT_READY"===e.message?d("agx-cloud database not ready. Run migrations first."):d("Failed to load projects. Is agx-cloud running?")}finally{i(!1)}})()},[]);let x=(0,a.useCallback)(async()=>{let t=p.trim();if(t){u(!0);try{let a=await P(t);e(a.id,a.name)}catch(e){d("Failed to create project")}finally{u(!1)}}},[p,e]);return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-sm",children:(0,t.jsxs)("div",{className:"bg-[var(--app-shell-elevated)] rounded-2xl shadow-xl border border-[var(--app-shell-border)] w-full max-w-sm mx-4 overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-[var(--app-shell-border)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(O.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)]"}),(0,t.jsx)("h3",{className:"text-sm font-bold text-[var(--foreground)]",children:"Select Project"})]}),(0,t.jsx)("button",{type:"button",onClick:r,className:"p-1 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] rounded-md hover:bg-[var(--app-shell-subtle)]",children:(0,t.jsx)(N.X,{className:"w-4 h-4"})})]}),(0,t.jsxs)("div",{className:"p-4 max-h-64 overflow-y-auto",children:[n&&(0,t.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,t.jsx)(R,{className:"w-5 h-5 text-[var(--app-shell-muted)] animate-spin"})}),o&&(0,t.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-amber-50 rounded-lg text-amber-700 text-xs font-medium",children:[(0,t.jsx)(z.AlertTriangle,{className:"w-4 h-4 shrink-0"}),o]}),!n&&!o&&0===s.length&&(0,t.jsx)("p",{className:"text-xs text-[var(--app-shell-muted)] text-center py-4",children:"No projects found. Create one below."}),!n&&s.map(a=>(0,t.jsxs)("button",{type:"button",onClick:()=>e(a.id,a.name),className:"w-full text-left px-3 py-2.5 rounded-lg hover:bg-[var(--app-shell-subtle)] transition-colors flex items-center gap-3 group",children:[(0,t.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--app-shell-subtle)] flex items-center justify-center shrink-0",children:(0,t.jsx)(O.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)] group-hover:text-[var(--foreground)]"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)] truncate",children:a.name}),a.description&&(0,t.jsx)("div",{className:"text-[11px] text-[var(--app-shell-muted)] truncate",children:a.description})]})]},a.id))]}),(0,t.jsx)("div",{className:"px-4 pb-4 pt-2 border-t border-[var(--app-shell-border)]",children:h?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"text",value:p,onChange:e=>m(e.target.value),onKeyDown:e=>"Enter"===e.key&&x(),placeholder:"Project name",autoFocus:!0,className:"flex-1 h-8 px-3 text-sm bg-[var(--input)] border border-[var(--app-shell-border)] rounded-lg outline-none focus:ring-1 focus:ring-[var(--ring)] text-[var(--foreground)]"}),(0,t.jsx)("button",{type:"button",onClick:x,disabled:c||!p.trim(),className:"h-8 px-3 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-lg disabled:opacity-40",children:c?"…":"Create"}),(0,t.jsx)("button",{type:"button",onClick:()=>f(!1),className:"h-8 px-2 text-[var(--app-shell-muted)] hover:text-[var(--foreground)]",children:(0,t.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}):(0,t.jsxs)("button",{type:"button",onClick:()=>f(!0),className:"flex items-center gap-1.5 text-xs font-bold text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:[(0,t.jsx)(k.Plus,{className:"w-3.5 h-3.5"}),"Create new project"]})})]})})}function L({draft:e,onUpdate:r,onBuild:s,building:l}){let[n,i]=(0,a.useState)(null),[o,d]=(0,a.useState)(!1),[c,u]=(0,a.useState)(!1),p=(0,a.useCallback)(()=>{let t=e.tasks.map((e,t)=>{let a=`${t+1}. **${e.title}**`;return e.description&&"Add description..."!==e.description&&(a+=`
2
+ ${e.description.replace(/\n/g,"\n ")}`),a}).join("\n");navigator.clipboard.writeText(t).then(()=>{u(!0),setTimeout(()=>u(!1),1500)})},[e.tasks]),m=(0,a.useCallback)((t,a)=>{let s=e.tasks.map(e=>e.id===t?{...e,...a}:e);r({...e,tasks:s,revision:e.revision+1})},[e,r]),h=(0,a.useCallback)(t=>{let a=e.tasks.filter(e=>e.id!==t);r({...e,tasks:a,revision:e.revision+1})},[e,r]),f=(0,a.useCallback)(()=>{let t={id:crypto.randomUUID(),title:"New task",description:"Add description..."};r({...e,tasks:[...e.tasks,t],revision:e.revision+1})},[e,r]),x=(0,a.useCallback)(()=>{d(!0)},[]),g=(0,a.useCallback)((t,a)=>{d(!1),s(e,t,a)},[e,s]),b="idle"===e.buildStatus||!e.buildStatus;return(0,t.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(v.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,t.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[e.tasks.length," task",1!==e.tasks.length?"s":""]}),e.tasks.length>0&&(0,t.jsx)("button",{type:"button",onClick:p,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:c?(0,t.jsx)(S.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,t.jsx)(I.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,t.jsx)("div",{className:"space-y-1 mb-4",children:e.tasks.map(e=>{let a=n===e.id;return(0,t.jsxs)("div",{className:"group",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2 rounded-lg hover:bg-[var(--app-shell-subtle)] transition-colors",children:[b&&(0,t.jsx)(j,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)] opacity-0 group-hover:opacity-100 cursor-grab shrink-0"}),(0,t.jsx)("button",{type:"button",onClick:()=>i(a?null:e.id),className:"shrink-0 text-[var(--app-shell-muted)] hover:text-[var(--foreground)]",children:a?(0,t.jsx)(y.ChevronDown,{className:"w-3.5 h-3.5"}):(0,t.jsx)(w.ChevronRight,{className:"w-3.5 h-3.5"})}),b?(0,t.jsx)("input",{type:"text",value:e.title,onChange:t=>m(e.id,{title:t.target.value}),className:"flex-1 text-xs font-semibold text-[var(--foreground)] bg-transparent border-none outline-none focus:ring-0 p-0"}):(0,t.jsx)("span",{className:"flex-1 text-xs font-semibold text-[var(--foreground)]",children:e.title}),b&&(0,t.jsx)("button",{type:"button",onClick:()=>h(e.id),className:"shrink-0 text-[var(--app-shell-soft-text)] hover:text-rose-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,t.jsx)(N.X,{className:"w-3.5 h-3.5"})})]}),a&&(0,t.jsx)("div",{className:"ml-9 mr-2 mb-2",children:b?(0,t.jsx)("textarea",{value:e.description,onChange:t=>m(e.id,{description:t.target.value}),rows:4,className:"w-full text-xs text-[var(--muted-foreground)] bg-[var(--input)] border border-[var(--app-shell-border)] rounded-lg p-2 outline-none focus:ring-1 focus:ring-[var(--ring)] resize-y"}):(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] whitespace-pre-wrap",children:e.description})})]},e.id)})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[b&&(0,t.jsxs)("button",{type:"button",onClick:f,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-bold text-[var(--app-shell-muted)] hover:text-[var(--foreground)] rounded-full border border-dashed border-[var(--app-shell-border)] hover:border-[var(--app-shell-border-strong)] transition-all",children:[(0,t.jsx)(k.Plus,{className:"w-3 h-3"}),"Add task"]}),(0,t.jsx)("div",{className:"flex-1"}),b&&(0,t.jsxs)("button",{type:"button",onClick:x,disabled:l||0===e.tasks.length,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,t.jsx)(C,{className:"w-3 h-3"}),l?"Pushing…":"Push to agx"]})]}),o&&(0,t.jsx)(U,{onSelect:g,onClose:()=>d(!1)})]})}let _=new Set(["completed","done","failed","blocked"]);var F=e.i(95468),q=e.i(14683);let W=(0,b.default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);var B=e.i(73884);let H={queued:(0,t.jsx)(q.Circle,{className:"w-4 h-4 text-[var(--muted-foreground)]"}),pending:(0,t.jsx)(q.Circle,{className:"w-4 h-4 text-[var(--muted-foreground)]"}),in_progress:(0,t.jsx)(R,{className:"w-4 h-4 text-blue-500 animate-spin"}),running:(0,t.jsx)(R,{className:"w-4 h-4 text-blue-500 animate-spin"}),blocked:(0,t.jsx)(W,{className:"w-4 h-4 text-amber-500"}),completed:(0,t.jsx)(F.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),done:(0,t.jsx)(F.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),failed:(0,t.jsx)(B.XCircle,{className:"w-4 h-4 text-rose-500"})};function J({draft:e,onPush:r,pushing:s}){let[l,n]=(0,a.useState)(!1),[i,o]=(0,a.useState)(!1),d=(0,a.useCallback)(()=>{let t=e.tasks.map((e,t)=>`${t+1}. **${e.title}**${e.description?`
3
+ ${e.description.replace(/\n/g,"\n ")}`:""}`).join("\n");navigator.clipboard.writeText(t).then(()=>{o(!0),setTimeout(()=>o(!1),1500)})},[e.tasks]),{tasks:c,error:u}=function({projectId:e,enabled:t,interval:r=3e4}){let[s,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(null),o=(0,a.useRef)(0),d=(0,a.useRef)([]),c=(0,a.useCallback)(async()=>{if(e&&"undefined"!==e)try{let t=$.default.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741",a=await fetch(`${t}/api/tasks?project=${e}`);if(!a.ok)throw Error(`Poll failed: ${a.status}`);let r=await a.json(),s=r.tasks??r;d.current=s,l(s),i(null)}catch(e){i(e instanceof Error?e.message:"Poll failed")}},[e]);return(0,a.useEffect)(()=>{if(!t||!e)return;o.current=Date.now(),c();let a=setInterval(()=>{Date.now()-o.current>18e5||d.current.length>0&&d.current.every(e=>_.has(e.status))?clearInterval(a):c()},r);return()=>clearInterval(a)},[t,e,r,c]),{tasks:s,error:n,refetch:c}}({projectId:e.projectId??null,enabled:!!e.projectId&&"done"===e.buildStatus}),p=new Map;if(e.builtTaskIds)for(let[t,a]of Object.entries(e.builtTaskIds)){let e=c.find(e=>e.id===a);e&&p.set(t,e)}let m=e.tasks.filter(e=>{let t=p.get(e.id);return t&&("completed"===t.status||"done"===t.status)}).length,h=e.tasks.length>0?m/e.tasks.length:0,f=(0,a.useCallback)(()=>{e.projectId&&e.projectName?r?.(e,e.projectId,e.projectName):n(!0)},[e,r]),x=(0,a.useCallback)((t,a)=>{n(!1),r?.(e,t,a)},[e,r]);e.tasks.some(t=>!e.builtTaskIds?.[t.id]);let g=e.tasks.some(e=>{let t=p.get(e.id);return t&&"queued"!==t.status&&"pending"!==t.status});return(0,t.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(v.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,t.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"}),e.projectName&&(0,t.jsxs)("span",{className:"text-[10px] font-semibold text-[var(--muted-foreground)]",children:["· ",e.projectName]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[m,"/",e.tasks.length," Complete"]}),e.tasks.length>0&&(0,t.jsx)("button",{type:"button",onClick:d,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:i?(0,t.jsx)(S.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,t.jsx)(I.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,t.jsx)("div",{className:"space-y-3 mb-4",children:e.tasks.map(e=>{let a=p.get(e.id),r=a?.status||"queued",s=H[r]||H.queued;return(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[s,(0,t.jsx)("span",{className:"text-xs font-semibold text-[var(--muted-foreground)]",children:e.title})]},e.id)})}),(0,t.jsx)("div",{className:"h-1.5 w-full bg-[var(--muted)] rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-emerald-500 rounded-full shadow-[0_0_8px_rgba(16,185,129,0.4)] transition-all duration-500",style:{width:`${Math.round(100*h)}%`}})}),r&&!g&&(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:["partial_failure"===e.buildStatus&&(0,t.jsx)("span",{className:"text-[11px] text-amber-600 font-semibold",children:"Some tasks failed to push."}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsxs)("button",{type:"button",onClick:f,disabled:s,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,t.jsx)(C,{className:"w-3 h-3"}),s?"Pushing…":"Push to agx"]})]}),u&&(0,t.jsxs)("div",{className:"mt-2 text-[11px] text-amber-600 font-medium",children:["Status polling error: ",u]}),l&&(0,t.jsx)(U,{onSelect:x,onClose:()=>n(!1)})]})}let K=(0,a.forwardRef)(({children:e,className:a="",...r},s)=>{let l=`absolute top-4 right-4 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-200 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] shadow-md rounded-lg p-1 z-10 backdrop-blur-sm ${a}`.trim();return(0,t.jsx)("div",{ref:s,className:l,...r,children:e})});K.displayName="ActionToolbar";let V=()=>(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)] mx-1"}),X=(0,a.forwardRef)(({className:e="",variant:a="neutral",size:r="md",children:s,...l},n)=>{let i=`inline-flex items-center justify-center rounded-md transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:pointer-events-none ${({sm:"p-1 w-6 h-6",md:"p-1.5 w-8 h-8",lg:"p-2 w-10 h-10"})[r]} ${({neutral:"text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]",ghost:"text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]",primary:"text-[var(--primary)] hover:text-[var(--primary-foreground)] hover:bg-[var(--primary-hover)]",destructive:"text-[var(--app-shell-muted)] hover:text-[var(--destructive)] hover:bg-[var(--destructive-muted)]"})[a]} ${e}`.trim();return(0,t.jsx)("button",{ref:n,className:i,...l,children:s})});X.displayName="IconButton";var Y=e.i(86311),G=e.i(88081),Z=e.i(27612),Q=e.i(84614),ee=e.i(3116);let et=(0,b.default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]),ea=(0,b.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),er=(0,b.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),es=(0,b.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]),el=[{value:"active",label:"Active",color:"#f59e0b"},{value:"paused",label:"Paused",color:"#f97316"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"done",label:"Done",color:"#3b82f6"},{value:"archived",label:"Archived",color:"#9ca3af"}],en=new Set(["done","in-review","archived"]),ei="<!-- thread-summary -->";function eo({messages:e,streaming:r,participants:s,onOpenThread:l,onCopyThread:n,onAddToChat:i,onDeleteThreadRoot:o,onSummarize:m,onCreateTasks:f,onUpdateTaskDraft:x,onBuildTasks:v,summarizingThreads:b,extractingTasks:j,buildingDrafts:y,taskDrafts:w,deletingThreadRootId:k,highlightedMessageId:N,onUpdateMessageThreadStatus:C,onUpdateMessageOutcomeNote:S,shipModeThreads:$}){let M=(0,a.useRef)(new Map),[T,P]=(0,a.useState)(null),[E,D]=(0,a.useState)("active"),A=Object.fromEntries(s.map(e=>[e.id,e])),O=(0,a.useMemo)(()=>[...e.filter(e=>!e.rootMessageId)].reverse(),[e]),z={active:new Set(["active"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),done:new Set(["done"]),archived:new Set(["archived"])},U=(0,a.useMemo)(()=>O.filter(e=>z[E].has(e.threadStatus??"active")),[O,E]),_=(0,a.useMemo)(()=>({active:O.filter(e=>z.active.has(e.threadStatus??"active")).length,paused:O.filter(e=>z.paused.has(e.threadStatus??"active")).length,"in-review":O.filter(e=>z["in-review"].has(e.threadStatus??"active")).length,done:O.filter(e=>z.done.has(e.threadStatus??"active")).length,archived:O.filter(e=>z.archived.has(e.threadStatus??"active")).length}),[O]),F=(0,a.useMemo)(()=>(function(e){let t=new Map;for(let a of e){let e=a.rootMessageId;if(!e)continue;let r=t.get(e);r||(r={rootMessageId:e,replyCount:0,participants:[],lastActivityAt:0,allReplies:[]},t.set(e,r)),r.replyCount++,r.lastActivityAt=Math.max(r.lastActivityAt,a.timestamp),r.lastReply=a,r.allReplies.push(a),a.participantId&&!r.participants.includes(a.participantId)?r.participants.push(a.participantId):a.participantId||r.participants.includes("user")||r.participants.push("user")}for(let e of t.values())e.allReplies.sort((e,t)=>e.timestamp-t.timestamp);return t})(e),[e]),q=(0,a.useCallback)((e,t)=>{t?M.current.set(e,t):M.current.delete(e)},[]),W=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!N){W.current=null;return}if(N===W.current)return;W.current=N;let e=M.current.get(N);e&&e.scrollIntoView({behavior:"smooth",block:"center"})},[N,e]),(0,t.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[O.length>0&&(0,t.jsx)("div",{className:"flex items-center justify-center gap-1 p-1 rounded-lg w-fit mx-auto border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] mb-4",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"done",label:"Done"},{key:"archived",label:"Archived"}].map(e=>{let a=_[e.key],r=E===e.key;return(0,t.jsxs)("button",{type:"button",onClick:()=>D(e.key),className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${r?"bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm":"text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"}`,children:[e.label,a>0&&(0,t.jsx)("span",{className:`ml-1.5 text-[10px] ${r?"opacity-60":"opacity-50"}`,children:a})]},e.key)})}),0===O.length&&0===Object.keys(r).length&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3",children:[(0,t.jsx)(Y.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),O.length>0&&0===U.length&&(0,t.jsx)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2",children:(0,t.jsxs)("span",{className:"text-sm font-medium",children:["No ",E," threads"]})}),U.map(e=>{let a,s=e.participantId?A[e.participantId]:null,N=F.get(e.id),S=k===e.id,M=N?.allReplies.find(e=>e.content.startsWith(ei)),E=M?M.content.slice(ei.length).trim():null,D=e.threadStatus??"active",O=en.has(D),z=el.find(e=>e.value===D)??el[0],U=Object.values(r).some(t=>t.rootMessageId===e.id);if(O){let a;return(0,t.jsx)("div",{ref:t=>q(e.id,t),"data-message-id":e.id,className:`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${T===e.id?"z-50":""}`,onClick:()=>l?.(e.id),children:(0,t.jsxs)("div",{className:"px-4 py-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(G.Hash,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1",children:(0,p.stripMarkers)(e.content.split("\n")[0])}),$?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,t.jsx)(es,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),U&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),e.outcomeNote&&(0,t.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]",children:e.outcomeNote}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)] shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e.timestamp)}),C&&(a=T===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),P(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]",style:{borderColor:z.color+"40",color:z.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:z.color}}),z.label]}),a&&(0,t.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:el.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===D?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:t=>{t.stopPropagation(),C(e.id,a.value),P(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value))})]})),N&&N.replyCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] shrink-0",children:[N.replyCount," replies"]})]}),(E||w?.[e.id])&&(0,t.jsxs)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:[E&&(0,t.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none",children:(0,t.jsx)(c.Markdown,{content:E,isUser:!1})}),w?.[e.id]&&w[e.id].tasks.length>0&&(0,t.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] flex items-center gap-1",children:[(0,t.jsx)(et,{className:"w-3 h-3"}),w[e.id].tasks.length," ",1===w[e.id].tasks.length?"task":"tasks"]})]})]})},e.id)}return(0,t.jsxs)("div",{className:`max-w-2xl mx-auto surface-card mb-6 group relative ${T===e.id?"z-50":""}`,children:[(n||i||o)&&(0,t.jsxs)(K,{className:"z-10",children:[i&&(0,t.jsx)(X,{type:"button",variant:"primary",size:"sm",onClick:()=>i(e.id),title:"Mention in chat",children:(0,t.jsx)(er,{className:"w-3.5 h-3.5"})}),(0,t.jsx)(X,{type:"button",variant:"neutral",size:"sm",onClick:()=>{navigator.clipboard.writeText(e.id)},title:"Copy message ID",children:(0,t.jsx)(ea,{className:"w-3.5 h-3.5"})}),n&&(0,t.jsx)(X,{type:"button",variant:"neutral",size:"sm",onClick:()=>n(e.id),title:"Copy thread as markdown",children:(0,t.jsx)(I.Copy,{className:"w-3.5 h-3.5"})}),o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(V,{}),(0,t.jsx)(X,{type:"button",variant:"destructive",size:"sm",onClick:()=>o(e.id),disabled:S,title:"Delete this thread",children:S?(0,t.jsx)(R,{className:"w-3.5 h-3.5 animate-spin"}):(0,t.jsx)(Z.Trash2,{className:"w-3.5 h-3.5"})})]})]}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"p-5",children:(0,t.jsxs)("div",{ref:t=>q(e.id,t),"data-message-id":e.id,className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==e.role&&(0,t.jsx)(d.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow",children:s?(0,t.jsx)("img",{src:(0,u.agentAvatarUrl)(s.id,40,s.color),alt:s.name,className:"w-full h-full object-cover"}):(0,t.jsx)("img",{src:(0,u.agentAvatarUrl)(e.participantId||"assistant",40),alt:e.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==e.role&&(0,t.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,t.jsx)(d.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",children:s?.name||e.participantId||"Assistant"})}),(0,t.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>l?.(e.id),children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1",children:(0,p.stripMarkers)(e.content.split("\n")[0])}),(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)]",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(e.timestamp)}),C&&(a=T===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),P(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]",style:{borderColor:z.color+"40",color:z.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:z.color}}),z.label]}),a&&(0,t.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:el.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===D?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:t=>{t.stopPropagation(),C(e.id,a.value),P(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value))})]})),$?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,t.jsx)(es,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),U&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(e.content.length>80||e.content.includes("\n"))&&(0,t.jsx)("div",{className:"mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3",children:(0,t.jsx)(c.Markdown,{content:(0,p.stripMarkers)(e.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===e.role})})]})]})]}),e.attachments&&e.attachments.length>0&&(0,t.jsx)("div",{className:`mb-4 ${"user"!==e.role?"ml-[52px]":""}`,children:(0,t.jsx)(g,{attachments:e.attachments,compact:!0})}),E&&(0,t.jsx)("div",{className:"mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed",children:(0,t.jsx)(c.Markdown,{content:E,isUser:!1})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-2 mt-2 border-t border-[var(--card-border)]",children:[m&&N&&N.replyCount>0&&(0,t.jsxs)("button",{type:"button",onClick:()=>m(e.id),disabled:b?.has(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[b?.has(e.id)?(0,t.jsx)(R,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,t.jsx)(ee.Clock,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),b?.has(e.id)?"Summarizing…":"Summarize"]}),f&&N&&N.replyCount>0&&(0,t.jsxs)("button",{type:"button",onClick:()=>f(e.id),disabled:j?.has(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[j?.has(e.id)?(0,t.jsx)(R,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,t.jsx)(et,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),j?.has(e.id)?"Extracting…":w?.[e.id]?"Re-extract tasks":"Create tasks"]}),N&&N.replyCount>0&&l&&(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>l(e.id),children:[(0,t.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:[N.replyCount," replies"]}),(0,t.jsx)("div",{className:"flex -space-x-2",children:N.participants.slice(0,3).map(e=>{if("user"===e)return(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] flex items-center justify-center z-10",children:(0,t.jsx)(Q.User,{className:"w-3 h-3 text-[var(--muted-foreground)]"})},"user");let a=A[e];return a?(0,t.jsx)("img",{src:(0,u.agentAvatarUrl)(e,24,a.color),alt:a.name,className:"w-6 h-6 rounded-full border-2 border-[var(--card-bg)] object-cover z-10"},e):(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] z-10"},e)})})]})]}),w?.[e.id]&&(w[e.id].builtTaskIds&&Object.keys(w[e.id].builtTaskIds).length>0?(0,t.jsx)(J,{draft:w[e.id],onPush:(t,a,r)=>v?.(e.id,t,a,r),pushing:y?.has(w[e.id].draftId)}):(0,t.jsx)(L,{draft:w[e.id],onUpdate:t=>x?.(e.id,t),onBuild:(t,a,r)=>v?.(e.id,t,a,r),building:y?.has(w[e.id].draftId)})),j?.has(e.id)&&(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-2 text-xs text-[var(--app-shell-muted)]",children:[(0,t.jsx)(R,{className:"w-3.5 h-3.5 animate-spin"}),(0,t.jsx)("span",{children:"Extracting tasks…"})]})]})}),Object.entries(r).filter(([,t])=>t.rootMessageId===e.id).map(([e,a])=>{let r=A[e];return(0,t.jsx)("div",{className:"px-6 pb-4",children:(0,t.jsx)(h,{participantId:e,participantName:r?.name||e,participantColor:r?.color||"#888",content:a.content})},`streaming-${e}`)})]})]},e.id)})]})})}let ed=(0,b.default)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var ec=e.i(83086);let eu={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function ep({type:e,count:a,participantIds:r}){let s=eu[e],l=r.join(", "),n=l?`${s.label}: ${l}`:s.label;return(0,t.jsxs)("span",{title:n,className:"inline-flex items-center gap-1 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-2 py-0.5 text-xs text-[var(--foreground)]",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:s.symbol}),(0,t.jsx)("span",{className:"tabular-nums",children:a})]})}function em({reactions:e}){if(!e||0===e.length)return null;let a=[...e].sort((e,t)=>t.count!==e.count?t.count-e.count:e.type.localeCompare(t.type));return(0,t.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:a.map(e=>(0,t.jsx)(ep,{type:e.type,count:e.count,participantIds:e.participantIds},e.type))})}function eh({messages:e,streaming:r,participants:s,rootMessageId:l,queued:n=!1,onClose:i,onCopyThread:o,onAddToChat:m,onDeleteThreadRoot:h,onDeleteMessage:f,highlightedMessageId:x,renderReplyComposer:v,activeProcesses:b=[]}){let j=(0,a.useRef)(null),y=(0,a.useRef)(new Map),w=Object.fromEntries(s.map(e=>[e.id,e])),k=(0,a.useMemo)(()=>{let t=e.find(e=>e.id===l),a=e.filter(e=>e.rootMessageId===l).sort((e,t)=>e.timestamp-t.timestamp);return t?[t,...a]:a},[e,l]),N=(0,a.useRef)(null),C=(0,a.useRef)(!1),S=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=N.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:a,clientHeight:r}=e;C.current=a-t-r>80};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[]),(0,a.useEffect)(()=>{if(x&&x!==S.current){S.current=x;let e=y.current.get(x);e&&e.scrollIntoView({behavior:"smooth",block:"center"})}else x||C.current||(S.current=null,j.current?.scrollIntoView({behavior:"smooth"}))},[x,k,r]),(0,t.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-[var(--app-shell-bg)] transition-colors",children:[b.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] backdrop-blur-md transition-colors",children:[(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,t.jsx)(ec.Sparkles,{className:"h-3.5 w-3.5 text-indigo-500",strokeWidth:1.75}),(0,t.jsx)("span",{className:"uppercase tracking-[0.16em]",children:"Working"})]}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:b.map(e=>{let a=w[e.agentId];return(0,t.jsxs)("div",{className:"relative",title:`${a?.name||e.agentId} — ${e.state}`,children:[(0,t.jsx)("img",{src:(0,u.agentAvatarUrl)(e.agentId,24,a?.color),alt:a?.name||e.agentId,className:"w-6 h-6 rounded-full border-2 border-[var(--app-shell-surface)] shadow-sm"}),(0,t.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-[var(--app-shell-surface)] animate-pulse"})]},e.agentId)})})]}),(0,t.jsx)("div",{ref:N,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,t.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[k.map(e=>{let a,r="user"===e.role,s=e.participantId?w[e.participantId]:null;return(0,t.jsxs)("div",{ref:t=>{var a;return a=e.id,void(t?y.current.set(a,t):y.current.delete(a))},"data-message-id":e.id,className:"group relative flex gap-4 ",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:r?(0,t.jsx)("div",{className:"w-9 h-9 bg-[var(--app-shell-subtle)] rounded-full flex items-center justify-center text-[var(--app-shell-muted)] shadow-sm",children:(0,t.jsx)(Q.User,{className:"w-5 h-5"})}):(0,t.jsx)(d.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,t.jsx)("img",{src:s?(0,u.agentAvatarUrl)(s.id,36,s.color):(0,u.agentAvatarUrl)(e.participantId||"assistant",36),alt:s?.name||e.participantId||"Assistant",className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[r?(0,t.jsx)("span",{className:"font-bold text-sm text-[var(--foreground)]",children:"You"}):(0,t.jsx)(d.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:s?.color?{color:s.color}:void 0,children:s?.name||e.participantId||"Assistant"}),void 0===e.rootMessageId&&e.id===l&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] rounded font-mono uppercase",children:"ROOT"}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:(a=e.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a))})]}),(0,t.jsxs)("div",{className:`surface-card rounded-2xl p-5 text-[15px] leading-relaxed ${e.id===x?"ring-2 ring-[var(--ring)]":""}`,children:[(0,t.jsx)(c.Markdown,{content:(0,p.stripMarkers)(e.content),isUser:r}),e.attachments&&e.attachments.length>0&&(0,t.jsx)(g,{attachments:e.attachments}),e.reactions&&e.reactions.length>0&&(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(em,{reactions:e.reactions})})]}),(0,t.jsxs)(K,{children:[e.id===l&&(0,t.jsx)(X,{variant:"primary",size:"sm",onClick:()=>navigator.clipboard.writeText(e.id),title:"Copy message ID",children:(0,t.jsx)(ea,{className:"w-3.5 h-3.5"})}),e.id===l&&o&&(0,t.jsx)(X,{variant:"neutral",size:"sm",onClick:()=>o(e.id),title:"Copy Thread",children:(0,t.jsx)(ed,{className:"w-3.5 h-3.5"})}),(0,t.jsx)(X,{variant:"neutral",size:"sm",onClick:()=>navigator.clipboard.writeText(e.content),title:"Copy as Markdown",children:(0,t.jsx)(I.Copy,{className:"w-3.5 h-3.5"})}),e.id===l&&h&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(V,{}),(0,t.jsx)(X,{variant:"destructive",size:"sm",onClick:()=>h(e.id),title:"Delete Thread",children:(0,t.jsx)(Z.Trash2,{className:"w-3.5 h-3.5"})})]}),e.id!==l&&f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(V,{}),(0,t.jsx)(X,{variant:"destructive",size:"sm",onClick:()=>f(e.id),title:"Delete Message",children:(0,t.jsx)(Z.Trash2,{className:"w-3.5 h-3.5"})})]})]})]})]},e.id)}),n&&0===b.length&&(0,t.jsxs)("div",{className:"flex gap-3 group relative opacity-80 animate-in fade-in slide-in-from-bottom-1 duration-300",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:(0,t.jsx)("div",{className:"w-7 h-7 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] flex items-center justify-center",children:(0,t.jsx)(ec.Sparkles,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)]",strokeWidth:1.5})})}),(0,t.jsx)("div",{className:"flex-1 max-w-full overflow-hidden",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("span",{className:"text-xs tracking-wide text-[var(--app-shell-soft-text)]",children:"Processing"}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]})})]}),Object.entries(r).filter(([,e])=>e.rootMessageId===l).map(([e,a])=>{let r=w[e],s=a.content.trim().length>0;return(0,t.jsxs)("div",{className:"flex gap-4 group relative animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,t.jsx)(d.default,{href:`/agents/${r?.id||e}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,t.jsx)("img",{src:r?(0,u.agentAvatarUrl)(r.id,36,r.color):(0,u.agentAvatarUrl)(e,36),alt:r?.name||e,className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(d.default,{href:`/agents/${r?.id||e}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:r?.color?{color:r.color}:void 0,children:r?.name||e}),!s&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),s&&(0,t.jsx)("div",{className:"surface-card rounded-2xl p-5 text-[15px] leading-relaxed",children:(0,t.jsx)(c.Markdown,{content:(0,p.stripMarkers)(a.content),isUser:!1})})]})]},`streaming-${e}`)}),(0,t.jsx)("div",{ref:j,className:"h-4"})]})}),(0,t.jsx)("div",{className:"z-20 transition-colors duration-200",children:v(l)})]})}var ef=e.i(31245);let ex=(0,b.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function eg({query:e,results:a,total:r,participants:s,threadTitleById:l,isLoading:n,error:i,onSelectResult:o,headerSlot:c}){let p=Object.fromEntries(s.map(e=>[e.id,e]));return(0,t.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[c?(0,t.jsx)("div",{className:"sticky top-0 z-20 bg-[var(--app-shell-subtle)]/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,t.jsx)("div",{className:"max-w-2xl mx-auto",children:c})}):null,(0,t.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Search results"}),(0,t.jsx)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:n?"Searching…":`${r} result${1===r?"":"s"} for "${e}"`}),i?(0,t.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:i}):null]}),n||i||0!==a.length?null:(0,t.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-[var(--app-shell-muted)]",children:[(0,t.jsx)(ex,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,t.jsx)("div",{className:"space-y-3 pb-6",children:a.map(e=>{var a;let r=e.participantId?p[e.participantId]:null,s=l[e.threadId]||"Untitled thread",n="user"===e.role?"You":r?.name||e.participantId||"Assistant";return(0,t.jsxs)("button",{type:"button",onClick:()=>o(e),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-4 text-left transition hover:border-[var(--border)] hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-[var(--muted)]",children:"user"===e.role?(0,t.jsx)(Q.User,{className:"h-4 w-4 text-[var(--foreground)]"}):r?(0,t.jsx)(d.default,{href:`/agents/${r.id}`,onClick:e=>e.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,t.jsx)("img",{src:(0,u.agentAvatarUrl)(r.id,32,r.color),alt:"",className:"h-full w-full object-cover"})}):(0,t.jsx)(ef.Bot,{className:"h-4 w-4 text-[var(--foreground)]"})}),(0,t.jsxs)("div",{className:"min-w-0",children:["user"!==e.role&&r?(0,t.jsx)(d.default,{href:`/agents/${r.id}`,onClick:e=>e.stopPropagation(),className:"truncate text-sm font-semibold text-[var(--foreground)] hover:underline block",children:n}):(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:n}),(0,t.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:s})]})]}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:(a=e.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(a))})]}),(0,t.jsx)("p",{className:"text-sm leading-relaxed text-[var(--foreground)]",children:function(e){let a=e.split(/(<\/?mark>)/g),r=!1,s=[];for(let[e,l]of a.entries()){if("<mark>"===l){r=!0;continue}if("</mark>"===l){r=!1;continue}l&&s.push(r?(0,t.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:l},`${e}-mark`):(0,t.jsx)("span",{children:l},`${e}-text`))}return s}(e.snippet)})]},`${e.threadId}-${e.messageId}`)})})]})})}var ev=e.i(94499),eb=e.i(56378),ej=e.i(55841);let ey=/^[A-Za-z0-9_\-:]*$/,ew={id:"all",name:"All",provider:"claude",model:null,color:"#6B7280"};function ek(e,t,a){return a?e.startsWith(a)?3:t.startsWith(a)?2:e.includes(a)?1:null:0}let eN=/^[a-zA-Z0-9_-]*$/,eC=new Set(["image/jpeg","image/png","image/gif","image/webp","image/svg+xml","application/pdf","text/plain","text/csv","text/markdown","application/json","application/zip","application/gzip","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation"]),eI=new Set([".exe",".bat",".cmd",".com",".msi",".scr",".pif",".vbs",".vbe",".js",".jse",".ws",".wsf",".wsc",".wsh",".ps1",".ps2",".psc1",".psc2",".reg",".inf",".lnk",".dll",".sys",".drv"]),eS=[{path:`${$.default.env.HOME??"~"}/Code`,relativePath:"~/Code",type:"folder"},{path:`${$.default.env.HOME??"~"}/Projects`,relativePath:"~/Projects",type:"folder"},{path:`${$.default.env.HOME??"~"}/Desktop`,relativePath:"~/Desktop",type:"folder"},{path:`${$.default.env.HOME??"~"}/Documents`,relativePath:"~/Documents",type:"folder"},{path:`${$.default.env.HOME??"~"}/Downloads`,relativePath:"~/Downloads",type:"folder"}];function e$(e,t){let a=function(e,t){let a=e.trim().replace(/\/+$/,"");if("~"===a)return"~";if(a.startsWith("~/")||a.startsWith("/"))return a;let r=a.replace(/^\/+/,"");return"@~"===t?`~/${r}`:`/${r}`}(e,t.trigger);if(a.startsWith("~/")||a.startsWith("/")){let r=e.trim().startsWith("~/")||e.trim().startsWith("/")||"~"===e.trim()?null:function(e){if(!e.query.endsWith("/"))return null;let t=e.query.replace(/^\/+/,"").replace(/\/+$/,"");return"@~"===e.trigger?t?`~/${t}`:"~":t?`/${t}`:"/"}(t);if(r){let e=a.replace(/^~\/|^\//,"");return"~"===r?`~/${e}`:"/"===r?`/${e}`:`${r}/${e}`}}return a}let eM="agx-composer-history";async function eT(e){let t;if(0===e.length)return[];let a=e.map(e=>e.path);try{let r=await fetch("/api/file-read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:a})});if(!r.ok){let t=(await r.json().catch(()=>({}))).error??`HTTP ${r.status}`;return e.map(e=>({type:"file",path:e.path,label:e.label,content:null,error:t}))}t=(await r.json()).results}catch(a){let t=a instanceof Error?a.message:"Failed to fetch file contents";return e.map(e=>({type:"file",path:e.path,label:e.label,content:null,error:t}))}let r=new Map(t.map(e=>[e.path,e]));return e.map(e=>{let t=r.get(e.path);return{type:"file",path:e.path,label:e.label,content:t?.content??null,error:t?.error}})}async function eP(e){let t=await eT(e),a=0===t.length?"":t.map(e=>e.error||null===e.content?`<file path="${e.path}" error="${e.error??"unreadable"}" />`:`<file path="${e.path}">
4
+ ${e.content}
5
+ </file>`).join("\n\n")+"\n\n";return{fileContextBlocks:t,contextPrefix:a}}var eE=e.i(10552);let eD=eE.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let a="parallel"===e.attrs.mode;return["span",(0,eE.mergeAttributes)(t,{"data-participant-mention":"","data-id":e.attrs.id,"data-mode":e.attrs.mode,class:a?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${a?"@@":"@"}${e.attrs.name}`]}}),eA=eE.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,eE.mergeAttributes)(t,{"data-project-mention":"","data-id":e.attrs.id,"data-slug":e.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${e.attrs.name}`]}),eR=eE.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let a=e.attrs.relativePath||e.attrs.path;return["span",(0,eE.mergeAttributes)(t,{"data-file-mention":"","data-path":e.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${a}`]}}),eO=eE.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,eE.mergeAttributes)(t,{"data-thread-mention":"","data-thread-id":e.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${e.attrs.title}`]});function ez(e){if(!e.content)return"";let t=[];for(let a of e.content)a.type,t.push(function(e){if(!e.content)return"";let t="";for(let a of e.content)switch(a.type){case"text":t+=a.text??"";break;case"participantMention":{let e=a.attrs??{},r="parallel"===e.mode?"@@":"@";t+=`${r}${e.name}`;break}case"projectMention":{let e=a.attrs??{},r=String(e.slug??"").trim();r?t+=`@~project:${r}`:e.name&&(t+=`@${e.name}`);break}case"fileMention":{let e=a.attrs??{},r=e.relativePath||e.path;t+=`@${r}`;break}case"threadMention":{let e=((a.attrs??{}).threadId??"").slice(0,8);t+=`@#${e}`;break}default:"hardBreak"===a.type&&(t+="\n")}return t}(a));return t.join("\n")}function eU(e){let{state:t}=e,{$from:a}=t.selection,r=a.depth,s=-1;for(let e=r;e>=0;e--)if("paragraph"===a.node(e).type.name){s=e;break}if(-1===s)return null;let l=a.node(s),n=a.start(s),i=a.pos-n,o="",d=0,c=!1;return l.forEach((e,t)=>{let a=t+e.nodeSize;if(e.isText){let r=e.text??"";!c&&i>=t&&i<=a&&(d=o.length+(i-t),c=!0),o+=r}else if(e.isAtom){let r=eL(e);!c&&i>=t&&i<=a&&(d=o.length+r.length,c=!0),o+=r}}),c||(d=o.length),{text:o,cursorPos:d,blockStart:n}}function eL(e){switch(e.type.name){case"participantMention":{let t="parallel"===e.attrs.mode?"@@":"@";return`${t}${e.attrs.name}`}case"fileMention":{let t=e.attrs.relativePath||e.attrs.path;return`@${t}`}case"threadMention":{let t=(e.attrs.threadId??"").slice(0,8);return`@#${t}`}default:return""}}function e_(e,t,a,r){let{state:s}=e,l=s.doc.resolve(t),n=l.depth,i=null,o=t;for(let e=n;e>=0;e--){let t=l.node(e);if("paragraph"===t.type.name){i=t,o=l.start(e);break}}i||(i=s.doc.resolve(t).parent,o=t);let d=0,c=null,u=null;return(i.forEach((e,t)=>{let s=o+t,l=e.nodeSize;if(e.isText){let t=e.text??"",l=d+t.length;null===c&&a>=d&&a<=l&&(c=s+(a-d)),null===u&&r>=d&&r<=l&&(u=s+(r-d)),d=l}else if(e.isAtom){let t=eL(e),n=d+t.length;null===c&&a>=d&&a<=n&&(c=s),null===u&&r>=d&&r<=n&&(u=s+l),d=n}}),null===c&&a>=d&&(c=o+i.content.size),null===u&&r>=d&&(u=o+i.content.size),null===c||null===u)?null:{from:c,to:u}}let eF=(0,b.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var eq=e.i(61911);function eW({isOpen:e,suggestions:r,activeIndex:s,listboxId:l,optionIdPrefix:n,onSelect:i}){let o=(0,a.useRef)([]);if((0,a.useEffect)(()=>{e&&o.current[s]?.scrollIntoView({block:"nearest"})},[s,e]),!e||0===r.length)return null;let d=new Set;return(0,t.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,t.jsx)("div",{role:"listbox",id:l,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,a)=>{let r=a===s,l="project-group"===e.kind?`project-group-${e.project.id}`:"project"===e.kind?`project-${e.project.id}`:e.participant.id,c=e.group,u=null;if(c&&!d.has(c)&&(d.add(c),u=(0,t.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:c})),"project-group"===e.kind)return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${l}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)(eq.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:e.project.name}),(0,t.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[e.project.agents.length," agent",1!==e.project.agents.length?"s":""]})]})})]},l);if("project"===e.kind)return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${l}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)(eF,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:e.project.name}),(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.project.slug})]})})]},l);let p=e.participant;return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${p.id}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${c?" pl-6":""}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:p.color},"aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:p.name}),"all"===p.id?(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):p.model&&(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:p.model})]})})]},l)})})})}function eB({isOpen:e,commands:r,activeIndex:s,listboxId:l,optionIdPrefix:n,onSelect:i}){let o=(0,a.useRef)([]);return((0,a.useEffect)(()=>{e&&o.current[s]?.scrollIntoView({block:"nearest"})},[s,e]),e&&0!==r.length)?(0,t.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,t.jsx)("div",{role:"listbox",id:l,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,a)=>{let r=a===s;return(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${e.name.slice(1)}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>e.preventDefault(),onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium font-mono",children:e.name}),e.aliases&&e.aliases.length>0&&(0,t.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",e.aliases.join(", "),")"]}),(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.description})]})},e.name)})})}):null}var eH=e.i(63209);let eJ=(0,b.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var eK=e.i(27025);function eV({suggestion:e,isActive:a,optionId:r,onSelect:s,onAttachContents:l,itemRef:n}){let i="folder"===e.type,o="contents"===e.attachMode,d=function(e){if(!e)return null;let t=Math.floor((Date.now()-e)/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t}d ago`:t<30?`${Math.floor(t/7)}w ago`:t<365?`${Math.floor(t/30)}mo ago`:`${Math.floor(t/365)}y ago`}(e.modifiedAt),c=e.relativePath??e.path;return(0,t.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${a?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,t.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:i?a?(0,t.jsx)(O.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,t.jsx)(eK.Folder,{className:"h-4 w-4 text-amber-400"}):(0,t.jsx)(eJ,{className:"h-4 w-4"})}),(0,t.jsxs)("button",{type:"button",role:"option",id:r,"aria-selected":a,ref:n,className:"min-w-0 flex-1 text-left",onMouseDown:e=>e.preventDefault(),onClick:()=>s(e),tabIndex:-1,children:[(0,t.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:c}),d&&(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:d})]}),i&&e.manifest&&(0,t.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[e.manifest.childCount," items ·"," ",e.manifest.sizeSummary,o?(0,t.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,t.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),i&&!o&&(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${c}`,onMouseDown:e=>e.preventDefault(),onClick:()=>l(e),tabIndex:-1,children:"Attach contents"}),i&&o&&(0,t.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var eX=e.i(37452);function eY({isOpen:e,suggestions:r,activeIndex:s,isLoading:l,error:n,listboxId:i,optionIdPrefix:o,onSelect:d,onAttachContents:c}){let u=(0,a.useRef)([]),p=(0,a.useRef)(null),[m,h]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{e&&u.current[s]?.scrollIntoView({block:"nearest"})},[s,e]),(0,a.useEffect)(()=>{e&&p.current&&h(p.current.getBoundingClientRect().top<280)},[e]),!e)return null;let f=r.length>0?`${o}-${s}`:void 0;return(0,t.jsx)("div",{ref:p,className:`${m?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${eX.default.popover}`,children:(0,t.jsxs)("div",{role:"listbox",id:i,"aria-label":"File suggestions","aria-activedescendant":f,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[n&&!l&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,t.jsx)(eH.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{children:n})]}),!n&&l&&0===r.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,t.jsx)(R,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,t.jsx)("span",{children:"Searching…"})]}),!n&&!l&&0===r.length&&(0,t.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!n&&l&&r.length>0&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,t.jsx)(R,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,t.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),r.length>0&&r.map((e,a)=>(0,t.jsx)(eV,{suggestion:e,isActive:a===s,optionId:`${o}-${a}`,onSelect:d,onAttachContents:c,itemRef:e=>{u.current[a]=e}},e.path))]})})}function eG({isOpen:e,suggestions:a,activeIndex:r,listboxId:s,optionIdPrefix:l,onSelect:n}){return e&&0!==a.length?(0,t.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:s,children:[(0,t.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,t.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:a.map((e,a)=>{let s=a===r;return(0,t.jsxs)("button",{role:"option",id:`${l}-${a}`,"aria-selected":s,onClick:()=>n(e),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${s?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,t.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${s?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,t.jsx)(Y.MessageSquare,{size:14,strokeWidth:2.5})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:`text-sm font-semibold truncate ${s?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("span",{className:`text-xs ${s?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[e.replies.length," replies"]}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,t.jsx)(ee.Clock,{size:10}),function(e){if(!e)return"";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m`;let r=Math.floor(a/60);return r<24?`${r}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(e.lastActivityAt)]})]})]})]},e.rootMessageId)})})]}):null}var eZ=e.i(16715);let eQ=(0,b.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);function e0({attachments:e,onRemove:a,onRetry:r}){return 0===e.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:e.map(e=>{var s;let l=e.mimeType.startsWith("image/"),n="failed"===e.status,i="uploading"===e.status;return(0,t.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${n?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[l&&e.previewUrl?(0,t.jsx)("img",{src:e.previewUrl,alt:e.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,t.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:l?(0,t.jsx)(eQ,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,t.jsx)(f.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,t.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,t.jsx)("div",{className:"truncate font-medium",children:e.filename}),n&&e.error?(0,t.jsx)("div",{className:"truncate text-[10px] text-red-500",children:e.error}):(0,t.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(s=e.size)<1024?`${s}B`:s<1048576?`${(s/1024).toFixed(0)}KB`:`${(s/1048576).toFixed(1)}MB`})]}),i&&(0,t.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${e.progress}%`}})}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[n&&(0,t.jsx)("button",{type:"button",onClick:()=>r(e.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,t.jsx)(eZ.RefreshCw,{className:"w-3 h-3"})}),(0,t.jsx)("button",{type:"button",onClick:()=>a(e.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,t.jsx)(N.X,{className:"w-3 h-3"})})]})]},e.id)})})}function e1({onDrop:e,children:r}){let[s,l]=(0,a.useState)(!1),n={current:0},i=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),n.current++,e.dataTransfer.types.includes("Files")&&l(!0)},[]),o=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),d=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),n.current--,0===n.current&&l(!1)},[]),c=(0,a.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),n.current=0,l(!1),t.dataTransfer.files.length>0&&e(t.dataTransfer.files)},[e]);return(0,t.jsxs)("div",{className:"relative",onDragEnter:i,onDragOver:o,onDragLeave:d,onDrop:c,children:[r,s&&(0,t.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,t.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}let e2=(0,b.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);function e5(e,t,a,r,s){if(!e)return;let l=e_(e,t,a,r);l&&e.chain().focus().deleteRange(l).insertContent(s).insertContent(" ").run()}function e3({onSend:e,onStop:r,loading:s,activityStatus:l,participants:n,projects:i=[],projectGroups:o=[],messages:d=[],commands:c,placeholder:u="Message — @name to mention, /search, /summarize",workspaceRoots:p=[],onConfigureRoots:m,pendingThreadInsert:h,onClearPendingThread:f,autoMode:x=!1,onAutoModeChange:g}){let v=l??(s?"working":"ready"),b="ready"!==v,[j,y]=(0,a.useState)(null),w=(0,a.useRef)(null),k=(0,a.useRef)(!1),N=(0,a.useCallback)(()=>{w.current?.click()},[]),[C,I]=(0,a.useState)([]),S=function({participants:e,projectGroups:t=[],projects:r=[],maxSuggestions:s=6}){let[l,n]=(0,a.useState)(null),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)(!1),u=null!==l&&!d,p=l?.query??"",m=(0,a.useMemo)(()=>(function(e,t,a,r=[],s=[]){let l=t.toLowerCase(),n=new Map(e.map(e=>[e.id,e])),i=new Set;for(let e of r)for(let t of e.agents)i.add(t.agent_id);let o=[];for(let e of(null!==ek("all","all",l)&&o.push({kind:"agent",participant:ew,group:""}),r)){let t=ek(e.name.toLowerCase(),e.id.toLowerCase(),l),a=[];for(let t of e.agents){let e=n.get(t.agent_id);if(!e)continue;let r=ek(e.name.toLowerCase(),e.id.toLowerCase(),l);null!==r&&a.push({participant:e,score:r})}(null!==t||a.length>0)&&(null!==t&&o.push({kind:"project-group",project:e,group:e.name}),(null!==t&&l?e.agents.map(e=>n.get(e.agent_id)).filter(e=>!!e).map(e=>({participant:e,score:0})):a).sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:t})=>{o.push({kind:"agent",participant:t,group:e.name})}))}for(let e of s)null!==ek(e.name.toLowerCase(),e.slug.toLowerCase(),l)&&o.push({kind:"project",project:e,group:"Projects"});let d=[];for(let t of e){if(i.has(t.id))continue;let e=ek(t.name.toLowerCase(),t.id.toLowerCase(),l);null!==e&&d.push({participant:t,score:e})}return d.sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:e})=>{o.push({kind:"agent",participant:e,group:""})}),o.slice(0,a)})(e,p,s,t,r),[e,p,s,t,r]),h=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<0||t>e.length)return null;let a=t;for(;a>0&&!/\s/.test(e[a-1]);)a--;let r=e.slice(a,t);if(!r.startsWith("@")||r.startsWith("@@@")||r.startsWith("@#"))return null;let s=r.startsWith("@@"),l=r.slice(s?2:1);return ey.test(l)?{startIndex:a,endIndex:t,query:l.toLowerCase(),mode:s?"parallel":"sequential",isParallel:s}:null}(e,t);n(e=>((e?.startIndex!==a?.startIndex||e?.isParallel!==a?.isParallel||e?.query!==a?.query)&&o(0),a))},[]),f=(0,a.useCallback)((e,t)=>{d||h(e,t)},[d,h]),x=(0,a.useCallback)(e=>{if(!u||0===m.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),o(e=>e<m.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),o(e=>e>0?e-1:m.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),n(null),!0;default:return!1}},[u,m.length]),g=(0,a.useCallback)(e=>{if(!l)return null;let t="project-group"===e.kind||"project"===e.kind?e.project.name:e.participant.name,a=l.isParallel?"@@":"@";return{text:`${a}${t} `,startIndex:l.startIndex,endIndex:l.endIndex}},[l]),v=(0,a.useCallback)(()=>{n(null),o(0)},[]);return{isOpen:u,query:p,filteredSuggestions:m,activeIndex:i,token:l,isComposing:d,handleInput:f,handleKeyDown:x,selectSuggestion:g,close:v,startComposition:(0,a.useCallback)(()=>{c(!0)},[]),endComposition:(0,a.useCallback)((e,t)=>{c(!1),h(e,t)},[h])}}({participants:n,projectGroups:o,projects:i,maxSuggestions:8}),M=function({commands:e,maxSuggestions:t=6}){let[r,s]=(0,a.useState)(null),[l,n]=(0,a.useState)(0),i=null!==r,o=r?.query??"",d=(0,a.useMemo)(()=>{let a;return(a=o.toLowerCase())?e.filter(e=>!!e.name.slice(1).toLowerCase().startsWith(a)||(e.aliases?.some(e=>e.toLowerCase().startsWith(a))??!1)).slice(0,t):e.slice(0,t)},[e,o,t]),c=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<0||t>e.length||!e.startsWith("/"))return null;let a=e.slice(0,t);if(/\s/.test(a))return null;let r=a.slice(1);return eN.test(r)?{startIndex:0,endIndex:t,query:r.toLowerCase()}:null}(e,t);s(e=>(e?.query!==a?.query&&n(0),a))},[]),u=(0,a.useCallback)(e=>{if(!i||0===d.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),n(e=>e<d.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),n(e=>e>0?e-1:d.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),s(null),!0;default:return!1}},[i,d.length]),p=(0,a.useCallback)(e=>!!r&&(e.execute(),s(null),n(0),!0),[r]);return{isOpen:i,query:o,filteredCommands:d,activeIndex:l,token:r,handleInput:c,handleKeyDown:u,selectCommand:p,close:(0,a.useCallback)(()=>{s(null),n(0)},[])}}({commands:c,maxSuggestions:6}),T=function({maxSuggestions:e=8,debounceMs:t=150}={}){let[r,s]=(0,a.useState)(null),[l,n]=(0,a.useState)([]),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)(!1),[u,p]=(0,a.useState)(null),m=(0,a.useRef)(null),h=(0,a.useRef)(null),f=(0,a.useRef)(null),x=null!==r,g=(0,a.useCallback)(async(t,a)=>{m.current&&m.current.abort();let r=new AbortController;m.current=r,c(!0),p(null);try{let s=t.endsWith("/"),l=s?"*":t,i=new URLSearchParams({q:l,limit:String(e),includeFolders:"1"});if(s){let e="@~"===a?`${$.default.env.HOME??"~"}/${t.slice(0,-1)}`:`/${t.slice(0,-1)}`;i.set("root",e)}else"@~"===a&&i.set("root",$.default.env.HOME??"~");let d=await fetch(`/api/file-search?${i.toString()}`,{signal:r.signal});if(!d.ok){let e=await d.json().catch(()=>({}));throw Error(e.error??`HTTP ${d.status}`)}let c=await d.json();n(c.files.map(e=>({...e,attachMode:"folder"===e.type?"manifest":void 0}))),o(0)}catch(e){if("AbortError"===e.name)return;p(e.message??"Search failed"),n([])}finally{c(!1)}},[e]),v=(0,a.useCallback)((a,r)=>{if(null!==h.current&&clearTimeout(h.current),a!==f.current){if(a.length<3){m.current&&(m.current.abort(),m.current=null),f.current=a,c(!1),p(null),n(eS.slice(0,e).map(e=>({...e,attachMode:"manifest"}))),o(0);return}h.current=setTimeout(()=>{f.current=a,g(a,r)},t)}},[t,g,e]);(0,a.useEffect)(()=>()=>{null!==h.current&&clearTimeout(h.current),m.current&&m.current.abort()},[]);let b=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<2||t>e.length)return null;let a=t;for(;a>0&&!/\s/.test(e[a-1]);)a--;let r=e.slice(a,t);if(!r.startsWith("@/")&&!r.startsWith("@~"))return null;let s=r.slice(0,2);return{startIndex:a,endIndex:t,query:r.slice(2),trigger:s}}(e,t);s(e=>((e?.startIndex!==a?.startIndex||e?.query!==a?.query||e?.trigger!==a?.trigger)&&null===a&&(null!==h.current&&clearTimeout(h.current),m.current&&(m.current.abort(),m.current=null),f.current=null,n([]),c(!1),p(null)),a)),a&&v(a.query,a.trigger)},[v]),j=(0,a.useCallback)(e=>{if(!x||0===l.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),o(e=>e<l.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),o(e=>e>0?e-1:l.length-1),!0;case"Enter":return e.preventDefault(),!0;case"Tab":return!0;case"Escape":return e.preventDefault(),s(null),n([]),!0;default:return!1}},[x,l.length]),y=(0,a.useCallback)(e=>{if(!r)return null;let t=e$(e.relativePath??e.path,r),a="folder"===e.type?"/":"",l=`@${t}${a} `;return s(null),n([]),{text:l,startIndex:r.startIndex,endIndex:r.endIndex}},[r]),w=(0,a.useCallback)(e=>{if(!r||"folder"!==e.type)return null;let t=e$(e.relativePath??e.path,r),a=t.startsWith("~/")?"@~":"@/",l=t.slice(1),n=`@${t}/`,i=r.startIndex+n.length,o=`${l}/`;return s({startIndex:r.startIndex,endIndex:i,query:o,trigger:a}),f.current=null,v(o,a),{text:n,startIndex:r.startIndex,endIndex:r.endIndex}},[r,v]),k=(0,a.useCallback)(e=>{n(t=>t.map(t=>t.path===e.path?{...t,attachMode:"contents"}:t))},[]);return{isOpen:x,token:r,suggestions:l,activeIndex:i,isLoading:d,error:u,handleInput:b,handleKeyDown:j,selectSuggestion:y,drillDown:w,close:(0,a.useCallback)(()=>{s(null),n([]),o(0)},[]),onAttachContents:k}}({maxSuggestions:8}),P=function({messages:e,maxSuggestions:t=5}){let[r,s]=(0,a.useState)(!1),[l,n]=(0,a.useState)(""),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)([]),[u,p]=(0,a.useState)(null),m=(0,a.useRef)([]);(0,a.useEffect)(()=>{let t=e.filter(e=>!e.rootMessageId),a=new Map;e.forEach(e=>{if(e.rootMessageId){let t=a.get(e.rootMessageId)||[];t.push(e),a.set(e.rootMessageId,t)}}),m.current=t.map(e=>{let t=a.get(e.id)||[],r=[e,...t],s=Math.max(...r.map(e=>e.timestamp)),l=e.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",n=[...new Set(r.map(e=>e.participantId||"user"))];return{rootMessageId:e.id,title:l,rootMessage:e,replies:t,participantIds:n,lastActivityAt:s}}).sort((e,t)=>t.lastActivityAt-e.lastActivityAt)},[e]);let h=(0,a.useCallback)((e,a)=>{let r=e.slice(0,a).match(/@#([^@#\s]*)$/);if(r){s(!0);let e=r[1].toLowerCase();n(e),p(r.index),o(0),c(m.current.filter(t=>t.title.toLowerCase().includes(e)).slice(0,t))}else s(!1),p(null)},[t]),f=(0,a.useCallback)(e=>!!r&&0!==d.length&&("ArrowDown"===e.key?(e.preventDefault(),o(e=>(e+1)%d.length),!0):"ArrowUp"===e.key?(e.preventDefault(),o(e=>(e-1+d.length)%d.length),!0):"Escape"===e.key&&(e.preventDefault(),s(!1),!0)),[r,d.length]),x=(0,a.useCallback)(e=>null===u?null:{startIndex:u,endIndex:u+2+l.length,text:""},[u,l]);return{isOpen:r,suggestions:d,activeIndex:i,handleInput:h,handleKeyDown:f,selectSuggestion:x,close:(0,a.useCallback)(()=>{s(!1),p(null)},[]),exportDiscussion:(0,a.useCallback)(async e=>{let t=[];try{let e=await fetch("/api/participants");e.ok&&(t=await e.json())}catch(e){console.warn("Failed to fetch participants for export",e)}let a=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e.rootMessageId,title:e.title,messages:[e.rootMessage,...e.replies],participants:t})});if(!a.ok)throw Error(`Export failed: ${await a.text()}`);return await a.json()},[])}}({messages:d,maxSuggestions:8}),E=function(){let[e,t]=(0,a.useState)([]),r=(0,a.useRef)(new Map),s=(0,a.useCallback)(e=>{let a=new XMLHttpRequest;r.current.set(e.id,a);let s=new FormData;s.append("file",e.file),a.upload.onprogress=a=>{if(a.lengthComputable){let r=Math.round(a.loaded/a.total*100);t(t=>t.map(t=>t.id===e.id?{...t,progress:r}:t))}},a.onload=()=>{if(r.current.delete(e.id),a.status>=200&&a.status<300)try{let r=JSON.parse(a.responseText),s=r.attachments?.[0];if(s)return void t(t=>t.map(t=>t.id===e.id?{...t,status:"uploaded",progress:100,serverId:s.id}:t))}catch{}let s=(()=>{try{return JSON.parse(a.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();t(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:s}:t))},a.onerror=()=>{r.current.delete(e.id),t(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:"Network error"}:t))},a.open("POST","/api/upload"),a.send(s)},[]),l=(0,a.useCallback)(a=>{let r=Array.from(a),l=function(e){let t=e.reduce((e,t)=>e+t.size,0);if(t>0x3200000){let e=(t/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${e}MB) exceeds 50MB limit`}}return null}([...e.map(e=>({name:e.filename,size:e.size,type:e.mimeType})),...r.map(e=>({name:e.name,size:e.size,type:e.type}))]);if(l)return void alert(l.reason);let n=[];for(let e of r){let t=function(e){let t=e.name.includes(".")?"."+e.name.split(".").pop().toLowerCase():"";if(eI.has(t))return{file:e.name,reason:`File type "${t}" is not allowed`};if(e.type&&!eC.has(e.type))return{file:e.name,reason:`File type "${e.type}" is not supported`};if(!e.type&&!eC.has("application/octet-stream"),e.size>0xa00000){let t=(e.size/1048576).toFixed(1);return{file:e.name,reason:`File is too large (${t}MB). Maximum is 10MB`}}return 0===e.size?{file:e.name,reason:"File is empty"}:null}({name:e.name,size:e.size,type:e.type});if(t){n.push({id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type,size:e.size,previewUrl:null,progress:0,status:"failed",error:t.reason});continue}let a=e.type.startsWith("image/")?URL.createObjectURL(e):null,r={id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type||"application/octet-stream",size:e.size,previewUrl:a,progress:0,status:"uploading"};n.push(r)}for(let e of(t(e=>[...e,...n]),n))"uploading"===e.status&&s(e)},[e,s]),n=(0,a.useCallback)(e=>{t(t=>{let a=t.find(t=>t.id===e);a?.previewUrl&&URL.revokeObjectURL(a.previewUrl);let s=r.current.get(e);return s&&(s.abort(),r.current.delete(e)),a?.serverId&&fetch(`/api/upload/${a.serverId}`,{method:"DELETE"}).catch(()=>{}),t.filter(t=>t.id!==e)})},[]),i=(0,a.useCallback)(e=>{t(t=>{let a=t.find(t=>t.id===e);if(!a||"failed"!==a.status)return t;let r=t.map(t=>t.id===e?{...t,status:"uploading",error:void 0,progress:0}:t),l=r.find(t=>t.id===e);return setTimeout(()=>s(l),0),r})},[s]),o=(0,a.useCallback)(()=>{t(e=>{for(let t of e){t.previewUrl&&URL.revokeObjectURL(t.previewUrl);let e=r.current.get(t.id);e&&e.abort()}return r.current.clear(),[]})},[]),d=0===e.length||e.every(e=>"uploaded"===e.status||"failed"===e.status),c=e.some(e=>"uploaded"===e.status),u=e.filter(e=>"uploaded"===e.status&&e.serverId);return{staged:e,stageFiles:l,remove:n,retry:i,clear:o,canSend:d,hasUploaded:c,attachmentIds:u.map(e=>e.serverId),getAttachmentMetas:(0,a.useCallback)(()=>u.map(e=>({id:e.serverId,filename:e.filename,mimeType:e.mimeType,size:e.size,status:"uploaded",url:`/api/attachments/${e.serverId}`})),[u])}}(),D=function(){let[e,t]=(0,a.useState)([]),r=(0,a.useCallback)((e,a,r)=>{t(t=>t.find(t=>t.path===e)?t.map(t=>t.path===e?{...t,label:a,attachMode:r??t.attachMode}:t):[...t,{kind:"file-path",id:crypto.randomUUID(),path:e,label:a,attachMode:r}])},[]);return{filePaths:e,addFilePath:r,removeFilePath:(0,a.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e))},[]),clearFilePaths:(0,a.useCallback)(()=>{t([])},[]),hasFilePaths:e.length>0}}(),A=function(){let[e,t]=(0,a.useState)(-1),r=(0,a.useRef)(""),s=(0,a.useCallback)(()=>{try{let e=localStorage.getItem(eM);return e?JSON.parse(e):[]}catch{return[]}},[]),l=(0,a.useCallback)(e=>{let a=e.trim();if(!a)return;let l=s().filter(e=>e!==a);l.unshift(a),l.length>100&&(l.length=100);try{localStorage.setItem(eM,JSON.stringify(l))}catch{}t(-1),r.current=""},[s]);return{pushEntry:l,navigate:(0,a.useCallback)((a,l,n)=>{if(!n)return null;let i=s();if(0===i.length)return null;if("up"===a){-1===e&&(r.current=l);let a=r.current,s=e+1;if(a){for(let e=s;e<i.length;e++)if(i[e].toLowerCase().startsWith(a.toLowerCase()))return t(e),i[e];return null}let n=Math.min(e+1,i.length-1);return n===e&&-1!==e?null:(t(n),i[n])}if(e<=0)return 0===e?(t(-1),r.current):null;let o=r.current;if(o){for(let a=e-1;a>=0;a--)if(i[a].toLowerCase().startsWith(o.toLowerCase()))return t(a),i[a];return t(-1),r.current}let d=e-1;return t(d),i[d]},[s,e]),resetNavigation:(0,a.useCallback)(()=>{t(-1),r.current=""},[]),historyIndex:e}}();(0,a.useEffect)(()=>{j&&!n.some(e=>e.id===j)&&y(null)},[n,j]);let R=(0,ev.useEditor)({immediatelyRender:!1,extensions:[eb.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),ej.default.configure({placeholder:u}),eD,eA,eR,eO],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handlePaste:(e,t)=>{let a=t.clipboardData?.files;return!!a&&a.length>0&&(t.preventDefault(),E.stageFiles(a),!0)},handleDOMEvents:{compositionstart:()=>(k.current=!0,S.startComposition(),!1),compositionend:(e,t)=>(k.current=!1,setTimeout(()=>{if(!R)return;let e=eU(R);e&&S.endComposition(e.text,e.cursorPos)},0),!1)},handleKeyDown:(e,t)=>{if("Tab"===t.key||"Enter"===t.key&&!t.shiftKey){if(M.isOpen&&M.filteredCommands.length>0){t.preventDefault();let e=M.filteredCommands[M.activeIndex];return e&&F(e),!0}if(T.isOpen&&T.suggestions.length>0){t.preventDefault();let e=T.suggestions[T.activeIndex];return e&&("folder"===e.type?L(e):U(e)),!0}if(P.isOpen&&P.suggestions.length>0){t.preventDefault();let e=P.suggestions[P.activeIndex];return e&&_(e),!0}if(S.isOpen&&S.filteredSuggestions.length>0){t.preventDefault();let e=S.filteredSuggestions[S.activeIndex];return e&&z(e),!0}}let a={key:t.key,preventDefault:()=>t.preventDefault()};if(M.isOpen&&M.handleKeyDown(a)||T.isOpen&&T.handleKeyDown(a)||P.isOpen&&P.handleKeyDown(a)||S.handleKeyDown(a))return!0;if(("ArrowUp"===t.key||"ArrowDown"===t.key)&&!S.isOpen&&!M.isOpen&&!T.isOpen&&!P.isOpen){let e=ez(R.getJSON()).trim(),{state:a}=R.view,r="ArrowUp"===t.key,s=r?a.selection.from<=1:a.selection.to>=a.doc.content.size-1,l=A.navigate(r?"up":"down",e,s);if(null!==l)return t.preventDefault(),R.commands.setContent(l),R.commands.focus("end"),!0}return"Enter"===t.key&&!t.shiftKey&&(t.preventDefault(),q(),!0)}},onUpdate:({editor:e})=>{if(k.current)return;-1!==A.historyIndex&&A.resetNavigation();let t=eU(e);t&&(S.handleInput(t.text,t.cursorPos),M.handleInput(t.text,t.cursorPos),T.handleInput(t.text,t.cursorPos),P.handleInput(t.text,t.cursorPos))},onBlur:()=>{S.close(),M.close(),T.close(),P.close()}});(0,a.useEffect)(()=>{if(!h||!R)return;let{title:e,threadId:t,messages:a}=h;R.chain().focus().insertContent({type:"threadMention",attrs:{threadId:t,title:e}}).insertContent(" ").run();let r=a[0];if(r){let s={rootMessageId:t,title:e,rootMessage:r,replies:a.slice(1),participantIds:[...new Set(a.map(e=>e.participantId||"user"))],lastActivityAt:Math.max(...a.map(e=>e.timestamp))};P.exportDiscussion(s).then(e=>I(t=>[...t,e])).catch(e=>console.error("Failed to export discussion for Add to chat:",e))}f?.()},[h]);let O=(0,a.useCallback)(()=>{if(!R)return;let e=eU(R);e&&S.handleInput(e.text,e.cursorPos)},[R,S]),z=(0,a.useCallback)(e=>{if(!R)return;let t=S.selectSuggestion(e);if(!t)return;let a=eU(R);if(!a)return;let r=t.text.startsWith("@@"),s="project-group"===e.kind?{type:"participantMention",attrs:{id:e.project.id,name:e.project.name,mode:r?"parallel":"sequential",kind:"project"}}:"project"===e.kind?{type:"projectMention",attrs:{id:e.project.id,slug:e.project.slug,name:e.project.name}}:{type:"participantMention",attrs:{id:e.participant.id,name:e.participant.name,mode:r?"parallel":"sequential",kind:"agent"}};e5(R,a.blockStart,t.startIndex,t.endIndex,s),S.close()},[R,S]),U=(0,a.useCallback)(e=>{if(!R)return;let t=T.selectSuggestion(e);if(!t)return;let a=eU(R);if(!a)return;let r={type:"fileMention",attrs:{path:e.path,relativePath:e.relativePath??e.path,trigger:T.token?.trigger??"@/",attachMode:e.attachMode}};e5(R,a.blockStart,t.startIndex,t.endIndex,r),D.addFilePath(e.path,e.relativePath??e.path,e.attachMode)},[R,T,D]),L=(0,a.useCallback)(e=>{if(!R)return;let t=eU(R);if(!t)return;let a=T.drillDown(e);if(!a)return;let r=e_(R,t.blockStart,a.startIndex,a.endIndex);r&&R.chain().focus().deleteRange(r).insertContent(a.text).run()},[R,T]),_=(0,a.useCallback)(async e=>{if(!R)return;let t=P.selectSuggestion(e);if(!t)return;let a=eU(R);if(!a)return;let r={type:"threadMention",attrs:{threadId:e.rootMessageId,title:e.title}};e5(R,a.blockStart,t.startIndex,t.endIndex,r);try{let t=await P.exportDiscussion(e);I(e=>[...e,t])}catch(e){console.error("Failed to export discussion:",e)}},[R,P]),F=(0,a.useCallback)(e=>{M.selectCommand(e),R&&R.commands.clearContent()},[M,R]),q=(0,a.useCallback)(async()=>{if(!R)return;let t=ez(R.getJSON()).trim();if(!t&&!E.hasUploaded&&!D.hasFilePaths||!E.canSend)return;if(t){let e=c.find(e=>e.name===t||e.aliases?.some(e=>`/${e}`===t));if(e){e.execute(),R.commands.clearContent(),M.close(),S.close();return}}let a=t||"(attached files)";if(C.length>0){let e=C.map(e=>`- "${e.title}" — ${e.summary} (full transcript: ${e.filePath})`).join("\n");a=`Referenced threads:
6
+ ${e}
7
+
8
+ ${a}`}if(D.hasFilePaths){let e=await eP(D.filePaths);e.contextPrefix&&(a=e.contextPrefix+a)}t&&A.pushEntry(t);let r=E.attachmentIds.length>0?E.attachmentIds:void 0,s=r?E.getAttachmentMetas():void 0;e(a,10,r,s,j??void 0),R.commands.clearContent(),I([]),E.clear(),D.clearFilePaths(),S.close(),M.close(),P.close()},[R,S,M,c,e,E,D,C,P,A]),W=S.isOpen&&S.filteredSuggestions.length>0;M.isOpen&&M.filteredCommands.length,T.isOpen&&T.suggestions.length,P.isOpen&&P.suggestions.length,W&&S.filteredSuggestions[S.activeIndex];let B=E.staged.some(e=>"uploading"===e.status),H=!R||R.isEmpty,J=n.find(e=>e.id===j)??null;return(0,t.jsx)("div",{className:"pb-6",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsx)(e1,{onDrop:E.stageFiles,children:(0,t.jsxs)("div",{className:"bg-white border border-gray-200 shadow-sm focus-within:border-gray-300 focus-within:ring-1 focus-within:ring-gray-300 dark:bg-gray-900 dark:border-gray-800 dark:shadow-lg dark:focus-within:border-gray-600 dark:focus-within:ring-gray-600 transition-all flex flex-col rounded-2xl",children:[g&&(0,t.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${x?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,t.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${x?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:x?"shipBgSweep 4s ease-in-out infinite":"none"}}),x&&(0,t.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((e,a)=>(0,t.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*a}%`,right:"-10%",width:`${20+a%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+a%3*.1,animation:`shipSpeedLine ${.8+a%4*.3}s ${.1*a}s ease-in-out infinite`}},a))}),(0,t.jsx)("div",{className:"relative px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${x?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:x?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,t.jsx)(es,{size:14})}),(0,t.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${x?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,t.jsx)("span",{className:`text-xs transition-colors duration-300 ${x?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,t.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${x?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:x?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>g(!x),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${x?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,t.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${x?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,t.jsxs)("div",{className:"p-1.5 transition-all",children:[E.staged.length>0&&(0,t.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,t.jsx)(e0,{attachments:E.staged,onRemove:E.remove,onRetry:E.retry})}),(0,t.jsxs)("div",{className:"p-2 relative",children:[(0,t.jsx)("input",{ref:w,type:"file",multiple:!0,className:"hidden",onChange:e=>{e.target.files&&e.target.files.length>0&&(E.stageFiles(e.target.files),e.target.value="")}}),(0,t.jsxs)("div",{className:"flex-1 relative",onClick:O,children:[(0,t.jsx)(ev.EditorContent,{editor:R,className:"composer-editor"}),(0,t.jsx)(eW,{isOpen:S.isOpen&&!M.isOpen,suggestions:S.filteredSuggestions,activeIndex:S.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:z}),(0,t.jsx)(eB,{isOpen:M.isOpen,commands:M.filteredCommands,activeIndex:M.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:F}),(0,t.jsx)(eY,{isOpen:T.isOpen,suggestions:T.suggestions,activeIndex:T.activeIndex,isLoading:T.isLoading,error:T.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:e=>{"folder"===e.type?L(e):U(e)},onAttachContents:T.onAttachContents}),(0,t.jsx)(eG,{isOpen:P.isOpen&&!M.isOpen&&!T.isOpen,suggestions:P.suggestions,activeIndex:P.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:_})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-gray-100 dark:border-gray-800/60 transition-colors",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:N,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,t.jsx)(e2,{className:"h-4 w-4",strokeWidth:1.75})}),(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===n.length?(0,t.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):n.map(e=>(0,t.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":j===e.id,onClick:()=>y(t=>t===e.id?null:e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),y(t=>t===e.id?null:e.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${j===e.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:e.name,children:[(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"w-full h-full rounded-full object-cover"}),b&&(0,t.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===v?"bg-amber-400":"bg-emerald-400"}`})]},e.id))})]}),J&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:J.name})]})]})]}),b?(0,t.jsx)("button",{type:"button",onClick:r,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,t.jsxs)("button",{type:"button",onClick:q,disabled:H&&!E.hasUploaded&&!D.hasFilePaths||B,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,t.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===v?"bg-emerald-400 animate-pulse":"queued"===v?"bg-amber-400":"bg-emerald-400"}`}),(0,t.jsx)("span",{children:"working"===v?"Working":"queued"===v?"Queued":"Ready"})]}),(0,t.jsxs)("span",{children:["Press ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}var e4=e.i(54238);let e6="agx-chat:project-agent-config",e8={activeParticipantIdsByThread:{}};function e7(){return void 0!==window.localStorage}function e9(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let r of e){if("string"!=typeof r)continue;let e=r.trim();!e||t.has(e)||(t.add(e),a.push(e))}return a}function te(){if(!e7())return{...e8};let e=window.localStorage.getItem(e6);if(!e)return{...e8};try{let t=JSON.parse(e).activeParticipantIdsByThread;if(!t||"object"!=typeof t)return{...e8};return{activeParticipantIdsByThread:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,e9(t)]))}}catch{return{...e8}}}function tt(e,t){let a=e.trim();if(!a)return;let r=te();r.activeParticipantIdsByThread[a]=e9(t);if(e7())try{window.localStorage.setItem(e6,JSON.stringify(r))}catch{}}var ta=e.i(2651),tr=e.i(37902);function ts({isOpen:e,title:r,message:s,preview:l,confirmLabel:n="Confirm",cancelLabel:i="Cancel",variant:o="default",onConfirm:d,onCancel:c}){let u=(0,a.useRef)(null),p=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(e){let e=setTimeout(()=>u.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let m=(0,a.useCallback)(e=>{"Escape"===e.key&&c()},[c]);if(!e)return null;let h="danger"===o;return(0,t.jsxs)("div",{style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&c(),onKeyDown:m,className:"jsx-1da17079bc733bcf fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",children:[(0,t.jsxs)("div",{ref:p,style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},className:"jsx-1da17079bc733bcf w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",children:[(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf px-6 pt-6 pb-3",children:(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf flex items-start gap-4",children:[h&&(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,t.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,className:"jsx-1da17079bc733bcf w-5 h-5 text-red-500",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0",className:"jsx-1da17079bc733bcf"})})}),(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"jsx-1da17079bc733bcf text-[15px] font-semibold text-[var(--foreground)]",children:r}),(0,t.jsx)("p",{className:"jsx-1da17079bc733bcf mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:s})]})]})}),l&&(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,t.jsxs)("p",{className:"jsx-1da17079bc733bcf text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",l,"”"]})}),(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 border-t border-[var(--card-border)]"}),(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,t.jsx)("button",{onClick:c,className:"jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:i}),(0,t.jsx)("button",{ref:u,onClick:d,className:`jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${h?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:n})]})]}),(0,t.jsx)(tr.default,{id:"1da17079bc733bcf",children:"@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-in{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}"})]})}var tl=e.i(74049),tn=e.i(55436),ti=e.i(73375);let to=(0,b.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),td=(0,b.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),tc=(0,b.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),tu=(0,b.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var tp=e.i(10980);function tm({logs:e,participants:r,onClear:s,open:l,onToggle:n}){let[i,o]=(0,a.useState)(420),[d,c]=(0,a.useState)(null),u=(0,a.useRef)(null),p=(0,a.useRef)(!1),m=(0,a.useRef)(0),h=(0,a.useRef)(0),f=Object.fromEntries(r.map(e=>[e.id,e]));(0,a.useEffect)(()=>{l&&u.current?.scrollIntoView({behavior:"smooth"})},[e.length,l]);let x=(0,a.useCallback)(e=>{e.preventDefault(),p.current=!0,m.current=e.clientX,h.current=i,e.target.setPointerCapture(e.pointerId)},[i]),g=(0,a.useCallback)(e=>{if(!p.current)return;let t=m.current-e.clientX;o(Math.max(280,Math.min(h.current+t,.6*window.innerWidth)))},[]),v=(0,a.useCallback)(()=>{p.current=!1},[]);if(!l)return null;let b=d?e.filter(e=>e.participantId===d):e;return(0,t.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,t.jsx)("div",{onPointerDown:x,onPointerMove:g,onPointerUp:v,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,t.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,t.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:i},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,t.jsxs)("select",{value:d||"",onChange:e=>c(e.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,t.jsx)("option",{value:"",children:"All"}),r.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:s,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,t.jsx)("button",{onClick:n,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[b.map((e,a)=>{let r=f[e.participantId]?.name||e.participantId,s=f[e.participantId]?.color||"#888",l="stderr"===e.stream;return(0,t.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(e.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,t.jsx)("span",{className:"shrink-0",style:{color:s},children:r}),(0,t.jsx)("span",{className:l?"text-red-400":"text-[var(--muted-foreground)]",children:e.line})]},a)}),(0,t.jsx)("div",{ref:u})]})]})]})}function th(){let[e,r]=(0,a.useState)("unknown"),[s,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(""),[o,c]=(0,a.useState)(!1),u=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/status");if(!e.ok)return void r("unknown");let t=await e.json();r("ok"===t.status?"ok":"degraded");let a=t.services.filter(e=>"agx-chat"===e.name||"agx-cloud"===e.name);l(a),i(new Date().toLocaleTimeString())}catch{r("unknown"),l([])}},[]);return(0,a.useEffect)(()=>{u();let e=setInterval(u,3e4);return()=>clearInterval(e)},[u]),(0,t.jsxs)("div",{className:"relative",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,t.jsx)(d.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,t.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===e?"bg-emerald-400":"degraded"===e?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===e?"animate-pulse":""}`})}),o&&(0,t.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[s.length>0?(0,t.jsx)("ul",{className:"space-y-1.5",children:s.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:"ok"===e.status?"text-emerald-600":"error"===e.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===e.status?"Healthy":"error"===e.status?e.detail||"Error":"Unavailable"})]},e.name))}):(0,t.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),n&&(0,t.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",n]})]})]})}let tf="agx-theme";function tx(e,t=!1){return(t?e.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():e).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function tg(e){let t=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok)throw Error("Failed to load thread knowledge run");let a=await t.json().catch(()=>null);return a?.run??null}function tv(e,t,a){let r=new Set(e.map(e=>e.id)),s=a?t.find(e=>e.thread_ids?.includes(a)):t[0],l=s?s.agents.map(e=>e.agent_id).filter(e=>r.has(e)):[];return s?l:0===l.length?e.map(e=>e.id):l}function tb(e,t,a){let r=Object.fromEntries(t.map(e=>[e.id,e])),s=[];for(let t of e){let e="user"===t.role?"You":t.participantId?r[t.participantId]?.name||t.participantId:"Assistant",a=tx(t.content,"user"!==t.role);a&&(s.push(`**${e}:**`),s.push(""),s.push(a),s.push(""))}if(a){let e=function(e){if(0===e.tasks.length)return"";let t=new Map(e.tasks.map(e=>[e.id,e.title.trim()])),a=["## Draft Tasks",""];return e.projectName&&a.push(`Project: ${e.projectName}`),e.buildStatus&&a.push(`Build status: ${e.buildStatus.replaceAll("_"," ")}`),(e.projectName||e.buildStatus)&&a.push(""),e.tasks.forEach((r,s)=>{let l=tx(r.title)||`Task ${s+1}`,n=tx(r.description),i=(r.dependsOn||[]).map(e=>t.get(e)?.trim()).filter(e=>!!e),o=e.builtTaskIds?.[r.id];a.push(`${s+1}. [ ] **${l}**`),n&&a.push(n),i.length>0&&a.push(`Depends on: ${i.join(", ")}`),o&&a.push(`agx task id: \`${o}\``),a.push("")}),a.join("\n").trim()}(a);e&&s.push(e)}return s.join("\n").trim()}function tj({projectSlug:e,initialThreadId:d,initialRootMessageId:c,showSidebar:u=!0}={}){let p=(0,r.useSearchParams)(),{threads:m,activeThreadId:h,selectThread:f,createThread:x,deleteThread:g,updateThreadMessages:v,isCreating:b,deletingThreadId:j,renamingThreadId:y,isLoading:w,isRestoringActiveThread:k,renameThread:N,updateThreadStatus:C,updateThreadOutcomeNote:I,updateMessageThreadStatus:S,updateMessageOutcomeNote:$}=(0,i.useThreadState)(d),{messages:M,setMessages:T,logs:P,sendMessage:E,loadHistory:D,clearLogs:O,chatRuns:z,setChatRuns:U,stop:L,stopThread:_}=function(e){let[t,r]=(0,a.useState)([]),[n,i]=(0,a.useState)([]),[o,d]=(0,a.useState)([]),c=(0,a.useRef)(e),u=(0,a.useRef)(e);c.current=e,u.current!==e&&(u.current=e,r([]),i([]),d([]));let p=(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){r([]),i([]);return}let a=s(t);try{let[e,s]=await Promise.all([fetch(`/api/history?${a}`),fetch(`/api/logs?${l(t)}`)]);if(c.current!==t)return;e.ok&&r(await e.json()),s.ok&&i(await s.json())}catch{}},[]),m=(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){r([]),i([]);return}let a=s(t);await Promise.all([fetch(`/api/history?${a}`,{method:"DELETE"}),fetch(`/api/logs?${l(t)}`,{method:"DELETE"})]),c.current===t&&(r([]),i([]))},[]),h=(0,a.useCallback)(async(e,t=10,a,s,l,n,i,o)=>{let u=a?.trim()||c.current?.trim();if(!u)return;let p=Date.now(),m=crypto.randomUUID(),h={id:m,role:"user",participantId:null,content:e,timestamp:p,rootMessageId:s||null,parentMessageId:s||null,depth:+!!s,...n&&n.length>0?{attachments:n}:{}};r(e=>[...e,h]);try{let a=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:u,prompt:e,maxRounds:t,userMessageId:m,rootMessageId:s||void 0,attachmentIds:l?.length?l:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0})}),r=await a.json().catch(()=>null);a.ok&&r?.chatRunId&&d(e=>[{chatRunId:r.chatRunId,threadId:u,rootMessageId:s||m,status:"queued"},...e.filter(e=>e.chatRunId!==r.chatRunId)])}catch{}return m},[]),f=(0,a.useCallback)(async()=>{let e=c.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),x=(0,a.useCallback)(async e=>{let t=c.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:t,setMessages:r,logs:n,sendMessage:h,loadHistory:p,clearHistory:m,clearLogs:(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();t?(await fetch(`/api/logs?${l(t)}`,{method:"DELETE"}).catch(()=>{}),c.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:d,stop:f,stopThread:x}}(h),{activeAgents:F,processes:q,streaming:W,chatRuns:B,poll:H}=(0,n.useProcessPolling)(h?{workspaceId:h}:null,{messages:M,setMessages:T}),J=(z.length>0?z:B).filter(e=>"queued"===e.status||"running"===e.status),K=F.size>0||J.some(e=>"running"===e.status)?"working":J.some(e=>"queued"===e.status)?"queued":"ready";(0,a.useEffect)(()=>{0!==B.length&&U(e=>{let t=new Map(e.filter(e=>"string"==typeof e.chatRunId&&e.chatRunId.length>0).map(e=>[e.chatRunId,e]));for(let e of B)e?.chatRunId&&t.set(e.chatRunId,e);return Array.from(t.values()).sort((e,t)=>String(e.chatRunId||"").localeCompare(String(t.chatRunId||"")))})},[B,U]);let V=(0,a.useCallback)(async e=>{await fetch(`/api/chat-runs/${encodeURIComponent(e)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(()=>{})},[]),X=(0,a.useCallback)(async()=>{let e=J[0];e?.chatRunId&&await V(e.chatRunId),await L(),await H()},[J,V,L,H]),Y=(0,a.useCallback)(async e=>{let t=J.find(t=>t.rootMessageId===e);t?.chatRunId&&await V(t.chatRunId),await _(e),await H()},[J,V,_,H]),G=(0,a.useRef)(X);(0,a.useEffect)(()=>{G.current=X},[X]);let{projects:Z,createProject:Q,deleteProject:ee,addAgent:et,removeAgent:ea,reorderAgents:er}=(0,tl.useProjectsWithAgents)(),{projects:es,updateProject:el}=(0,tl.useProjects)(),[en,ei]=(0,a.useState)([]),[ed,ec]=(0,a.useState)(!1),[eu,ep]=(0,a.useState)([]),[em,ef]=(0,a.useState)(!1),[ex,ev]=(0,a.useState)(()=>{let e=window.localStorage.getItem(tf);return"dark"===e||"light"===e?e:document.documentElement.classList.contains("dark")?"dark":"light"}),[eb,ej]=(0,a.useState)(!1),ey=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=(0,e4.loadWorkspaceSidebarVisible)();ey.current=!0,ej(e)},[]),(0,a.useEffect)(()=>{let e="dark"===ex;document.documentElement.classList.toggle("dark",e),document.documentElement.style.colorScheme=ex,window.localStorage.setItem(tf,ex)},[ex]);let[ew,ek]=(0,a.useState)(!1),[eN,eC]=(0,a.useState)(new Set),[eI,eS]=(0,a.useState)(!1),[e$,eM]=(0,a.useState)(!1),[eT,eP]=(0,a.useState)(null),[eE,eD]=(0,a.useState)(c??null),eA=p.get("open")?.trim()||null,eR=eE?eN.has(eE):eI;(0,a.useEffect)(()=>{if(!eE)return;let e=!1,t=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(eE)}`).then(e=>e.json()).then(t=>{e||eC(e=>{let a=e.has(eE);if(t.active&&!a){let t=new Set(e);return t.add(eE),t}if(!t.active&&a){let t=new Set(e);return t.delete(eE),t}return e})}).catch(()=>{})};t();let a=setInterval(t,1e4);return()=>{e=!0,clearInterval(a)}},[eE]),(0,a.useEffect)(()=>{let e=!1,t=()=>{fetch("/api/schedules").then(e=>e.json()).then(t=>{!e&&t.activeRootMessageIds&&eC(e=>{let a=new Set(t.activeRootMessageIds);for(let t of e)a.add(t);return a.size===e.size&&[...a].every(t=>e.has(t))?e:a})}).catch(()=>{})};t();let a=setInterval(t,15e3);return()=>{e=!0,clearInterval(a)}},[]),(0,a.useEffect)(()=>{if(eE){let t=e?`/projects/${e}/thread/${encodeURIComponent(h??d??"")}?open=${encodeURIComponent(eE)}`:`/thread/${eE}`;window.history.replaceState(null,"",t)}else window.history.replaceState(null,"",e?`/projects/${e}/thread/${encodeURIComponent(h??d??"")}`:"/")},[h,d,eE,e]),(0,a.useEffect)(()=>{e&&eD(e=>e===eA?e:eA)},[e,eA]),(0,a.useEffect)(()=>{c&&(async()=>{try{let e=await fetch(`/api/messages/${c}`);if(!e.ok)return;let{threadId:t}=await e.json();t&&f(t)}catch{}})()},[c,f]);let[eO,ez]=(0,a.useState)(""),[eU,eL]=(0,a.useState)([]),[e_,eF]=(0,a.useState)(0),[eq,eW]=(0,a.useState)(!1),[eB,eH]=(0,a.useState)(null),[eJ,eK]=(0,a.useState)(null),[eV,eX]=(0,a.useState)(new Set),[eY,eG]=(0,a.useState)(null),[eZ,eQ]=(0,a.useState)(null),[e0,e1]=(0,a.useState)({}),e2=(0,a.useCallback)(e=>{e1(t=>{let a="function"==typeof e?e(t):e;if(h)for(let[e,r]of Object.entries(a))t[e]!==r&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,messageId:e,draft:r})}).catch(()=>{});return a})},[h]),[e5,e6]=(0,a.useState)(new Set),[e8,e7]=(0,a.useState)(new Set),e9=(0,a.useRef)(null),tr=(0,a.useRef)(null),tx=(0,a.useRef)(null),ty=(0,a.useRef)(""),tw=(0,a.useCallback)(async(e=!1)=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();if(!Array.isArray(t))return;ei(t)}finally{e&&ec(!0)}},[]),tk=(0,a.useCallback)(async e=>{try{await (0,ta.updateUserPreferences)({threadSidebarVisible:e})}catch(e){console.error("Unable to persist thread sidebar preference",e)}},[ta.updateUserPreferences]),tN=(0,a.useCallback)(e=>{(0,e4.persistWorkspaceSidebarVisible)(e),tk(e)},[tk]),tC=eO.trim(),tI=tC.length>0,tS=(0,a.useMemo)(()=>Object.fromEntries(m.map(e=>[e.id,e.title?.trim()||"Untitled thread"])),[m]),t$=(0,a.useMemo)(()=>{if(!eE)return[];let e=new Set([M.find(e=>e.id===eE),...M.filter(e=>e.rootMessageId===eE)].filter(Boolean).map(e=>e.participantId).filter(Boolean));return Object.keys(W).forEach(t=>{W[t].rootMessageId===eE&&e.add(t)}),en.filter(t=>e.has(t.id))},[eE,M,W,en]),tM=(0,a.useMemo)(()=>{let e=new Map(en.map(e=>[e.id,e]));return eu.map(t=>e.get(t)).filter(Boolean)},[en,eu]),tT=(0,a.useMemo)(()=>es.map(e=>({id:e.id,name:e.name,slug:e.slug})),[es]),tP=(0,a.useMemo)(()=>{if(!eE)return 0;let e=[M.find(e=>e.id===eE),...M.filter(e=>e.rootMessageId===eE)].filter(Boolean);return 0===e.length?0:Math.max(...e.map(e=>e.timestamp))},[eE,M]),tE=(0,a.useMemo)(()=>{if(!eE)return"";let e=M.find(e=>e.id===eE);if(!e)return"Thread";let t=e.content.trim();return t.length>60?t.slice(0,60)+"...":t},[eE,M]),tD=(0,a.useMemo)(()=>{if(!eE)return null;let e=M.find(e=>e.id===eE),t=e?.threadStatus??"active";return{value:t,...{active:{label:"Active",color:"#f59e0b"},paused:{label:"Paused",color:"#f97316"},"in-review":{label:"In Review",color:"#6b7280"},done:{label:"Done",color:"#3b82f6"},archived:{label:"Archived",color:"#9ca3af"}}[t]}},[eE,M]),tA=(0,a.useCallback)(()=>{ez(""),eL([]),eF(0),eH(null),eW(!1)},[]);(0,a.useCallback)(()=>{let e=tb(M,en);navigator.clipboard.writeText(e).then(()=>{ef(!0),setTimeout(()=>ef(!1),2e3)})},[M,en]);let[tR,tO]=(0,a.useState)(null),tz=(0,a.useCallback)(e=>{let t=M.find(t=>t.id===e);if(!t)return;let a=[t,...M.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)];tO({title:t.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:e,messages:a})},[M]),tU=(0,a.useCallback)(e=>{let t=tb([M.find(t=>t.id===e),...M.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)].filter(Boolean),en,e0[e]);navigator.clipboard.writeText(t).catch(e=>console.error("Failed to copy thread",e))},[M,en,e0]),tL=(0,a.useCallback)(async()=>{if(eE){eM(!0);try{let t=["repo"];e&&t.push("project");let a=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:eE,scopes:t})}),r=await a.json().catch(()=>null);if(!a.ok)throw Error("string"==typeof r?.error?r.error:"Request failed");eP(r?.run??null)}catch(t){let e=t instanceof Error?t.message:"Request failed";window.alert(`Failed to extract knowledge: ${e}`)}finally{eM(!1)}}},[eE,e]);(0,a.useEffect)(()=>{if(!eE){eP(null),eM(!1);return}let e=!1;return(async()=>{try{let t=await tg(eE);if(e)return;eP(t)}catch{e||eP(null)}})(),()=>{e=!0}},[eE]),(0,a.useEffect)(()=>{if(!eE||eT?.status!=="running")return;let e=!1,t=async()=>{try{let t=await tg(eE);if(e)return;eP(t)}catch{}};t();let a=window.setInterval(()=>{t()},2e3);return()=>{e=!0,window.clearInterval(a)}},[eE,eT?.status]);let t_=eT?.status==="running",tF=e$||t_,tq=(eT?.repoInsertedCount??0)+(eT?.projectInsertedCount??0),tW=(0,a.useMemo)(()=>{if(!eT)return null;if("running"===eT.status)return"Learning in progress";if("failed"===eT.status)return"Last learning run failed";if(tq>0){let e=1===tq?"insight":"insights";return`Learned ${tq} ${e}`}return"No new learnings"},[tq,eT]);(0,a.useEffect)(()=>{tw(!0)},[tw]);let tB=(0,a.useMemo)(()=>{if(!ed)return[];let e=new Set(en.map(e=>e.id)),t=new Set;for(let a of M)"assistant"===a.role&&a.participantId&&(e.has(a.participantId)||t.add(a.participantId));for(let a of Object.keys(W))e.has(a)||t.add(a);return Array.from(t).sort()},[M,en,ed,W]);(0,a.useEffect)(()=>{if(!ed)return;let e=tB.join("|");if(!e){ty.current="";return}ty.current!==e&&(ty.current=e,tw(!1))},[ed,tw,tB]),(0,a.useEffect)(()=>{if(!ed)return;let e=tv(en,Z,h);if(!h)return void ep(e);let t=function(e){let t=e.trim();if(!t)return null;let a=te();return t in a.activeParticipantIdsByThread?[...a.activeParticipantIdsByThread[t]]:null}(h);if(null===t)return void ep(e);let a=function(e,t){if(null===t)return e;let a=new Set(t);return e.filter(e=>a.has(e))}(e,t),r=a.length>0?a:e;(r.length!==t.length||r.some((e,a)=>t[a]!==e))&&tt(h,r),ep(r)},[h,en,ed,Z]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await (0,ta.fetchUserPreferences)();if(e)return;ej(e=>e===t.threadSidebarVisible?e:ey.current?(tk(e),e):((0,e4.persistWorkspaceSidebarVisible)(t.threadSidebarVisible),t.threadSidebarVisible))}catch(e){console.error("Failed to load user preferences",e)}})(),()=>{e=!0}},[tk]),(0,a.useEffect)(()=>{w||b||0!==m.length||x({id:"global",title:"General"})},[w,b,m.length,x]),(0,a.useEffect)(()=>()=>{tx.current&&window.clearTimeout(tx.current)},[]),(0,a.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()){e.preventDefault(),e9.current?.focus(),e9.current?.select();return}"Escape"===e.key&&tC&&tA()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[tA,tC]),(0,a.useEffect)(()=>{if(!tC){eL([]),eF(0),eH(null),eW(!1);return}let e=!1;eW(!0);let t=window.setTimeout(()=>{(async()=>{try{let t=new URLSearchParams({q:tC,limit:"20",offset:"0"}),a=await fetch(`/api/search?${t.toString()}`),r=await a.json().catch(()=>null);if(e)return;if(!a.ok){let e=r&&"object"==typeof r&&"error"in r?String(r.error):"Search failed";eL([]),eF(0),eH(e);return}eL(Array.isArray(r.results)?r.results:[]),eF("number"==typeof r.total?r.total:0),eH(null)}catch(t){if(e)return;console.error("Search request failed",t),eL([]),eF(0),eH("Search failed")}finally{e||eW(!1)}})()},300);return()=>{e=!0,window.clearTimeout(t)}},[tC]);let tH=(0,a.useRef)(null);(0,a.useEffect)(()=>{null!==tH.current&&tH.current!==h&&(G.current(),tr.current?(eD(tr.current),tr.current=null):eD(null)),tH.current=h,h&&(D(h),fetch(`/api/task-drafts?threadId=${encodeURIComponent(h)}`).then(e=>e.json()).then(e=>{e.drafts&&Object.keys(e.drafts).length>0?e1(e.drafts):e1({})}).catch(()=>e1({})))},[h,D]),(0,a.useEffect)(()=>{h&&v(h,M)},[h,M,v]);let tJ=(0,a.useCallback)((t,a,r=10,s)=>{if(!h||0===tM.length)return;let l=tM.map(e=>e.id);E(a,r,h,t,void 0,void 0,s&&l.includes(s)?[s,...l.filter(e=>e!==s)]:l,e)},[h,E,tM,e]),tK=(0,a.useCallback)(async e=>{if(h){if(0===tM.length)return void window.alert("Enable at least one agent in this project.");eX(t=>new Set(t).add(e));try{let t=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,rootMessageId:e,activeParticipantIds:tM.map(e=>e.id)})});t.ok?await D(h):console.error("Summarize failed:",await t.text())}catch(e){console.error("Summarize error:",e)}finally{eX(t=>{let a=new Set(t);return a.delete(e),a})}}},[h,D,tM]),tV=(0,a.useCallback)(async e=>{if(h){if(0===tM.length)return void window.alert("Enable at least one agent in this project.");e6(t=>new Set(t).add(e));try{let t=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,rootMessageId:e,activeParticipantIds:tM.map(e=>e.id)})});if(t.ok){let a=await t.json(),r={draftId:crypto.randomUUID(),revision:0,tasks:a.tasks,buildStatus:"idle"};e2(t=>({...t,[e]:r}))}else console.error("Task extraction failed:",await t.text())}catch(e){console.error("Task extraction error:",e)}finally{e6(t=>{let a=new Set(t);return a.delete(e),a})}}},[h,tM]),tX=(0,a.useCallback)((e,t)=>{e2(a=>({...a,[e]:t}))},[]),tY=(0,a.useCallback)(async(e,t,a,r)=>{if(h){e7(e=>new Set(e).add(t.draftId)),e2(s=>({...s,[e]:{...t,buildStatus:"building",projectId:a,projectName:r}}));try{let r=crypto.randomUUID(),s=await A(t.tasks,a,r,t.builtTaskIds),l={...t.builtTaskIds},n=!1;for(let e of s.results)"created"===e.status&&e.remoteTaskId?l[e.clientTaskId]=e.remoteTaskId:n=!0;e2(t=>({...t,[e]:{...t[e],buildId:r,buildStatus:n?"partial_failure":"done",builtTaskIds:l}}))}catch(t){console.error("Build error:",t),e2(t=>({...t,[e]:{...t[e],buildStatus:"partial_failure"}}))}finally{e7(e=>{let a=new Set(e);return a.delete(t.draftId),a})}}},[h]),tG=(0,a.useCallback)(()=>{if(!h)return;let e=(()=>{if(eE)return eE;let e=new Set(M.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=M.length-1;t>=0;t-=1){let a=M[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?tV(e):console.warn("No thread with replies available to extract tasks from")},[h,tV,M,eE]);(0,a.useCallback)(e=>{eD(e)},[]);let tZ=(0,a.useCallback)(e=>{eD(e)},[]),tQ=(0,a.useCallback)(e=>{let t=e?.trim()??"";t&&ez(t),requestAnimationFrame(()=>{e9.current?.focus(),t||e9.current?.select()})},[]),t0=(0,a.useCallback)(()=>{if(!h)return;let e=(()=>{if(eE)return eE;let e=new Set(M.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=M.length-1;t>=0;t-=1){let a=M[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?tK(e):console.warn("No thread with replies available to summarize")},[h,tK,M,eE]),t1=(0,a.useCallback)(async(t,a,r,s,l)=>{let n=t.match(/^\/search(?:\s+([\s\S]+))?$/i);if(n)return void tQ(n[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(t))return void t0();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(t)||/^\/create(?:\s+[\s\S]+)?$/i.test(t))return void tG();eR&&eE&&(eC(e=>{let t=new Set(e);return t.delete(eE),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:eE})}).catch(e=>console.error("Failed to deactivate schedule:",e)));let i=h;i||(i=(await x()).id);let o=tM.map(e=>e.id);if(0===o.length)return void window.alert("Enable at least one agent in this project.");let d=l&&o.includes(l)?[l,...o.filter(e=>e!==l)]:o;if(eE)return void await E(t,a,i,eE,r,s,d,e);let c=await E(t,a,i,null,r,s,d,e);eI&&c&&(eS(!1),eC(e=>{let t=new Set(e);return t.add(c),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:c})}).catch(e=>console.error("Failed to activate schedule for new thread:",e)))},[h,eR,eI,x,tQ,t0,eE,tM,E,e]),t2=(0,a.useCallback)(async e=>{if(!eE)return void eS(e);eC(t=>{let a=new Set(t);return e?a.add(eE):a.delete(eE),a});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e?"activate":"stop",rootMessageId:eE})})}catch(e){console.error("Failed to toggle autonomous schedule:",e)}},[eE]),t5=(0,a.useCallback)(e=>{let t=e.rootMessageId||e.messageId;e.threadId!==h?(tr.current=t,f(e.threadId)):eD(t),eK(null),window.requestAnimationFrame(()=>{eK(e.messageId),tx.current&&window.clearTimeout(tx.current),tx.current=window.setTimeout(()=>{eK(t=>t===e.messageId?null:t)},2e3)}),tA()},[h,tA,f]),t3=(0,a.useCallback)(async e=>{X(),await g(e)},[g,X]),t4=(0,a.useCallback)(e=>{if(!h||!e)return;let t=M.find(t=>t.id===e);eQ({type:"thread",id:e,preview:t?.content?.slice(0,120)||void 0})},[h,M]),t6=(0,a.useCallback)(async e=>{if(h){eG(e),Y(e);try{let t=new URLSearchParams({threadId:h,rootMessageId:e}),a=await fetch(`/api/history?${t.toString()}`,{method:"DELETE"});if(!a.ok)return void console.error("Failed to delete message thread",await a.text());eD(t=>t===e?null:t),eK(null);let r=M.filter(t=>t.id!==e&&t.rootMessageId!==e);v(h,r),await D(h)}catch(e){console.error("Failed to delete message thread",e)}finally{eG(t=>t===e?null:t)}}},[h,D,M,Y,v]),t8=(0,a.useCallback)(e=>{if(!h||!e)return;let t=M.find(t=>t.id===e);eQ({type:"message",id:e,preview:t?.content?.slice(0,120)||void 0})},[h,M]),t7=(0,a.useCallback)(async e=>{if(h)try{let t=new URLSearchParams({threadId:h,messageId:e}),a=await fetch(`/api/history?${t.toString()}`,{method:"DELETE"});if(!a.ok)return void console.error("Failed to delete message",await a.text());let r=M.filter(t=>t.id!==e);v(h,r),await D(h)}catch(e){console.error("Failed to delete message",e)}},[h,D,M,v]),t9=(0,a.useCallback)(()=>{eZ&&("thread"===eZ.type?t6(eZ.id):t7(eZ.id),eQ(null))},[eZ,t6,t7]),ae=(0,a.useCallback)(()=>{eQ(null)},[]),at=(0,a.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>tQ()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>t0()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>tG()}],[tQ,t0,tG]),aa=(0,a.useMemo)(()=>h?Z.filter(e=>e.thread_ids?.includes(h)):Z,[Z,h]),ar=(0,a.useCallback)(e=>{let a=q.some(t=>["spawning","running"].includes(t.state)&&t.threadId===e)||Object.values(W).some(t=>t.rootMessageId===e)?"working":J.some(t=>t.rootMessageId===e&&"queued"===t.status)?"queued":"ready";return(0,t.jsx)(e3,{onSend:(t,a,r,s,l)=>tJ(e,t,a,l),onStop:()=>Y(e),loading:"ready"!==a,activityStatus:a,participants:tM,projectGroups:aa,projects:tT,messages:M,commands:at,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:eR,onAutoModeChange:t2})},[tJ,Y,W,tM,aa,tT,at,M,eR,t2,q,J]),as=(0,a.useCallback)(()=>{ej(e=>{let t=!e;return tN(t),t})},[tN]),al=async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();ei(t=>t.map(t=>t.id===e.id?e:t))}},an=(0,a.useCallback)((e,t)=>{ep(a=>{let r=tv(en,Z,h);if(!new Set(r).has(e))return a;let s=new Set(a);t?s.add(e):s.delete(e);let l=r.filter(e=>s.has(e));return h&&tt(h,l),l})},[h,en,Z]),ai=(0,a.useCallback)(e=>{let t=Z.find(t=>t.id===e);if(!t||h&&!t.thread_ids?.includes(h))return;let a=t.agents.map(e=>e.agent_id);ep(a),h&&tt(h,a)},[Z,h]),ao=(0,a.useCallback)(()=>{ev(e=>"dark"===e?"light":"dark")},[]),ad=()=>(0,t.jsx)("button",{type:"button",onClick:ao,"aria-label":"dark"===ex?"Switch to light theme":"Switch to dark theme",title:"dark"===ex?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===ex?(0,t.jsx)(tu,{className:"h-4 w-4",strokeWidth:1.75}):(0,t.jsx)(tc,{className:"h-4 w-4",strokeWidth:1.75})}),ac=(0,t.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,t.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:u&&!eb&&(0,t.jsx)("button",{type:"button",onClick:as,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,t.jsx)(td,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,t.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,t.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,t.jsx)(tn.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:2}),(0,t.jsx)("input",{ref:e9,type:"text",value:eO,onChange:e=>ez(e.target.value),onKeyDown:e=>{"Escape"===e.key&&tA()},placeholder:"Search messages…",className:"h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),tC?(0,t.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:eq?"…":e_}),(0,t.jsx)("button",{type:"button",onClick:tA,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,t.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[ad(),(0,t.jsx)(th,{}),eE&&(0,t.jsx)("button",{type:"button",onClick:()=>ek(!ew),"aria-label":ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,"aria-pressed":ew,title:ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ew?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,t.jsx)(to,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,t.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[u?(0,t.jsx)(o.WorkspaceSidebar,{threads:m,participants:en,activeThreadId:h,isLoading:w,isRestoringActiveThread:k,isCreating:b,deletingThreadId:j,renamingThreadId:y,onSelectThread:f,onCreateThread:x,onRenameThread:N,onDeleteThread:t3,activeParticipantIds:eu,onToggleParticipantActive:an,visible:eb,onToggle:as,projects:Z,onCreateProject:Q,onUpdateProject:el,onDeleteProject:ee,onAddAgentToProject:et,onRemoveAgentFromProject:ea,onReorderProjectAgents:er,onUpdateParticipant:al,onSelectProject:ai}):null,(0,t.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:k?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,t.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[eE?(0,t.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,t.jsx)("button",{onClick:()=>eD(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,t.jsx)(ti.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,t.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:tE}),tD&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0",style:{borderColor:tD.color+"40",color:tD.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:tD.color}}),tD.label]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,t.jsxs)("span",{className:"opacity-80",children:[t$.length," agents"]}),(0,t.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,t.jsxs)("span",{className:"opacity-80",children:["Updated ",function(e){if(!e)return"recently";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m ago`;let r=Math.floor(a/60);return r<24?`${r}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(tP)]}),tW&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,t.jsx)("span",{className:"opacity-80",children:tW})]})]})]}),(0,t.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:t$.map(e=>(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:e.name},e.id))}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>void tL(),disabled:tF,title:t_?"Learning is already running for this discussion":"Learn from this discussion",className:`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${tF?"cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:[tF?(0,t.jsx)(R,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,t.jsx)(tp.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,t.jsx)("span",{className:"hidden sm:inline",children:t_?"Learning...":"Learn from discussion"})]}),ad(),(0,t.jsx)(th,{}),(0,t.jsx)("button",{type:"button",onClick:()=>ek(!ew),"aria-label":ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,"aria-pressed":ew,title:ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ew?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,t.jsx)(to,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):ac,tI?(0,t.jsx)(eg,{query:tC,results:eU,total:e_,participants:en,threadTitleById:tS,isLoading:eq,error:eB,onSelectResult:t5}):eE?(0,t.jsx)(eh,{messages:M,streaming:W,participants:en,rootMessageId:eE,queued:J.some(e=>e.rootMessageId===eE&&"queued"===e.status),onClose:()=>eD(null),onCopyThread:tU,onAddToChat:tz,onDeleteThreadRoot:t4,onDeleteMessage:t8,highlightedMessageId:eJ||void 0,renderReplyComposer:ar,activeProcesses:q.filter(e=>["spawning","running"].includes(e.state)&&e.threadId===eE)}):(0,t.jsx)(eo,{messages:M,streaming:W,participants:en,onOpenThread:tZ,onCopyThread:tU,onAddToChat:tz,onDeleteThreadRoot:t4,onSummarize:tK,onCreateTasks:tV,onUpdateTaskDraft:tX,onBuildTasks:tY,summarizingThreads:eV,extractingTasks:e5,buildingDrafts:e8,taskDrafts:e0,deletingThreadRootId:eY,highlightedMessageId:eJ,shipModeThreads:eN,onUpdateMessageThreadStatus:h?(e,t)=>{T(a=>a.map(a=>a.id===e?{...a,threadStatus:t}:a)),S(h,e,t),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:t})})}:void 0,onUpdateMessageOutcomeNote:h?(e,t)=>{T(a=>a.map(a=>a.id===e?{...a,outcomeNote:t}:a)),$(h,e,t);let a=M.find(t=>t.id===e);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:a?.threadStatus??null,outcomeNote:t})})}:void 0}),!tI&&!eE&&(0,t.jsx)(e3,{onSend:t1,onStop:X,loading:"ready"!==K,activityStatus:K,participants:tM,projects:tT,projectGroups:aa,messages:M,commands:at,pendingThreadInsert:tR,onClearPendingThread:()=>tO(null),autoMode:eR,onAutoModeChange:t2})]})})}),c&&(0,t.jsx)(tm,{logs:P,participants:en,onClear:()=>void O(h),open:ew,onToggle:()=>ek(!1)}),(0,t.jsx)(ts,{isOpen:null!==eZ,title:eZ?.type==="thread"?"Delete Thread":"Delete Message",message:eZ?.type==="thread"?"This will permanently delete this thread and all of its replies. This action cannot be undone.":"This will permanently delete this message. This action cannot be undone.",preview:eZ?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:t9,onCancel:ae})]})}e.s(["ChatContainer",()=>tj],30426)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,99438,e=>{"use strict";let t="agx-chat:threads";function r(){let e=globalThis.localStorage;if(!e)throw Error("LocalThreadAdapter requires a browser-like environment with `localStorage`.");return e}function a(){let e=r().getItem(t);if(!e)return{threads:{}};try{let t=JSON.parse(e);if(t&&"object"==typeof t&&t.threads&&"object"==typeof t.threads)return{threads:Object.fromEntries(Object.entries(t.threads).map(([e,t])=>{var r,a;return[e,(r=e,a=t,{id:r,title:a?.title,messages:Array.isArray(a?.messages)?[...a.messages]:[],createdAt:"number"==typeof a?.createdAt?a.createdAt:Date.now(),updatedAt:"number"==typeof a?.updatedAt?a.updatedAt:Date.now(),metadata:a?.metadata,status:a?.status,outcomeNote:a?.outcomeNote,projectId:"string"==typeof a?.projectId?a.projectId:"string"==typeof a?.teamId?a.teamId:a?.projectId===null||a?.teamId===null?null:void 0})]}))}}catch{}return{threads:{}}}function s(e){r().setItem(t,JSON.stringify(e))}function n(e){return{...e,messages:e.messages.map(e=>({...e})),metadata:e.metadata?{...e.metadata}:void 0}}let o=new class{async saveThread(e){let t=Date.now(),r=a(),o=r.threads[e.id],i=o?.createdAt??e.createdAt??t,l=e.updatedAt??t,d={id:e.id,title:e.title,messages:e.messages.map(e=>({...e})),metadata:e.metadata,createdAt:i,updatedAt:l,status:e.status,outcomeNote:e.outcomeNote,projectId:e.projectId??e.teamId};return r.threads[e.id]=d,s(r),n(d)}async loadThread(e){let t=a().threads[e];return t?n(t):null}async listThreads(e){let t=Object.values(a().threads),r=e?.order??"desc",s=[...t].sort((e,t)=>"asc"===r?e.updatedAt-t.updatedAt:t.updatedAt-e.updatedAt),o=Math.max(0,e?.offset??0),i=e?.limit,l="number"==typeof i&&i>=0?s.slice(o,o+i):s.slice(o);return{total:t.length,threads:l.map(n)}}async deleteThread(e){let t=a();t.threads[e]&&(delete t.threads[e],s(t))}};e.s(["threadService",0,{listThreads:async()=>[...(await o.listThreads({order:"desc"})).threads.filter(e=>!0!==e.metadata?.archived)].sort((e,t)=>t.updatedAt-e.updatedAt),async createThread(e){let t="string"==typeof e?.id?e.id.trim():"";if(t){let r=await o.loadThread(t);if(r){let t={...r.metadata??{},...e?.metadata??{},archived:!1,archivedAt:null};return o.saveThread({id:r.id,title:e?.title??r.title,messages:e?.messages?.length?e.messages:r.messages,metadata:t,createdAt:r.createdAt})}}let r={id:t||("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`thread-${Date.now()}-${Math.random().toString(16).slice(2)}`),messages:e?.messages?.length?e.messages:[],title:e?.title,metadata:e?.metadata};return o.saveThread(r)},async deleteThread(e){let t=e.trim();if(!t)return;let r=await o.loadThread(t);if(!r)return;let a={...r.metadata??{},archived:!0,archivedAt:Date.now()};await o.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:a,createdAt:r.createdAt})},async renameThread(e,t){let r=e.trim(),a=t.trim();if(!r||!a)return null;let s=await o.loadThread(r);return s?(s.title?.trim()??"")===a?s:o.saveThread({id:s.id,title:a,messages:s.messages,metadata:s.metadata,createdAt:s.createdAt}):null},async updateThreadStatus(e,t){let r=await o.loadThread(e);return r?r.status===t?r:o.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:t,outcomeNote:r.outcomeNote}):null},async updateThreadOutcomeNote(e,t){let r=await o.loadThread(e);return r?r.outcomeNote===t?r:o.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:t}):null},async updateMessageThreadStatus(e,t,r){let a=await o.loadThread(e);if(!a)return null;let s=a.messages.map(e=>e.id===t?{...e,threadStatus:r}:e);return o.saveThread({id:a.id,title:a.title,messages:s,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async updateMessageOutcomeNote(e,t,r){let a=await o.loadThread(e);if(!a)return null;let s=a.messages.map(e=>e.id===t?{...e,outcomeNote:r}:e);return o.saveThread({id:a.id,title:a.title,messages:s,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async saveThreadMessages(e,t){let r=await o.loadThread(e);if(!r)return null;let a=r.title?.trim()||function(e){let t=e.find(e=>"user"===e.role)?.content?.trim();if(!t)return;let r=t.replace(/\s+/g," ");return r.length>60?`${r.slice(0,60).trim()}…`:r}(t);return function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let a=e[r],s=t[r];if(a.id!==s.id||a.role!==s.role||a.participantId!==s.participantId||a.content!==s.content||a.timestamp!==s.timestamp)return!1}return!0}(r.messages,t)&&(r.title?.trim()||void 0)===a?r:o.saveThread({id:r.id,title:a,messages:t,metadata:r.metadata,createdAt:r.createdAt})}}],99438)},74049,e=>{"use strict";var t=e.i(71645);function r(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!1),[n,o]=(0,t.useState)(null),i=(0,t.useCallback)(async()=>{s(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),o(null)}catch(e){o(e instanceof Error?e:Error("Unknown error"))}finally{s(!1)}},[]);(0,t.useEffect)(()=>{i()},[i]);let l=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:n,refetch:i,createProject:l,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?s:t)),s},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}}function a(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!0),n=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,s]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),s.ok&&(r=((await s.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{s(!1)}},[]);(0,t.useEffect)(()=>{n()},[n]);let o=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,s=a.name.trim(),n=(a.slug||s.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:s,slug:n})});if(!o.ok)return null;let{project:i}=await o.json(),l=Array.isArray(t)?t:t?[t]:[];for(let e of l)await fetch(`/api/projects/${i.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(()=>{});let d={...i,repos:i.repos??[],agents:[],thread_ids:l,workspace_ids:l};return r(e=>[...e,d].sort((e,t)=>e.name.localeCompare(t.name))),d}catch{return null}},[]),i=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),l=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...s,repos:s.repos??t.repos}:t)),s}catch{return null}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:o,updateProject:d,renameProject:i,deleteProject:l,addAgent:c,removeAgent:u,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await n()}catch{}},[n]),refresh:n}}e.s(["useProjects",()=>r,"useProjectsWithAgents",()=>a])},75254,e=>{"use strict";var t=e.i(71645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var s={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:n=2,absoluteStrokeWidth:o,className:i="",children:l,iconNode:d,...c},u)=>(0,t.createElement)("svg",{ref:u,...s,width:a,height:a,stroke:e,strokeWidth:o?24*Number(n)/Number(a):n,className:r("lucide",i),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...d.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(l)?l:[l]])),o=(e,s)=>{let o=(0,t.forwardRef)(({className:o,...i},l)=>(0,t.createElement)(n,{ref:l,iconNode:s,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...i}));return o.displayName=a(e),o};e.s(["default",()=>o],75254)},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return l},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return i}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});function n(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,o(e));else t.set(r,o(a));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},61746,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return i},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(90809)._(e.r(98183)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,a=e.protocol||"",s=e.pathname||"",i=e.hash||"",l=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(n.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==d?(d="//"+(d||""),s&&"/"!==s[0]&&(s="/"+s)):d||(d=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),s=s.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${s}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return i(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return s}});let a=e.r(71645);function s(e,t){let r=(0,a.useRef)(null),s=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(r.current=n(e,a)),t&&(s.current=n(t,a))},[e,t])}function n(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return b},NormalizeError:function(){return v},PageNotFoundError:function(){return y},SP:function(){return f},ST:function(){return h},WEB_VITALS:function(){return n},execOnce:function(){return o},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return x},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return w}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>i.test(e);function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function m(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function x(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await x(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&p(r))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let f="u">typeof performance,h=f&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class v extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class b extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return n}});let a=e.r(18967),s=e.r(52817);function n(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,s.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return g},useLinkStatus:function(){return y}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(90809),o=e.r(18050),i=n._(e.r(71645)),l=e.r(61746),d=e.r(8372),c=e.r(18581),u=e.r(18967),p=e.r(5550);e.r(33525);let m=e.r(91949),x=e.r(73668),f=e.r(9396);function h(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function g(t){var r;let a,s,n,[l,g]=(0,i.useOptimistic)(m.IDLE_LINK_STATUS),y=(0,i.useRef)(null),{href:b,as:j,children:w,prefetch:N=null,passHref:k,replace:S,shallow:C,scroll:A,onClick:T,onMouseEnter:E,onTouchStart:_,legacyBehavior:P=!1,onNavigate:O,ref:z,unstable_dynamicOnHover:I,...$}=t;a=w,P&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let L=i.default.useContext(d.AppRouterContext),M=!1!==N,U=!1!==N?null===(r=N)||"auto"===r?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:D,as:R}=i.default.useMemo(()=>{let e=h(b);return{href:e,as:j?h(j):e}},[b,j]);if(P){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=i.default.Children.only(a)}let F=P?s&&"object"==typeof s&&s.ref:z,B=i.default.useCallback(e=>(null!==L&&(y.current=(0,m.mountLinkInstance)(e,D,L,U,M,g)),()=>{y.current&&((0,m.unmountLinkForCurrentNavigation)(y.current),y.current=null),(0,m.unmountPrefetchableInstance)(e)}),[M,D,L,U,g]),J={ref:(0,c.useMergedRef)(B,F),onClick(t){P||"function"!=typeof T||T(t),P&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!L||t.defaultPrevented||function(t,r,a,s,n,o,l){if("u">typeof window){let d,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,x.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(99781);i.default.startTransition(()=>{u(a||r,n?"replace":"push",o??!0,s.current)})}}(t,D,R,y,S,A,O)},onMouseEnter(e){P||"function"!=typeof E||E(e),P&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),L&&M&&(0,m.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){P||"function"!=typeof _||_(e),P&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),L&&M&&(0,m.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,u.isAbsoluteUrl)(R)?J.href=R:P&&!k&&("a"!==s.type||"href"in s.props)||(J.href=(0,p.addBasePath)(R)),n=P?i.default.cloneElement(s,J):(0,o.jsx)("a",{...$,...J,children:a}),(0,o.jsx)(v.Provider,{value:l,children:n})}e.r(84508);let v=(0,i.createContext)(m.IDLE_LINK_STATUS),y=()=>(0,i.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},7233,e=>{"use strict";let t=(0,e.i(75254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],7233)},55838,(e,t,r)=>{"use strict";var a=e.r(71645),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=a.useState,o=a.useEffect,i=a.useLayoutEffect,l=a.useDebugValue;function d(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!s(e,r)}catch(e){return!0}}var c="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=n({inst:{value:r,getSnapshot:t}}),s=a[0].inst,c=a[1];return i(function(){s.value=r,s.getSnapshot=t,d(s)&&c({inst:s})},[e,r,t]),o(function(){return d(s)&&c({inst:s}),e(function(){d(s)&&c({inst:s})})},[e]),l(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:c},2239,(e,t,r)=>{"use strict";t.exports=e.r(55838)},52822,(e,t,r)=>{"use strict";var a=e.r(71645),s=e.r(2239),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=s.useSyncExternalStore,i=a.useRef,l=a.useEffect,d=a.useMemo,c=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,s){var u=i(null);if(null===u.current){var p={hasValue:!1,value:null};u.current=p}else p=u.current;var m=o(e,(u=d(function(){function e(e){if(!l){if(l=!0,o=e,e=a(e),void 0!==s&&p.hasValue){var t=p.value;if(s(t,e))return i=t}return i=e}if(t=i,n(o,e))return t;var r=a(e);return void 0!==s&&s(t,r)?(o=e,t):(o=e,i=r)}var o,i,l=!1,d=void 0===r?null:r;return[function(){return e(t())},null===d?void 0:function(){return e(d())}]},[t,r,a,s]))[0],u[1]);return l(function(){p.hasValue=!0,p.value=m},[m]),c(m),m}},30224,(e,t,r)=>{"use strict";t.exports=e.r(52822)},63059,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],63059)},88081,e=>{"use strict";let t=(0,e.i(75254).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",()=>t],88081)},88699,e=>{"use strict";let t=(0,e.i(75254).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],88699)},40160,e=>{"use strict";let t=(0,e.i(75254).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",()=>t],40160)},61911,e=>{"use strict";let t=(0,e.i(75254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],61911)},71689,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],71689)},61628,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(22016),s=e.i(71689),n=e.i(64659),o=e.i(63059),i=e.i(74886),l=e.i(43531),d=e.i(40160),c=e.i(75254);let u=(0,c.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var p=e.i(88081),m=e.i(88699),x=e.i(7233);let f=(0,c.default)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),h=(0,c.default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);var g=e.i(61911),v=e.i(37727),y=e.i(74049),b=e.i(25459),j=e.i(99438);function w(e){return e?e.projects??[]:[]}function N(){let[e,c]=(0,r.useState)([]),[N,k]=(0,r.useState)([]),{projects:S,createProject:C,addAgent:A,removeAgent:T,refresh:E}=(0,y.useProjectsWithAgents)(),[_,P]=(0,r.useState)(new Set),[O,z]=(0,r.useState)(null),[I,$]=(0,r.useState)(new Set),[L,M]=(0,r.useState)(!1),[U,D]=(0,r.useState)(null),[R,F]=(0,r.useState)(!1),[B,J]=(0,r.useState)(new Set),[H,K]=(0,r.useState)(!0),[W,V]=(0,r.useState)(!1),[X,q]=(0,r.useState)(null),[Z,Q]=(0,r.useState)(null),[G,Y]=(0,r.useState)(!1),[ee,et]=(0,r.useState)(!1),[er,ea]=(0,r.useState)("choice"),[es,en]=(0,r.useState)(""),[eo,ei]=(0,r.useState)(!1),[el,ed]=(0,r.useState)(null),[ec,eu]=(0,r.useState)(new Set),[ep,em]=(0,r.useState)(new Set),[ex,ef]=(0,r.useState)(!1),[eh,eg]=(0,r.useState)(null),ev=(0,r.useRef)(null),[ey,eb]=(0,r.useState)(new Set),ej=()=>{fetch("/api/participants").then(e=>e.json()).then(e=>c(Array.isArray(e)?e:[]))},ew=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/processes");if(!e.ok)return;let t=await e.json();eb(new Set(t.filter(e=>"spawning"===e.state||"running"===e.state).map(e=>e.agentId)))}catch{}},[]);(0,r.useEffect)(()=>{ej(),j.threadService.listThreads().then(k),ew();let e=setInterval(ew,3e3);return()=>clearInterval(e)},[ew]);let eN=new Map(N.map(e=>[e.id,e])),ek=S.filter(e=>!e.is_default),eS=async()=>{if(0!==B.size){V(!0);try{let e=await fetch("/api/agent-specs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:Array.from(B),includeSelf:H})});if(!e.ok)throw Error("Share failed");let t=await e.json();q(t.code),Q(t.expires_at)}catch(e){console.error("Share error:",e)}finally{V(!1)}}},eC=async()=>{if(0!==B.size){V(!0);try{let e=Array.from(B),t=await fetch("/api/agents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:e})});if(!t.ok)throw Error("Export failed");let r=(await t.json()).agents.map(e=>({...e,self:H?e.self:null})),a={version:1,exportedAt:new Date().toISOString(),agents:r,projects:[]},s=new Blob([JSON.stringify(a,null,2)],{type:"application/json"}),n=URL.createObjectURL(s),o=document.createElement("a");o.href=n,o.download=1===r.length?`${r[0].name.toLowerCase().replace(/\s+/g,"-")}.agent.json`:"agents.bundle.json",o.click(),URL.revokeObjectURL(n),F(!1)}catch(e){console.error("Export error:",e)}finally{V(!1)}}},eA=async()=>{if(0!==es.trim().length){ei(!0),eg(null),ed(null);try{let e=await fetch(`/api/agent-specs/pull?code=${encodeURIComponent(es.trim())}`);if(!e.ok){let t=await e.json().catch(()=>({error:"Failed to pull"}));eg(t.error||"Code not found or expired");return}let t=(await e.json()).bundle;ed(t),eu(new Set(t.agents.map(e=>e.id))),em(new Set(w(t).map(e=>e.name)))}catch{eg("Failed to connect. Is agx-api running?")}finally{ei(!1)}}},eT=async()=>{if(el){ef(!0);try{let t=new Set(e.map(e=>e.id));for(let e of el.agents){if(!ec.has(e.id))continue;let r={name:e.name,provider:e.provider,model:e.model,color:e.color,identity:e.identity||void 0,identityFile:e.identityFile||void 0,skills:e.skills||[],variables:e.variables||{}};t.has(e.id)?(r.id=e.id,await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})):await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}for(let e of w(el)){if(!ep.has(e.name))continue;let t=await C(e.name);if(t)for(let r of e.agentIds)ec.has(r)&&await A(t.id,r)}ej(),await E(),et(!1),ed(null)}catch(e){console.error("Import error:",e),eg("Import failed. Check console for details.")}finally{ef(!1)}}},eE=O?S.find(e=>e.id===O.projectId):null,e_=new Set(eE?.agents.map(e=>e.agent_id)??[]),eP=O?e.filter(e=>!e_.has(e.id)):[],eO=({checked:e})=>(0,t.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${e?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--app-shell-soft-text)]"}`,children:e&&(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,t.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})});return(0,t.jsxs)("div",{className:"min-h-screen bg-[var(--secondary)] p-6",children:[(0,t.jsxs)("div",{className:"max-w-6xl mx-auto",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,t.jsxs)(a.default,{href:"/",className:"inline-flex items-center gap-1 text-sm text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",children:[(0,t.jsx)(s.ArrowLeft,{size:16}),"Back"]}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-[var(--foreground)]",children:"Manage Agents"}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 transition-colors",onClick:()=>M(!0),children:[(0,t.jsx)(x.Plus,{size:13}),"New Agent"]}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 transition-colors",onClick:()=>{J(new Set(e.map(e=>e.id))),K(!0),q(null),Q(null),Y(!1),F(!0)},disabled:0===e.length,children:[(0,t.jsx)(f,{size:13}),"Share"]}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-violet-600 bg-violet-50 border border-violet-200 rounded-lg hover:bg-violet-100 transition-colors",onClick:()=>{ea("choice"),en(""),ed(null),eu(new Set),em(new Set),eg(null),et(!0)},children:[(0,t.jsx)(d.Download,{size:13}),"Import"]}),(0,t.jsx)("input",{ref:ev,type:"file",accept:".json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];if(!t)return;eg(null);let r=new FileReader;r.onload=()=>{try{let e=JSON.parse(r.result);if(!e.version||!Array.isArray(e.agents))throw Error("Invalid bundle format");ed(e),eu(new Set(e.agents.map(e=>e.id))),em(new Set(w(e).map(e=>e.name)))}catch{eg("Invalid file. Expected an .agent.json bundle.")}},r.readAsText(t),e.target.value=""}})]})]}),eh&&!ee&&(0,t.jsxs)("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",children:[(0,t.jsx)("span",{children:eh}),(0,t.jsx)("button",{type:"button",onClick:()=>eg(null),className:"text-red-400 hover:text-red-600",children:(0,t.jsx)(v.X,{size:14})})]}),0===e.length?(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm",children:"No agents configured yet."}):(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:e.map(e=>(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] p-4 hover:shadow-md transition-shadow text-left group",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 mb-3",children:[(0,t.jsx)("img",{src:(0,b.agentAvatarUrl)(e.id,48,e.color),alt:e.name,className:"w-12 h-12 rounded-full bg-[var(--secondary)]"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"font-medium text-[var(--foreground)] truncate",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] truncate mt-0.5",children:e.model}),ey.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 mt-1 text-[10px] font-medium text-emerald-600",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse"}),"Working"]})]})]}),e.skills&&e.skills.length>0&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-1 mb-3",children:[e.skills.slice(0,3).map((e,r)=>(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-blue-50 text-blue-600 truncate max-w-[120px]",children:e.file.split("/").pop()},r)),e.skills.length>3&&(0,t.jsxs)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--secondary)] text-[var(--app-shell-soft-text)]",children:["+",e.skills.length-3]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between pt-2 border-t border-[var(--border)]",children:[(0,t.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-[var(--secondary)] text-[var(--muted-foreground)] uppercase tracking-wide",children:e.provider}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)("button",{type:"button",title:"Edit",onClick:()=>D(e),className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,t.jsx)(m.Pencil,{size:13})}),(0,t.jsx)(a.default,{href:`/agents/${e.id}`,title:"View profile",className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,t.jsx)(u,{size:13})})]})]})]},e.id))}),(0,t.jsxs)("div",{className:"mt-10",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-[var(--foreground)]",children:"Project assignments"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--app-shell-soft-text)]",children:"Assign agents to existing projects."})]}),0===ek.length?(0,t.jsx)("p",{className:"text-sm text-[var(--app-shell-soft-text)]",children:"No projects available for assignment."}):(0,t.jsx)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] divide-y divide-[var(--border)]",children:ek.map(r=>{let a=_.has(r.id),s=(r.thread_ids??[]).map(e=>eN.get(e)?.title?.trim()||"Untitled").filter(Boolean);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 px-5 py-3.5 group",children:[(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-3 flex-1 min-w-0 text-left",onClick:()=>{var e;return e=r.id,void P(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},children:[a?(0,t.jsx)(n.ChevronDown,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}):(0,t.jsx)(o.ChevronRight,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,t.jsx)(g.Users,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)] text-sm",children:r.name}),(0,t.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)]",children:[r.agents.length," ",1===r.agents.length?"agent":"agents",s.length>0&&` \xb7 ${s.length} ${1===s.length?"thread":"threads"}`]})]}),(0,t.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",title:"Add agents",onClick:()=>{$(new Set),z({projectId:r.id})},children:[(0,t.jsx)(x.Plus,{size:14}),"Add agents"]})})]}),a&&(0,t.jsxs)("div",{className:"px-5 pb-4 pt-1 ml-9 flex flex-col gap-1",children:[0===r.agents.length&&(0,t.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] py-1",children:"No agents in this project."}),r.agents.map(a=>{let s=e.find(e=>e.id===a.agent_id);return(0,t.jsxs)("div",{className:"flex items-center gap-2.5 py-1.5 group/agent",children:[(0,t.jsx)("img",{src:(0,b.agentAvatarUrl)(a.agent_id,24,s?.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm text-[var(--secondary-foreground)] truncate flex-1",children:s?.name??a.agent_id}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:s?.model}),(0,t.jsx)("button",{type:"button",className:"opacity-0 group-hover/agent:opacity-100 text-[var(--app-shell-soft-text)] hover:text-red-500 transition-opacity",onClick:()=>void T(r.id,a.agent_id),title:"Remove from project",children:(0,t.jsx)(v.X,{size:14})})]},a.agent_id)}),(0,t.jsxs)("button",{type:"button",className:"mt-2 inline-flex items-center gap-1.5 self-start rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",onClick:()=>{$(new Set),z({projectId:r.id})},children:[(0,t.jsx)(x.Plus,{size:12}),"Add agents"]}),s.length>0&&(0,t.jsxs)("div",{className:"mt-2 pt-2 border-t border-[var(--border)]",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-1",children:"Threads"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map((e,r)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md bg-indigo-50 text-indigo-600",children:[(0,t.jsx)(p.Hash,{size:11}),e]},r))})]})]})]},r.id)})})]})]}),R&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>F(!1),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Share Agents"}),(0,t.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>F(!1),children:(0,t.jsx)(v.X,{size:16})})]}),X?(0,t.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] mb-3",children:"Share this code with the recipient:"}),(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,t.jsx)("span",{className:"text-3xl font-mono font-bold tracking-[0.3em] text-[var(--foreground)]",children:X}),(0,t.jsx)("button",{type:"button",className:"p-2 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] transition-colors",onClick:()=>{X&&(navigator.clipboard.writeText(X),Y(!0),setTimeout(()=>Y(!1),2e3))},children:G?(0,t.jsx)(l.Check,{size:18,className:"text-green-500"}):(0,t.jsx)(i.Copy,{size:18})})]})]}),Z&&(0,t.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Expires ",new Date(Z).toLocaleTimeString()]}),(0,t.jsx)("button",{type:"button",className:"px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>F(!1),children:"Done"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"overflow-y-auto flex-1",children:[ek.length>0&&(0,t.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-3",children:[(0,t.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-2",children:"Select by project"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:ek.map(r=>{let a=r.agents.map(e=>e.agent_id),s=a.length>0&&a.every(e=>B.has(e)),n=a.some(e=>B.has(e));return(0,t.jsxs)("button",{type:"button",className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors ${s?"bg-[var(--foreground)] text-white":n?"bg-[var(--app-shell-soft-text)] text-[var(--secondary-foreground)]":"bg-[var(--secondary)] text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{J(e=>{let t=new Set(e);return s?a.forEach(e=>t.delete(e)):a.forEach(e=>t.add(e)),t})},title:a.map(t=>e.find(e=>e.id===t)?.name??t).join(", "),children:[(0,t.jsx)(g.Users,{size:10}),r.name,(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:r.agents.length})]},r.id)})})]}),(0,t.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,t.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,t.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:"Agents"}),(0,t.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{B.size===e.length?J(new Set):J(new Set(e.map(e=>e.id)))},children:B.size===e.length?"Deselect all":"Select all"})]}),e.map(e=>{let r=B.has(e.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${r?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{J(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},children:[(0,t.jsx)(eO,{checked:r}),(0,t.jsx)("img",{src:(0,b.agentAvatarUrl)(e.id,24,e.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:e.name}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:e.provider})]},e.id)})]}),(0,t.jsx)("div",{className:"px-5 py-3",children:(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors ${H?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>K(!H),children:[(0,t.jsx)(eO,{checked:H}),(0,t.jsx)("span",{className:"text-xs font-medium",children:"Include self.md (agent bio)"})]})})]}),(0,t.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:[B.size," ",1===B.size?"agent":"agents"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)("button",{type:"button",disabled:0===B.size||W,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--card-bg)] border border-[var(--border)] rounded-lg hover:bg-[var(--item-hover-bg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void eC(),children:[(0,t.jsx)(d.Download,{size:12}),W?"Exporting...":"Export to File"]}),(0,t.jsxs)("button",{type:"button",disabled:0===B.size||W,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void eS(),children:[(0,t.jsx)(f,{size:12}),W?"Pushing...":"Push to Hub"]}),(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>F(!1),children:"Cancel"})]})]})]})]})}),O&&!L&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>z(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",eE?.name??"project"]}),(0,t.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>z(null),children:(0,t.jsx)(v.X,{size:16})})]}),(0,t.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,t.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)] transition-colors border-b border-[var(--border)]",onClick:()=>M(!0),children:[(0,t.jsx)(x.Plus,{size:14,className:"text-[var(--app-shell-soft-text)]"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===eP.length?(0,t.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--app-shell-soft-text)] text-center",children:"All agents are already in this project"}):eP.map(e=>{let r=I.has(e.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${r?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{$(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},children:[(0,t.jsx)(eO,{checked:r}),(0,t.jsx)("img",{src:(0,b.agentAvatarUrl)(e.id,24,e.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsx)("div",{className:"min-w-0 flex-1 text-left",children:(0,t.jsx)("div",{className:"truncate font-medium text-xs",children:e.name})})]},e.id)})]}),eP.length>0&&(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>z(null),children:"Cancel"}),(0,t.jsxs)("button",{type:"button",disabled:0===I.size,className:"px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let e of I)A(O.projectId,e);z(null)},children:["Add ",I.size>0?`(${I.size})`:""]})]})]})}),L&&(0,t.jsx)(b.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[]},submitLabel:"Create",projects:ek.map(e=>{let t=(e.thread_ids??[]).map(e=>eN.get(e)?.title?.trim()).filter(Boolean).join(", ")||"No thread";return{id:e.id,name:e.name,label:`${t} › ${e.name}`}}),initialProjectIds:O?[O.projectId]:[],onSubmit:async(t,r)=>{let a=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],s=a[e.length%a.length],n=t.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),o=r?.[0],i=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:n,name:t.name,provider:t.provider,model:t.model,color:t.color??s,...t.identity?{identity:t.identity}:{},skills:t.skills??[],...o?{projectId:o}:{}})});if(i.ok){let e=await i.json().catch(()=>({})),t="string"==typeof e?.id&&e.id.trim()?e.id.trim():n;for(let e of(r??[]).slice(1))await A(e,t);M(!1),z(null),ej(),E()}},onCancel:()=>{M(!1)}}),U&&(0,t.jsx)(b.AgentForm,{title:"Edit agent",initial:{name:U.name,provider:U.provider,model:U.model||"",identity:U.identity||"",color:U.color,skills:U.skills||[]},agentId:U.id,submitLabel:"Save",projectMemberships:{current:S.filter(e=>e.agents.some(e=>e.agent_id===U.id)).map(e=>({id:e.id,name:e.name,is_default:!!e.is_default})),available:S.filter(e=>!e.agents.some(e=>e.agent_id===U.id)).map(e=>({id:e.id,name:e.name}))},onAddToProject:e=>A(e,U.id),onRemoveFromProject:e=>T(e,U.id),onSubmit:async e=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:U.id,name:e.name,provider:e.provider,model:e.model,color:e.color,...e.identity?{identity:e.identity}:{},skills:e.skills??[]})}),D(null),ej()},onCancel:()=>D(null)}),ee&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>et(!1),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Import Agents"}),(0,t.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>et(!1),children:(0,t.jsx)(v.X,{size:16})})]}),"choice"===er&&!el&&(0,t.jsxs)("div",{className:"px-5 py-6 flex flex-col gap-3",children:[(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-violet-300 hover:bg-violet-50 transition-colors text-left",onClick:()=>ea("pull"),children:[(0,t.jsx)("div",{className:"w-9 h-9 rounded-lg bg-violet-100 flex items-center justify-center flex-shrink-0",children:(0,t.jsx)(d.Download,{size:16,className:"text-violet-600"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Pull from Hub"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Enter a share code to import agents"})]})]}),(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-[var(--border)] hover:bg-[var(--item-hover-bg)] transition-colors text-left",onClick:()=>{ea("file"),setTimeout(()=>ev.current?.click(),100)},children:[(0,t.jsx)("div",{className:"w-9 h-9 rounded-lg bg-[var(--secondary)] flex items-center justify-center flex-shrink-0",children:(0,t.jsx)(h,{size:16,className:"text-[var(--muted-foreground)]"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Upload File"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Import from a .agent.json bundle"})]})]})]}),"pull"===er&&!el&&(0,t.jsxs)("div",{className:"px-5 py-5 flex flex-col gap-3",children:[(0,t.jsx)("label",{className:"text-sm text-[var(--muted-foreground)]",children:"Enter share code:"}),(0,t.jsx)("input",{autoFocus:!0,type:"text",value:es,onChange:e=>en(e.target.value.toUpperCase()),placeholder:"e.g. A3X9K2",maxLength:6,className:"w-full px-3 py-2.5 text-center text-2xl font-mono font-bold tracking-[0.3em] border border-[var(--border)] rounded-lg outline-none focus:border-violet-400 focus:ring-1 focus:ring-violet-200 transition-all bg-[var(--card-bg)] text-[var(--foreground)]",onKeyDown:e=>{"Enter"===e.key&&eA()}}),eh&&(0,t.jsx)("p",{className:"text-xs text-red-500",children:eh}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 mt-1",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>{ea("choice"),eg(null)},children:"Back"}),(0,t.jsx)("button",{type:"button",disabled:0===es.trim().length||eo,className:"px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void eA(),children:eo?"Fetching...":"Fetch"})]})]}),"file"===er&&!el&&(0,t.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-3",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Select a .agent.json file to import"}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>ev.current?.click(),children:[(0,t.jsx)(h,{size:13}),"Choose File"]}),eh&&(0,t.jsx)("p",{className:"text-xs text-red-500",children:eh}),(0,t.jsx)("button",{type:"button",className:"text-xs text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] mt-1",onClick:()=>{ea("choice"),eg(null)},children:"Back"})]}),el&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"overflow-y-auto flex-1",children:[el.exportedAt&&(0,t.jsx)("div",{className:"px-5 py-3 border-b border-[var(--border)] bg-[var(--secondary)]",children:(0,t.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Exported ",new Date(el.exportedAt).toLocaleDateString()," · ",el.agents.length," agents",w(el).length>0?`, ${w(el).length} projects`:""]})}),(0,t.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,t.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,t.jsxs)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:[el.agents.length," agent",1===el.agents.length?"":"s"," found"]}),(0,t.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{ec.size===el.agents.length?eu(new Set):eu(new Set(el.agents.map(e=>e.id)))},children:ec.size===el.agents.length?"Deselect all":"Select all"})]}),el.agents.map(r=>{let a=ec.has(r.id),s=e.find(e=>e.id===r.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2.5 text-sm transition-colors ${a?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{eu(e=>{let t=new Set(e);return t.has(r.id)?t.delete(r.id):t.add(r.id),t})},children:[(0,t.jsx)(eO,{checked:a}),(0,t.jsx)("img",{src:(0,b.agentAvatarUrl)(r.id,24,r.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,t.jsx)("div",{className:"truncate text-xs font-medium",children:r.name}),(0,t.jsxs)("div",{className:"truncate text-[10px] text-[var(--app-shell-soft-text)]",children:[r.provider,r.model?` \xb7 ${r.model}`:""]})]}),s&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-amber-50 text-amber-600 flex-shrink-0",children:"update"}),!s&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-green-50 text-green-600 flex-shrink-0",children:"new"}),r.self&&(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex-shrink-0",children:"+ self.md"})]},r.id)})]}),w(el).length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"px-5 pt-3 pb-1",children:(0,t.jsx)("p",{className:"text-[11px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Projects"})}),w(el).map(e=>{let r=ep.has(e.name);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${r?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{em(t=>{let r=new Set(t);return r.has(e.name)?r.delete(e.name):r.add(e.name),r})},children:[(0,t.jsx)(eO,{checked:r}),(0,t.jsx)(g.Users,{size:14,className:"text-[var(--muted-foreground)] flex-shrink-0"}),(0,t.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:e.name}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:[e.agentIds.length," agents"]})]},e.name)})]})]}),eh&&(0,t.jsx)("div",{className:"px-5 py-2",children:(0,t.jsx)("p",{className:"text-xs text-red-500",children:eh})}),(0,t.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:[ec.size," ",1===ec.size?"agent":"agents",ep.size>0?`, ${ep.size} ${1===ep.size?"project":"projects"}`:""]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>{ed(null),eu(new Set),em(new Set)},children:"Back"}),(0,t.jsxs)("button",{type:"button",disabled:0===ec.size||ex,className:"inline-flex items-center gap-1.5 px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void eT(),children:[(0,t.jsx)(h,{size:12}),ex?"Importing...":`Import ${ec.size} agent${1===ec.size?"":"s"}`]})]})]})]})]})})]})}e.s(["default",()=>N],61628)}]);