@mndrk/agx 2.0.32 → 2.0.33

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 (434) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +3 -4
  35. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +3 -3
  39. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/app-paths-manifest.json +3 -0
  54. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/build-manifest.json +11 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/server-reference-manifest.json +4 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +8 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.map +5 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route_client-reference-manifest.js +2 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +2 -2
  71. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +3 -2
  75. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +4 -3
  99. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +6 -6
  101. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +2 -3
  105. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +2 -3
  107. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +3 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  111. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +4 -4
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +2 -2
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +5 -5
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +6 -6
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +6 -6
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +3 -3
  173. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +3 -3
  175. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  182. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  183. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  187. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  189. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  190. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  191. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  195. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
  201. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  207. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  208. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  214. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  218. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  225. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  226. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  227. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  229. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  230. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  240. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  244. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  245. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  247. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  249. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  253. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  254. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  256. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  258. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  260. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  263. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  264. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  265. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  266. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  267. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  269. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  270. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  271. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  272. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +1 -0
  273. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +80 -0
  274. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0b3b6a47._.js +51 -0
  275. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__86f7d27b._.js → [root-of-the-server]__18423486._.js} +2 -2
  276. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dede3dcd._.js → [root-of-the-server]__19520d85._.js} +1 -1
  277. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__399b2ca9._.js → [root-of-the-server]__1c18c0d1._.js} +2 -2
  278. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +3 -0
  279. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +42 -0
  280. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6e59b27c._.js → [root-of-the-server]__32b13ba9._.js} +2 -2
  281. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1dd062c1._.js → [root-of-the-server]__3c1567b6._.js} +2 -2
  282. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__29ce9c60._.js → [root-of-the-server]__3c37453e._.js} +2 -2
  283. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__507a4363._.js → [root-of-the-server]__3faa64cd._.js} +2 -2
  284. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +80 -0
  285. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e446cb39._.js → [root-of-the-server]__4837d72a._.js} +2 -2
  286. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__10940c29._.js → [root-of-the-server]__49c03d66._.js} +2 -2
  287. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b40c7aab._.js → [root-of-the-server]__4a8d14c1._.js} +2 -2
  288. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__75bff965._.js → [root-of-the-server]__4c861686._.js} +2 -2
  289. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d8c6e3d._.js +58 -0
  290. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +1 -1
  291. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__94fa1edc._.js → [root-of-the-server]__588b6ab0._.js} +2 -2
  292. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ccfcbcd5._.js → [root-of-the-server]__5a348fba._.js} +2 -2
  293. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9dfaaf72._.js → [root-of-the-server]__61c99680._.js} +2 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c08bef05._.js → [root-of-the-server]__6acb940d._.js} +2 -2
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98535eb3._.js → [root-of-the-server]__7e79d86a._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c187704._.js → [root-of-the-server]__7ffcc20c._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5634f17._.js → [root-of-the-server]__875279cb._.js} +1 -1
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13677d96._.js → [root-of-the-server]__8b0ab82f._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5b93200._.js → [root-of-the-server]__8b461158._.js} +2 -2
  300. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +80 -0
  301. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +80 -0
  302. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e6ad07c3._.js → [root-of-the-server]__a67cd108._.js} +2 -2
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d8cedc8a._.js → [root-of-the-server]__abb032c1._.js} +2 -2
  304. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b3ed0a00._.js +46 -0
  305. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b63cb741._.js +63 -0
  306. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2388b2b3._.js → [root-of-the-server]__b9b3fde6._.js} +2 -2
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f4b70b67._.js → [root-of-the-server]__be4ad4b5._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +80 -0
  309. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5ca87ba0._.js → [root-of-the-server]__c480c9c2._.js} +2 -2
  310. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +79 -0
  311. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c99509c2._.js +101 -0
  312. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +1 -1
  313. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d6e1ee6e._.js +32 -0
  314. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__80655727._.js → [root-of-the-server]__e069c0a3._.js} +2 -2
  315. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5a2358a._.js → [root-of-the-server]__e1e51c02._.js} +2 -2
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__12afd8a3._.js → [root-of-the-server]__ef82dda1._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +25 -0
  318. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1b7932f._.js +36 -0
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d318eb0._.js → [root-of-the-server]__f701b208._.js} +24 -24
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2e596cc8._.js → [root-of-the-server]__fee58db1._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffffceac._.js +6 -0
  322. package/cloud-runtime/standalone/.next/server/chunks/_5462a047._.js +3 -0
  323. package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +57 -0
  324. package/cloud-runtime/standalone/.next/server/chunks/_c965f7b3._.js +3 -0
  325. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
  326. package/cloud-runtime/standalone/.next/server/chunks/{_3e0d34cc._.js → _d22934ab._.js} +24 -24
  327. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_knowledge-notes_route_actions_0ddf6109.js +3 -0
  328. package/cloud-runtime/standalone/.next/server/chunks/lib_7cad5c77._.js +64 -0
  329. package/cloud-runtime/standalone/.next/server/chunks/lib_87c06aeb._.js +25 -0
  330. package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
  331. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +1 -1
  332. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +45 -37
  333. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +45 -37
  334. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +12 -12
  335. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a8a8afdc._.js → [root-of-the-server]__04d1aa70._.js} +2 -2
  336. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9166c1d6._.js → [root-of-the-server]__2d80540b._.js} +2 -2
  337. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ffa2883._.js +1 -1
  338. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +1 -1
  339. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1322ced8._.js → [root-of-the-server]__a416df95._.js} +2 -2
  340. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__783669c3._.js → [root-of-the-server]__c108f06c._.js} +2 -2
  341. package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +1 -1
  342. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_0f4e70b1._.js → _41f60c52._.js} +2 -2
  343. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6b14826d._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6fc3736e._.js → _84879a01._.js} +2 -2
  345. package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +1 -1
  346. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_ff5799d6._.js → _9eeb2fa0._.js} +2 -2
  347. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_68ac991e._.js → _a1d30b20._.js} +2 -2
  348. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_5b2b8a85._.js → _c87c359c._.js} +2 -2
  349. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_fb292eed._.js → _dd31b6e0._.js} +2 -2
  350. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6de3f1de._.js → _f0ce6183._.js} +2 -2
  351. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +1 -1
  352. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bf855424._.js +3 -0
  355. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +1 -0
  356. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  357. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  358. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  359. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  360. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  361. package/cloud-runtime/standalone/.next/static/chunks/{a66e1891e808a664.js → 012e3e9699415997.js} +1 -1
  362. package/cloud-runtime/standalone/.next/static/chunks/031d99fbe758545a.js +1 -0
  363. package/cloud-runtime/standalone/.next/static/chunks/{87f099ea02aa419d.js → 116985039c24f1f8.js} +9 -9
  364. package/cloud-runtime/standalone/.next/static/chunks/2ee8d24314eec47c.js +1 -0
  365. package/cloud-runtime/standalone/.next/static/chunks/3a55441b018d52e4.js +1 -0
  366. package/cloud-runtime/standalone/.next/static/chunks/{cd308f61797939cd.js → 43f6157bc3db9c52.js} +2 -2
  367. package/cloud-runtime/standalone/.next/static/chunks/{58025a80caa3629d.js → 56a01238098d495d.js} +9 -9
  368. package/cloud-runtime/standalone/.next/static/chunks/{6fbe08eab578c7d3.js → 601996727991149e.js} +9 -9
  369. package/cloud-runtime/standalone/.next/static/chunks/851b1d97179bd39b.css +1 -0
  370. package/cloud-runtime/standalone/.next/static/chunks/90b581e9631d8cea.js +1 -0
  371. package/cloud-runtime/standalone/.next/static/chunks/b22947e6df238fd5.js +1 -0
  372. package/cloud-runtime/standalone/.next/static/chunks/{4200b512bdc226bc.js → b2dcd19ebe3af3f6.js} +9 -9
  373. package/cloud-runtime/standalone/.next/static/chunks/{e62d5fa120fdf21f.js → bc06988336ffd261.js} +1 -1
  374. package/cloud-runtime/standalone/.next/static/chunks/{1f415d0ce7ebbd08.js → c93b9643c81c134e.js} +1 -1
  375. package/cloud-runtime/standalone/.next/static/chunks/{88e24940a5d5d386.js → d78cc7d749043fef.js} +1 -1
  376. package/cloud-runtime/standalone/.next/static/chunks/ebaf4e8f04bae7b6.js +1 -0
  377. package/cloud-runtime/standalone/.next/static/chunks/f4909e7ae8229b1c.js +1 -0
  378. package/cloud-runtime/standalone/.next/static/chunks/fd221a50082e5128.js +1 -0
  379. package/cloud-runtime/standalone/app/api/chat/route.ts +36 -0
  380. package/cloud-runtime/standalone/app/api/knowledge-notes/route.ts +53 -0
  381. package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +210 -26
  382. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +62 -41
  383. package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +19 -9
  384. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +33 -28
  385. package/cloud-runtime/standalone/hooks/useGroupChat.ts +4 -0
  386. package/cloud-runtime/standalone/hooks/useProcessPolling.ts +4 -3
  387. package/cloud-runtime/standalone/hooks/useThreadState.ts +10 -2
  388. package/cloud-runtime/standalone/lib/cli-runner.ts +212 -14
  389. package/cloud-runtime/standalone/lib/db.ts +1 -1
  390. package/cloud-runtime/standalone/lib/debug-log.ts +48 -0
  391. package/cloud-runtime/standalone/lib/history-store.ts +78 -2
  392. package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +51 -0
  393. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +6 -0
  394. package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +117 -2
  395. package/cloud-runtime/standalone/transcri +0 -0
  396. package/cloud-runtime/standalone/worker/index.js +604 -165
  397. package/lib/cli/runCli.js +0 -97
  398. package/lib/commands/update.js +159 -17
  399. package/package.json +1 -1
  400. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +0 -46
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +0 -29
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +0 -52
  403. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +0 -55
  404. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +0 -20
  405. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +0 -52
  406. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +0 -67
  407. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +0 -8
  408. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +0 -52
  409. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4dc25d71._.js +0 -18
  410. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +0 -52
  411. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +0 -52
  412. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +0 -52
  413. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +0 -25
  414. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e45a2a1d._.js +0 -3
  415. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +0 -15
  416. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +0 -3
  417. package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +0 -57
  418. package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +0 -57
  419. package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +0 -18
  420. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +0 -3
  421. package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +0 -3
  422. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +0 -3
  423. package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +0 -1
  424. package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +0 -1
  425. package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +0 -1
  426. package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +0 -1
  427. package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +0 -1
  428. package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +0 -1
  429. package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +0 -1
  430. package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +0 -1
  431. package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +0 -1
  432. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_buildManifest.js +0 -0
  433. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_clientMiddlewareManifest.json +0 -0
  434. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_ssgManifest.js +0 -0
@@ -5,6 +5,6 @@ ${a.content}
5
5
  </file>`).join("\n\n")+"\n\n";return{fileContextBlocks:b,contextPrefix:c}}var aF=a.i(83489);let aG=aF.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:a,HTMLAttributes:b}){let c="parallel"===a.attrs.mode;return["span",(0,aF.mergeAttributes)(b,{"data-participant-mention":"","data-id":a.attrs.id,"data-mode":a.attrs.mode,class:c?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${c?"@@":"@"}${a.attrs.name}`]}}),aH=aF.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:a,HTMLAttributes:b})=>["span",(0,aF.mergeAttributes)(b,{"data-project-mention":"","data-id":a.attrs.id,"data-slug":a.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${a.attrs.name}`]}),aI=aF.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:a,HTMLAttributes:b}){let c=a.attrs.relativePath||a.attrs.path;return["span",(0,aF.mergeAttributes)(b,{"data-file-mention":"","data-path":a.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${c}`]}}),aJ=aF.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,aF.mergeAttributes)(b,{"data-thread-mention":"","data-thread-id":a.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${a.attrs.title}`]});function aK(a){if(!a.content)return"";let b=[];for(let c of a.content)c.type,b.push(function(a){if(!a.content)return"";let b="";for(let c of a.content)switch(c.type){case"text":b+=c.text??"";break;case"participantMention":{let a=c.attrs??{},d="parallel"===a.mode?"@@":"@";b+=`${d}${a.name}`;break}case"projectMention":{let a=c.attrs??{},d=String(a.slug??"").trim();d?b+=`@~project:${d}`:a.name&&(b+=`@${a.name}`);break}case"fileMention":{let a=c.attrs??{},d=a.relativePath||a.path;b+=`@${d}`;break}case"threadMention":{let a=((c.attrs??{}).threadId??"").slice(0,8);b+=`@#${a}`;break}default:"hardBreak"===c.type&&(b+="\n")}return b}(c));return b.join("\n")}function aL(a){let{state:b}=a,{$from:c}=b.selection,d=c.depth,e=-1;for(let a=d;a>=0;a--)if("paragraph"===c.node(a).type.name){e=a;break}if(-1===e)return null;let f=c.node(e),g=c.start(e),h=c.pos-g,i="",j=0,k=!1;return f.forEach((a,b)=>{let c=b+a.nodeSize;if(a.isText){let d=a.text??"";!k&&h>=b&&h<=c&&(j=i.length+(h-b),k=!0),i+=d}else if(a.isAtom){let d=aM(a);!k&&h>=b&&h<=c&&(j=i.length+d.length,k=!0),i+=d}}),k||(j=i.length),{text:i,cursorPos:j,blockStart:g}}function aM(a){switch(a.type.name){case"participantMention":{let b="parallel"===a.attrs.mode?"@@":"@";return`${b}${a.attrs.name}`}case"fileMention":{let b=a.attrs.relativePath||a.attrs.path;return`@${b}`}case"threadMention":{let b=(a.attrs.threadId??"").slice(0,8);return`@#${b}`}default:return""}}function aN(a,b,c,d){let{state:e}=a,f=e.doc.resolve(b),g=f.depth,h=null,i=b;for(let a=g;a>=0;a--){let b=f.node(a);if("paragraph"===b.type.name){h=b,i=f.start(a);break}}h||(h=e.doc.resolve(b).parent,i=b);let j=0,k=null,l=null;return(h.forEach((a,b)=>{let e=i+b,f=a.nodeSize;if(a.isText){let b=a.text??"",f=j+b.length;null===k&&c>=j&&c<=f&&(k=e+(c-j)),null===l&&d>=j&&d<=f&&(l=e+(d-j)),j=f}else if(a.isAtom){let b=aM(a),g=j+b.length;null===k&&c>=j&&c<=g&&(k=e),null===l&&d>=j&&d<=g&&(l=e+f),j=g}}),null===k&&c>=j&&(k=i+h.content.size),null===l&&d>=j&&(l=i+h.content.size),null===k||null===l)?null:{from:k,to:l}}let aO=(0,t.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 aP=a.i(60246);function aQ({isOpen:a,suggestions:d,activeIndex:e,listboxId:f,optionIdPrefix:g,onSelect:h}){let i=(0,c.useRef)([]);if((0,c.useEffect)(()=>{a&&i.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),!a||0===d.length)return null;let j=new Set;return(0,b.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,b.jsx)("div",{role:"listbox",id:f,"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:d.map((a,c)=>{let d=c===e,f="project-group"===a.kind?`project-group-${a.project.id}`:"project"===a.kind?`project-${a.project.id}`:a.participant.id,k=a.group,l=null;if(k&&!j.has(k)&&(j.add(k),l=(0,b.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:k})),"project-group"===a.kind)return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${f}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(aP.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:a.project.name}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[a.project.agents.length," agent",1!==a.project.agents.length?"s":""]})]})})]},f);if("project"===a.kind)return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${f}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(aO,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:a.project.name}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.project.slug})]})})]},f);let m=a.participant;return(0,b.jsxs)("div",{children:[l,(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${m.id}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${k?" pl-6":""}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:m.color},"aria-hidden":!0}),(0,b.jsx)("span",{className:"font-medium",children:m.name}),"all"===m.id?(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):m.model&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:m.model})]})})]},f)})})})}function aR({isOpen:a,commands:d,activeIndex:e,listboxId:f,optionIdPrefix:g,onSelect:h}){let i=(0,c.useRef)([]);return((0,c.useEffect)(()=>{a&&i.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),a&&0!==d.length)?(0,b.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,b.jsx)("div",{role:"listbox",id:f,"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:d.map((a,c)=>{let d=c===e;return(0,b.jsx)("button",{type:"button",role:"option",id:`${g}-${a.name.slice(1)}`,"aria-selected":d,ref:a=>{i.current[c]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>h(a),children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-medium font-mono",children:a.name}),a.aliases&&a.aliases.length>0&&(0,b.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",a.aliases.join(", "),")"]}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.description})]})},a.name)})})}):null}var aS=a.i(92e3);let aT=(0,t.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 aU=a.i(92596);function aV({suggestion:a,isActive:c,optionId:d,onSelect:e,onAttachContents:f,itemRef:g}){let h="folder"===a.type,i="contents"===a.attachMode,j=function(a){if(!a)return null;let b=Math.floor((Date.now()-a)/864e5);return 0===b?"Today":1===b?"Yesterday":b<7?`${b}d ago`:b<30?`${Math.floor(b/7)}w ago`:b<365?`${Math.floor(b/30)}mo ago`:`${Math.floor(b/365)}y ago`}(a.modifiedAt),k=a.relativePath??a.path;return(0,b.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${c?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:h?c?(0,b.jsx)(J.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,b.jsx)(aU.Folder,{className:"h-4 w-4 text-amber-400"}):(0,b.jsx)(aT,{className:"h-4 w-4"})}),(0,b.jsxs)("button",{type:"button",role:"option",id:d,"aria-selected":c,ref:g,className:"min-w-0 flex-1 text-left",onMouseDown:a=>a.preventDefault(),onClick:()=>e(a),tabIndex:-1,children:[(0,b.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,b.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:k}),j&&(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:j})]}),h&&a.manifest&&(0,b.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[a.manifest.childCount," items ·"," ",a.manifest.sizeSummary,i?(0,b.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,b.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),h&&!i&&(0,b.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 ${k}`,onMouseDown:a=>a.preventDefault(),onClick:()=>f(a),tabIndex:-1,children:"Attach contents"}),h&&i&&(0,b.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 aW=a.i(7704);function aX({isOpen:a,suggestions:d,activeIndex:e,isLoading:f,error:g,listboxId:h,optionIdPrefix:i,onSelect:j,onAttachContents:k}){let l=(0,c.useRef)([]),m=(0,c.useRef)(null),[n,o]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{a&&l.current[e]?.scrollIntoView({block:"nearest"})},[e,a]),(0,c.useEffect)(()=>{a&&m.current&&o(m.current.getBoundingClientRect().top<280)},[a]),!a)return null;let p=d.length>0?`${i}-${e}`:void 0;return(0,b.jsx)("div",{ref:m,className:`${n?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${aW.default.popover}`,children:(0,b.jsxs)("div",{role:"listbox",id:h,"aria-label":"File suggestions","aria-activedescendant":p,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[g&&!f&&(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,b.jsx)(aS.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,b.jsx)("span",{children:g})]}),!g&&f&&0===d.length&&(0,b.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,b.jsx)(I,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,b.jsx)("span",{children:"Searching…"})]}),!g&&!f&&0===d.length&&(0,b.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!g&&f&&d.length>0&&(0,b.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,b.jsx)(I,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,b.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),d.length>0&&d.map((a,c)=>(0,b.jsx)(aV,{suggestion:a,isActive:c===e,optionId:`${i}-${c}`,onSelect:j,onAttachContents:k,itemRef:a=>{l.current[c]=a}},a.path))]})})}function aY({isOpen:a,suggestions:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){return a&&0!==c.length?(0,b.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:e,children:[(0,b.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,b.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:c.map((a,c)=>{let e=c===d;return(0,b.jsxs)("button",{role:"option",id:`${f}-${c}`,"aria-selected":e,onClick:()=>g(a),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${e?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${e?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,b.jsx)(X.MessageSquare,{size:14,strokeWidth:2.5})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:`text-sm font-semibold truncate ${e?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:a.title}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,b.jsxs)("span",{className:`text-xs ${e?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[a.replies.length," replies"]}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,b.jsx)(_.Clock,{size:10}),function(a){if(!a)return"";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return d<24?`${d}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(a.lastActivityAt)]})]})]})]},a.rootMessageId)})})]}):null}var aZ=a.i(69520);let a$=(0,t.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 a_({attachments:a,onRemove:c,onRetry:d}){return 0===a.length?null:(0,b.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:a.map(a=>{var e;let f=a.mimeType.startsWith("image/"),g="failed"===a.status,h="uploading"===a.status;return(0,b.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${g?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[f&&a.previewUrl?(0,b.jsx)("img",{src:a.previewUrl,alt:a.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,b.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:f?(0,b.jsx)(a$,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,b.jsx)(p.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,b.jsx)("div",{className:"truncate font-medium",children:a.filename}),g&&a.error?(0,b.jsx)("div",{className:"truncate text-[10px] text-red-500",children:a.error}):(0,b.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(e=a.size)<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(0)}KB`:`${(e/1048576).toFixed(1)}MB`})]}),h&&(0,b.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${a.progress}%`}})}),(0,b.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[g&&(0,b.jsx)("button",{type:"button",onClick:()=>d(a.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,b.jsx)(aZ.RefreshCw,{className:"w-3 h-3"})}),(0,b.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,b.jsx)(y.X,{className:"w-3 h-3"})})]})]},a.id)})})}function a0({onDrop:a,children:d}){let[e,f]=(0,c.useState)(!1),g={current:0},h=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),g.current++,a.dataTransfer.types.includes("Files")&&f(!0)},[]),i=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),j=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),g.current--,0===g.current&&f(!1)},[]),k=(0,c.useCallback)(b=>{b.preventDefault(),b.stopPropagation(),g.current=0,f(!1),b.dataTransfer.files.length>0&&a(b.dataTransfer.files)},[a]);return(0,b.jsxs)("div",{className:"relative",onDragEnter:h,onDragOver:i,onDragLeave:j,onDrop:k,children:[d,e&&(0,b.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,b.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}let a1=(0,t.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 a2(a,b,c,d,e){if(!a)return;let f=aN(a,b,c,d);f&&a.chain().focus().deleteRange(f).insertContent(e).insertContent(" ").run()}function a3({onSend:a,onStop:d,loading:e,activityStatus:f,participants:g,projects:h=[],projectGroups:i=[],messages:j=[],commands:k,placeholder:l="Message — @name to mention, /search, /summarize",workspaceRoots:m=[],onConfigureRoots:n,pendingThreadInsert:o,onClearPendingThread:p,autoMode:q=!1,onAutoModeChange:r}){let s=f??(e?"working":"ready"),t="ready"!==s,[u,v]=(0,c.useState)(null),w=(0,c.useRef)(null),x=(0,c.useRef)(!1),y=(0,c.useCallback)(()=>{w.current?.click()},[]),[z,A]=(0,c.useState)([]),B=function({participants:a,projectGroups:b=[],projects:d=[],maxSuggestions:e=6}){let[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(!1),l=null!==f&&!j,m=f?.query??"",n=(0,c.useMemo)(()=>(function(a,b,c,d=[],e=[]){let f=b.toLowerCase(),g=new Map(a.map(a=>[a.id,a])),h=new Set;for(let a of d)for(let b of a.agents)h.add(b.agent_id);let i=[];for(let a of(null!==aw("all","all",f)&&i.push({kind:"agent",participant:av,group:""}),d)){let b=aw(a.name.toLowerCase(),a.id.toLowerCase(),f),c=[];for(let b of a.agents){let a=g.get(b.agent_id);if(!a)continue;let d=aw(a.name.toLowerCase(),a.id.toLowerCase(),f);null!==d&&c.push({participant:a,score:d})}(null!==b||c.length>0)&&(null!==b&&i.push({kind:"project-group",project:a,group:a.name}),(null!==b&&f?a.agents.map(a=>g.get(a.agent_id)).filter(a=>!!a).map(a=>({participant:a,score:0})):c).sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:b})=>{i.push({kind:"agent",participant:b,group:a.name})}))}for(let a of e)null!==aw(a.name.toLowerCase(),a.slug.toLowerCase(),f)&&i.push({kind:"project",project:a,group:"Projects"});let j=[];for(let b of a){if(h.has(b.id))continue;let a=aw(b.name.toLowerCase(),b.id.toLowerCase(),f);null!==a&&j.push({participant:b,score:a})}return j.sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:a})=>{i.push({kind:"agent",participant:a,group:""})}),i.slice(0,c)})(a,m,e,b,d),[a,m,e,b,d]),o=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<0||b>a.length)return null;let c=b;for(;c>0&&!/\s/.test(a[c-1]);)c--;let d=a.slice(c,b);if(!d.startsWith("@")||d.startsWith("@@@")||d.startsWith("@#"))return null;let e=d.startsWith("@@"),f=d.slice(e?2:1);return au.test(f)?{startIndex:c,endIndex:b,query:f.toLowerCase(),mode:e?"parallel":"sequential",isParallel:e}:null}(a,b);g(a=>((a?.startIndex!==c?.startIndex||a?.isParallel!==c?.isParallel||a?.query!==c?.query)&&i(0),c))},[]),p=(0,c.useCallback)((a,b)=>{j||o(a,b)},[j,o]),q=(0,c.useCallback)(a=>{if(!l||0===n.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),i(a=>a<n.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),i(a=>a>0?a-1:n.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),g(null),!0;default:return!1}},[l,n.length]),r=(0,c.useCallback)(a=>{if(!f)return null;let b="project-group"===a.kind||"project"===a.kind?a.project.name:a.participant.name,c=f.isParallel?"@@":"@";return{text:`${c}${b} `,startIndex:f.startIndex,endIndex:f.endIndex}},[f]),s=(0,c.useCallback)(()=>{g(null),i(0)},[]);return{isOpen:l,query:m,filteredSuggestions:n,activeIndex:h,token:f,isComposing:j,handleInput:p,handleKeyDown:q,selectSuggestion:r,close:s,startComposition:(0,c.useCallback)(()=>{k(!0)},[]),endComposition:(0,c.useCallback)((a,b)=>{k(!1),o(a,b)},[o])}}({participants:g,projectGroups:i,projects:h,maxSuggestions:8}),C=function({commands:a,maxSuggestions:b=6}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(0),h=null!==d,i=d?.query??"",j=(0,c.useMemo)(()=>{let c;return(c=i.toLowerCase())?a.filter(a=>!!a.name.slice(1).toLowerCase().startsWith(c)||(a.aliases?.some(a=>a.toLowerCase().startsWith(c))??!1)).slice(0,b):a.slice(0,b)},[a,i,b]),k=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<0||b>a.length||!a.startsWith("/"))return null;let c=a.slice(0,b);if(/\s/.test(c))return null;let d=c.slice(1);return ax.test(d)?{startIndex:0,endIndex:b,query:d.toLowerCase()}:null}(a,b);e(a=>(a?.query!==c?.query&&g(0),c))},[]),l=(0,c.useCallback)(a=>{if(!h||0===j.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),g(a=>a<j.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),g(a=>a>0?a-1:j.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),e(null),!0;default:return!1}},[h,j.length]),m=(0,c.useCallback)(a=>!!d&&(a.execute(),e(null),g(0),!0),[d]);return{isOpen:h,query:i,filteredCommands:j,activeIndex:f,token:d,handleInput:k,handleKeyDown:l,selectCommand:m,close:(0,c.useCallback)(()=>{e(null),g(0)},[])}}({commands:k,maxSuggestions:6}),D=function({maxSuggestions:a=8,debounceMs:b=150}={}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null),n=(0,c.useRef)(null),o=(0,c.useRef)(null),p=(0,c.useRef)(null),q=null!==d,r=(0,c.useCallback)(async(b,c)=>{n.current&&n.current.abort();let d=new AbortController;n.current=d,k(!0),m(null);try{let e=b.endsWith("/"),f=e?"*":b,h=new URLSearchParams({q:f,limit:String(a),includeFolders:"1"});if(e){let a="@~"===c?`${process.env.HOME??"~"}/${b.slice(0,-1)}`:`/${b.slice(0,-1)}`;h.set("root",a)}else"@~"===c&&h.set("root",process.env.HOME??"~");let j=await fetch(`/api/file-search?${h.toString()}`,{signal:d.signal});if(!j.ok){let a=await j.json().catch(()=>({}));throw Error(a.error??`HTTP ${j.status}`)}let k=await j.json();g(k.files.map(a=>({...a,attachMode:"folder"===a.type?"manifest":void 0}))),i(0)}catch(a){if("AbortError"===a.name)return;m(a.message??"Search failed"),g([])}finally{k(!1)}},[a]),s=(0,c.useCallback)((c,d)=>{if(null!==o.current&&clearTimeout(o.current),c!==p.current){if(c.length<3){n.current&&(n.current.abort(),n.current=null),p.current=c,k(!1),m(null),g(aA.slice(0,a).map(a=>({...a,attachMode:"manifest"}))),i(0);return}o.current=setTimeout(()=>{p.current=c,r(c,d)},b)}},[b,r,a]);(0,c.useEffect)(()=>()=>{null!==o.current&&clearTimeout(o.current),n.current&&n.current.abort()},[]);let t=(0,c.useCallback)((a,b)=>{let c=function(a,b){if(b<2||b>a.length)return null;let c=b;for(;c>0&&!/\s/.test(a[c-1]);)c--;let d=a.slice(c,b);if(!d.startsWith("@/")&&!d.startsWith("@~"))return null;let e=d.slice(0,2);return{startIndex:c,endIndex:b,query:d.slice(2),trigger:e}}(a,b);e(a=>((a?.startIndex!==c?.startIndex||a?.query!==c?.query||a?.trigger!==c?.trigger)&&null===c&&(null!==o.current&&clearTimeout(o.current),n.current&&(n.current.abort(),n.current=null),p.current=null,g([]),k(!1),m(null)),c)),c&&s(c.query,c.trigger)},[s]),u=(0,c.useCallback)(a=>{if(!q||0===f.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),i(a=>a<f.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),i(a=>a>0?a-1:f.length-1),!0;case"Enter":return a.preventDefault(),!0;case"Tab":return!0;case"Escape":return a.preventDefault(),e(null),g([]),!0;default:return!1}},[q,f.length]),v=(0,c.useCallback)(a=>{if(!d)return null;let b=aB(a.relativePath??a.path,d),c="folder"===a.type?"/":"",f=`@${b}${c} `;return e(null),g([]),{text:f,startIndex:d.startIndex,endIndex:d.endIndex}},[d]),w=(0,c.useCallback)(a=>{if(!d||"folder"!==a.type)return null;let b=aB(a.relativePath??a.path,d),c=b.startsWith("~/")?"@~":"@/",f=b.slice(1),g=`@${b}/`,h=d.startIndex+g.length,i=`${f}/`;return e({startIndex:d.startIndex,endIndex:h,query:i,trigger:c}),p.current=null,s(i,c),{text:g,startIndex:d.startIndex,endIndex:d.endIndex}},[d,s]),x=(0,c.useCallback)(a=>{g(b=>b.map(b=>b.path===a.path?{...b,attachMode:"contents"}:b))},[]);return{isOpen:q,token:d,suggestions:f,activeIndex:h,isLoading:j,error:l,handleInput:t,handleKeyDown:u,selectSuggestion:v,drillDown:w,close:(0,c.useCallback)(()=>{e(null),g([]),i(0)},[]),onAttachContents:x}}({maxSuggestions:8}),E=function({messages:a,maxSuggestions:b=5}){let[d,e]=(0,c.useState)(!1),[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(0),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)(null),n=(0,c.useRef)([]);(0,c.useEffect)(()=>{let b=a.filter(a=>!a.rootMessageId),c=new Map;a.forEach(a=>{if(a.rootMessageId){let b=c.get(a.rootMessageId)||[];b.push(a),c.set(a.rootMessageId,b)}}),n.current=b.map(a=>{let b=c.get(a.id)||[],d=[a,...b],e=Math.max(...d.map(a=>a.timestamp)),f=a.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",g=[...new Set(d.map(a=>a.participantId||"user"))];return{rootMessageId:a.id,title:f,rootMessage:a,replies:b,participantIds:g,lastActivityAt:e}}).sort((a,b)=>b.lastActivityAt-a.lastActivityAt)},[a]);let o=(0,c.useCallback)((a,c)=>{let d=a.slice(0,c).match(/@#([^@#\s]*)$/);if(d){e(!0);let a=d[1].toLowerCase();g(a),m(d.index),i(0),k(n.current.filter(b=>b.title.toLowerCase().includes(a)).slice(0,b))}else e(!1),m(null)},[b]),p=(0,c.useCallback)(a=>!!d&&0!==j.length&&("ArrowDown"===a.key?(a.preventDefault(),i(a=>(a+1)%j.length),!0):"ArrowUp"===a.key?(a.preventDefault(),i(a=>(a-1+j.length)%j.length),!0):"Escape"===a.key&&(a.preventDefault(),e(!1),!0)),[d,j.length]),q=(0,c.useCallback)(a=>null===l?null:{startIndex:l,endIndex:l+2+f.length,text:""},[l,f]);return{isOpen:d,suggestions:j,activeIndex:h,handleInput:o,handleKeyDown:p,selectSuggestion:q,close:(0,c.useCallback)(()=>{e(!1),m(null)},[]),exportDiscussion:(0,c.useCallback)(async a=>{let b=[];try{let a=await fetch("/api/participants");a.ok&&(b=await a.json())}catch(a){console.warn("Failed to fetch participants for export",a)}let c=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a.rootMessageId,title:a.title,messages:[a.rootMessage,...a.replies],participants:b})});if(!c.ok)throw Error(`Export failed: ${await c.text()}`);return await c.json()},[])}}({messages:j,maxSuggestions:8}),F=function(){let[a,b]=(0,c.useState)([]),d=(0,c.useRef)(new Map),e=(0,c.useCallback)(a=>{let c=new XMLHttpRequest;d.current.set(a.id,c);let e=new FormData;e.append("file",a.file),c.upload.onprogress=c=>{if(c.lengthComputable){let d=Math.round(c.loaded/c.total*100);b(b=>b.map(b=>b.id===a.id?{...b,progress:d}:b))}},c.onload=()=>{if(d.current.delete(a.id),c.status>=200&&c.status<300)try{let d=JSON.parse(c.responseText),e=d.attachments?.[0];if(e)return void b(b=>b.map(b=>b.id===a.id?{...b,status:"uploaded",progress:100,serverId:e.id}:b))}catch{}let e=(()=>{try{return JSON.parse(c.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();b(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:e}:b))},c.onerror=()=>{d.current.delete(a.id),b(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:"Network error"}:b))},c.open("POST","/api/upload"),c.send(e)},[]),f=(0,c.useCallback)(c=>{let d=Array.from(c),f=function(a){let b=a.reduce((a,b)=>a+b.size,0);if(b>0x3200000){let a=(b/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${a}MB) exceeds 50MB limit`}}return null}([...a.map(a=>({name:a.filename,size:a.size,type:a.mimeType})),...d.map(a=>({name:a.name,size:a.size,type:a.type}))]);if(f)return void alert(f.reason);let g=[];for(let a of d){let b=function(a){let b=a.name.includes(".")?"."+a.name.split(".").pop().toLowerCase():"";if(az.has(b))return{file:a.name,reason:`File type "${b}" is not allowed`};if(a.type&&!ay.has(a.type))return{file:a.name,reason:`File type "${a.type}" is not supported`};if(!a.type&&!ay.has("application/octet-stream"),a.size>0xa00000){let b=(a.size/1048576).toFixed(1);return{file:a.name,reason:`File is too large (${b}MB). Maximum is 10MB`}}return 0===a.size?{file:a.name,reason:"File is empty"}:null}({name:a.name,size:a.size,type:a.type});if(b){g.push({id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type,size:a.size,previewUrl:null,progress:0,status:"failed",error:b.reason});continue}let c=a.type.startsWith("image/")?URL.createObjectURL(a):null,d={id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type||"application/octet-stream",size:a.size,previewUrl:c,progress:0,status:"uploading"};g.push(d)}for(let a of(b(a=>[...a,...g]),g))"uploading"===a.status&&e(a)},[a,e]),g=(0,c.useCallback)(a=>{b(b=>{let c=b.find(b=>b.id===a);c?.previewUrl&&URL.revokeObjectURL(c.previewUrl);let e=d.current.get(a);return e&&(e.abort(),d.current.delete(a)),c?.serverId&&fetch(`/api/upload/${c.serverId}`,{method:"DELETE"}).catch(()=>{}),b.filter(b=>b.id!==a)})},[]),h=(0,c.useCallback)(a=>{b(b=>{let c=b.find(b=>b.id===a);if(!c||"failed"!==c.status)return b;let d=b.map(b=>b.id===a?{...b,status:"uploading",error:void 0,progress:0}:b),f=d.find(b=>b.id===a);return setTimeout(()=>e(f),0),d})},[e]),i=(0,c.useCallback)(()=>{b(a=>{for(let b of a){b.previewUrl&&URL.revokeObjectURL(b.previewUrl);let a=d.current.get(b.id);a&&a.abort()}return d.current.clear(),[]})},[]),j=0===a.length||a.every(a=>"uploaded"===a.status||"failed"===a.status),k=a.some(a=>"uploaded"===a.status),l=a.filter(a=>"uploaded"===a.status&&a.serverId);return{staged:a,stageFiles:f,remove:g,retry:h,clear:i,canSend:j,hasUploaded:k,attachmentIds:l.map(a=>a.serverId),getAttachmentMetas:(0,c.useCallback)(()=>l.map(a=>({id:a.serverId,filename:a.filename,mimeType:a.mimeType,size:a.size,status:"uploaded",url:`/api/attachments/${a.serverId}`})),[l])}}(),G=function(){let[a,b]=(0,c.useState)([]),d=(0,c.useCallback)((a,c,d)=>{b(b=>b.find(b=>b.path===a)?b.map(b=>b.path===a?{...b,label:c,attachMode:d??b.attachMode}:b):[...b,{kind:"file-path",id:crypto.randomUUID(),path:a,label:c,attachMode:d}])},[]);return{filePaths:a,addFilePath:d,removeFilePath:(0,c.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),clearFilePaths:(0,c.useCallback)(()=>{b([])},[]),hasFilePaths:a.length>0}}(),H=function(){let[a,b]=(0,c.useState)(-1),d=(0,c.useRef)(""),e=(0,c.useCallback)(()=>{try{let a=localStorage.getItem(aC);return a?JSON.parse(a):[]}catch{return[]}},[]),f=(0,c.useCallback)(a=>{let c=a.trim();if(!c)return;let f=e().filter(a=>a!==c);f.unshift(c),f.length>100&&(f.length=100);try{localStorage.setItem(aC,JSON.stringify(f))}catch{}b(-1),d.current=""},[e]);return{pushEntry:f,navigate:(0,c.useCallback)((c,f,g)=>{if(!g)return null;let h=e();if(0===h.length)return null;if("up"===c){-1===a&&(d.current=f);let c=d.current,e=a+1;if(c){for(let a=e;a<h.length;a++)if(h[a].toLowerCase().startsWith(c.toLowerCase()))return b(a),h[a];return null}let g=Math.min(a+1,h.length-1);return g===a&&-1!==a?null:(b(g),h[g])}if(a<=0)return 0===a?(b(-1),d.current):null;let i=d.current;if(i){for(let c=a-1;c>=0;c--)if(h[c].toLowerCase().startsWith(i.toLowerCase()))return b(c),h[c];return b(-1),d.current}let j=a-1;return b(j),h[j]},[e,a]),resetNavigation:(0,c.useCallback)(()=>{b(-1),d.current=""},[]),historyIndex:a}}();(0,c.useEffect)(()=>{u&&!g.some(a=>a.id===u)&&v(null)},[g,u]);let I=(0,ar.useEditor)({immediatelyRender:!1,extensions:[as.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),at.default.configure({placeholder:l}),aG,aH,aI,aJ],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handlePaste:(a,b)=>{let c=b.clipboardData?.files;return!!c&&c.length>0&&(b.preventDefault(),F.stageFiles(c),!0)},handleDOMEvents:{compositionstart:()=>(x.current=!0,B.startComposition(),!1),compositionend:(a,b)=>(x.current=!1,setTimeout(()=>{if(!I)return;let a=aL(I);a&&B.endComposition(a.text,a.cursorPos)},0),!1)},handleKeyDown:(a,b)=>{if("Tab"===b.key||"Enter"===b.key&&!b.shiftKey){if(C.isOpen&&C.filteredCommands.length>0){b.preventDefault();let a=C.filteredCommands[C.activeIndex];return a&&O(a),!0}if(D.isOpen&&D.suggestions.length>0){b.preventDefault();let a=D.suggestions[D.activeIndex];return a&&("folder"===a.type?M(a):L(a)),!0}if(E.isOpen&&E.suggestions.length>0){b.preventDefault();let a=E.suggestions[E.activeIndex];return a&&N(a),!0}if(B.isOpen&&B.filteredSuggestions.length>0){b.preventDefault();let a=B.filteredSuggestions[B.activeIndex];return a&&K(a),!0}}let c={key:b.key,preventDefault:()=>b.preventDefault()};if(C.isOpen&&C.handleKeyDown(c)||D.isOpen&&D.handleKeyDown(c)||E.isOpen&&E.handleKeyDown(c)||B.handleKeyDown(c))return!0;if(("ArrowUp"===b.key||"ArrowDown"===b.key)&&!B.isOpen&&!C.isOpen&&!D.isOpen&&!E.isOpen){let a=aK(I.getJSON()).trim(),{state:c}=I.view,d="ArrowUp"===b.key,e=d?c.selection.from<=1:c.selection.to>=c.doc.content.size-1,f=H.navigate(d?"up":"down",a,e);if(null!==f)return b.preventDefault(),I.commands.setContent(f),I.commands.focus("end"),!0}return"Enter"===b.key&&!b.shiftKey&&(b.preventDefault(),P(),!0)}},onUpdate:({editor:a})=>{if(x.current)return;-1!==H.historyIndex&&H.resetNavigation();let b=aL(a);b&&(B.handleInput(b.text,b.cursorPos),C.handleInput(b.text,b.cursorPos),D.handleInput(b.text,b.cursorPos),E.handleInput(b.text,b.cursorPos))},onBlur:()=>{B.close(),C.close(),D.close(),E.close()}});(0,c.useEffect)(()=>{if(!o||!I)return;let{title:a,threadId:b,messages:c}=o;I.chain().focus().insertContent({type:"threadMention",attrs:{threadId:b,title:a}}).insertContent(" ").run();let d=c[0];if(d){let e={rootMessageId:b,title:a,rootMessage:d,replies:c.slice(1),participantIds:[...new Set(c.map(a=>a.participantId||"user"))],lastActivityAt:Math.max(...c.map(a=>a.timestamp))};E.exportDiscussion(e).then(a=>A(b=>[...b,a])).catch(a=>console.error("Failed to export discussion for Add to chat:",a))}p?.()},[o]);let J=(0,c.useCallback)(()=>{if(!I)return;let a=aL(I);a&&B.handleInput(a.text,a.cursorPos)},[I,B]),K=(0,c.useCallback)(a=>{if(!I)return;let b=B.selectSuggestion(a);if(!b)return;let c=aL(I);if(!c)return;let d=b.text.startsWith("@@"),e="project-group"===a.kind?{type:"participantMention",attrs:{id:a.project.id,name:a.project.name,mode:d?"parallel":"sequential",kind:"project"}}:"project"===a.kind?{type:"projectMention",attrs:{id:a.project.id,slug:a.project.slug,name:a.project.name}}:{type:"participantMention",attrs:{id:a.participant.id,name:a.participant.name,mode:d?"parallel":"sequential",kind:"agent"}};a2(I,c.blockStart,b.startIndex,b.endIndex,e),B.close()},[I,B]),L=(0,c.useCallback)(a=>{if(!I)return;let b=D.selectSuggestion(a);if(!b)return;let c=aL(I);if(!c)return;let d={type:"fileMention",attrs:{path:a.path,relativePath:a.relativePath??a.path,trigger:D.token?.trigger??"@/",attachMode:a.attachMode}};a2(I,c.blockStart,b.startIndex,b.endIndex,d),G.addFilePath(a.path,a.relativePath??a.path,a.attachMode)},[I,D,G]),M=(0,c.useCallback)(a=>{if(!I)return;let b=aL(I);if(!b)return;let c=D.drillDown(a);if(!c)return;let d=aN(I,b.blockStart,c.startIndex,c.endIndex);d&&I.chain().focus().deleteRange(d).insertContent(c.text).run()},[I,D]),N=(0,c.useCallback)(async a=>{if(!I)return;let b=E.selectSuggestion(a);if(!b)return;let c=aL(I);if(!c)return;let d={type:"threadMention",attrs:{threadId:a.rootMessageId,title:a.title}};a2(I,c.blockStart,b.startIndex,b.endIndex,d);try{let b=await E.exportDiscussion(a);A(a=>[...a,b])}catch(a){console.error("Failed to export discussion:",a)}},[I,E]),O=(0,c.useCallback)(a=>{C.selectCommand(a),I&&I.commands.clearContent()},[C,I]),P=(0,c.useCallback)(async()=>{if(!I)return;let b=aK(I.getJSON()).trim();if(!b&&!F.hasUploaded&&!G.hasFilePaths||!F.canSend)return;if(b){let a=k.find(a=>a.name===b||a.aliases?.some(a=>`/${a}`===b));if(a){a.execute(),I.commands.clearContent(),C.close(),B.close();return}}let c=b||"(attached files)";if(z.length>0){let a=z.map(a=>`- "${a.title}" — ${a.summary} (full transcript: ${a.filePath})`).join("\n");c=`Referenced threads:
6
6
  ${a}
7
7
 
8
- ${c}`}if(G.hasFilePaths){let a=await aE(G.filePaths);a.contextPrefix&&(c=a.contextPrefix+c)}b&&H.pushEntry(b);let d=F.attachmentIds.length>0?F.attachmentIds:void 0,e=d?F.getAttachmentMetas():void 0;a(c,10,d,e,u??void 0),I.commands.clearContent(),A([]),F.clear(),G.clearFilePaths(),B.close(),C.close(),E.close()},[I,B,C,k,a,F,G,z,E,H]),Q=B.isOpen&&B.filteredSuggestions.length>0;C.isOpen&&C.filteredCommands.length,D.isOpen&&D.suggestions.length,E.isOpen&&E.suggestions.length,Q&&B.filteredSuggestions[B.activeIndex];let R=F.staged.some(a=>"uploading"===a.status),S=!I||I.isEmpty,T=g.find(a=>a.id===u)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(a0,{onDrop:F.stageFiles,children:(0,b.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:[r&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${q?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${q?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:q?"shipBgSweep 4s ease-in-out infinite":"none"}}),q&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${q?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:q?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(ad,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${q?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${q?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${q?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:q?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>r(!q),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)] ${q?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${q?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[F.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(a_,{attachments:F.staged,onRemove:F.remove,onRetry:F.retry})}),(0,b.jsxs)("div",{className:"p-2 relative",children:[(0,b.jsx)("input",{ref:w,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(F.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:J,children:[(0,b.jsx)(ar.EditorContent,{editor:I,className:"composer-editor"}),(0,b.jsx)(aQ,{isOpen:B.isOpen&&!C.isOpen,suggestions:B.filteredSuggestions,activeIndex:B.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:K}),(0,b.jsx)(aR,{isOpen:C.isOpen,commands:C.filteredCommands,activeIndex:C.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:O}),(0,b.jsx)(aX,{isOpen:D.isOpen,suggestions:D.suggestions,activeIndex:D.activeIndex,isLoading:D.isLoading,error:D.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?M(a):L(a)},onAttachContents:D.onAttachContents}),(0,b.jsx)(aY,{isOpen:E.isOpen&&!C.isOpen&&!D.isOpen,suggestions:E.suggestions,activeIndex:E.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:N})]})]}),(0,b.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,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{type:"button",onClick:y,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,b.jsx)(a1,{className:"h-4 w-4",strokeWidth:1.75})}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===g.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):g.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":u===a.id,onClick:()=>v(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),v(b=>b===a.id?null:a.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 ${u===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),t&&(0,b.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===s?"bg-amber-400":"bg-emerald-400"}`})]},a.id))})]}),T&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:T.name})]})]})]}),t?(0,b.jsx)("button",{type:"button",onClick:d,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,b.jsxs)("button",{type:"button",onClick:P,disabled:S&&!F.hasUploaded&&!G.hasFilePaths||R,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,b.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,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===s?"bg-emerald-400 animate-pulse":"queued"===s?"bg-amber-400":"bg-emerald-400"}`}),(0,b.jsx)("span",{children:"working"===s?"Working":"queued"===s?"Queued":"Ready"})]}),(0,b.jsxs)("span",{children:["Press ",(0,b.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,b.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,b.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 a4=a.i(55672);let a5={activeParticipantIdsByThread:{}};function a6(a,b){let c=a.trim();if(c)({...a5}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b)}var a7=a.i(15040),a8=a.i(31626);function a9({isOpen:a,title:d,message:e,preview:f,confirmLabel:g="Confirm",cancelLabel:h="Cancel",variant:i="default",onConfirm:j,onCancel:k}){let l=(0,c.useRef)(null),m=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(a){let a=setTimeout(()=>l.current?.focus(),50);return()=>clearTimeout(a)}},[a]);let n=(0,c.useCallback)(a=>{"Escape"===a.key&&k()},[k]);if(!a)return null;let o="danger"===i;return(0,b.jsxs)("div",{style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:a=>a.target===a.currentTarget&&k(),onKeyDown:n,className:"jsx-1da17079bc733bcf fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",children:[(0,b.jsxs)("div",{ref:m,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,b.jsx)("div",{className:"jsx-1da17079bc733bcf px-6 pt-6 pb-3",children:(0,b.jsxs)("div",{className:"jsx-1da17079bc733bcf flex items-start gap-4",children:[o&&(0,b.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,b.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,b.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,b.jsxs)("div",{className:"jsx-1da17079bc733bcf flex-1 min-w-0",children:[(0,b.jsx)("h3",{className:"jsx-1da17079bc733bcf text-[15px] font-semibold text-[var(--foreground)]",children:d}),(0,b.jsx)("p",{className:"jsx-1da17079bc733bcf mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:e})]})]})}),f&&(0,b.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,b.jsxs)("p",{className:"jsx-1da17079bc733bcf text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",f,"”"]})}),(0,b.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 border-t border-[var(--card-border)]"}),(0,b.jsxs)("div",{className:"jsx-1da17079bc733bcf px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,b.jsx)("button",{onClick:k,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:h}),(0,b.jsx)("button",{ref:l,onClick:j,className:`jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${o?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:g})]})]}),(0,b.jsx)(a8.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 ba=a.i(56196),bb=a.i(87532),bc=a.i(13749);let bd=(0,t.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"}]]),be=(0,t.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"}]]),bf=(0,t.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"}]]),bg=(0,t.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 bh=a.i(53722);function bi({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,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,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}function bj(){let[a,d]=(0,c.useState)("unknown"),[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(""),[i,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void d("unknown");let b=await a.json();d("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);f(c),h(new Date().toLocaleTimeString())}catch{d("unknown"),f([])}},[]);return(0,c.useEffect)(()=>{l();let a=setInterval(l,3e4);return()=>clearInterval(a)},[l]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:[(0,b.jsx)(j.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,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),i&&(0,b.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:[e.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:e.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),g&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",g]})]})]})}function bk(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function bl(a){let b=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(a)}`,{cache:"no-store"});if(!b.ok)throw Error("Failed to load thread knowledge run");let c=await b.json().catch(()=>null);return c?.run??null}function bm(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];return e?f:0===f.length?a.map(a=>a.id):f}function bn(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=bk(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=bk(d.title)||`Task ${e+1}`,g=bk(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}function bo({projectSlug:a,initialThreadId:j,initialRootMessageId:k,showSidebar:l=!0}={}){let m=(0,d.useSearchParams)(),{threads:n,activeThreadId:o,selectThread:p,createThread:q,deleteThread:r,updateThreadMessages:s,isCreating:t,deletingThreadId:u,renamingThreadId:v,isLoading:w,isRestoringActiveThread:x,renameThread:y,updateThreadStatus:z,updateThreadOutcomeNote:A,updateMessageThreadStatus:B,updateMessageOutcomeNote:C}=(0,h.useThreadState)(j),{messages:D,setMessages:E,logs:F,sendMessage:G,loadHistory:J,clearLogs:K,chatRuns:L,setChatRuns:M,stop:N,stopThread:O}=function(a){let[b,d]=(0,c.useState)([]),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)([]),k=(0,c.useRef)(a),l=(0,c.useRef)(a);k.current=a,l.current!==a&&(l.current=a,d([]),h([]),j([]));let m=(0,c.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();if(!b){d([]),h([]);return}let c=e(b);try{let[a,e]=await Promise.all([fetch(`/api/history?${c}`),fetch(`/api/logs?${f(b)}`)]);if(k.current!==b)return;a.ok&&d(await a.json()),e.ok&&h(await e.json())}catch{}},[]),n=(0,c.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();if(!b){d([]),h([]);return}let c=e(b);await Promise.all([fetch(`/api/history?${c}`,{method:"DELETE"}),fetch(`/api/logs?${f(b)}`,{method:"DELETE"})]),k.current===b&&(d([]),h([]))},[]),o=(0,c.useCallback)(async(a,b=10,c,e,f,g,h,i)=>{let l=c?.trim()||k.current?.trim();if(!l)return;let m=Date.now(),n=crypto.randomUUID(),o={id:n,role:"user",participantId:null,content:a,timestamp:m,rootMessageId:e||null,parentMessageId:e||null,depth:+!!e,...g&&g.length>0?{attachments:g}:{}};d(a=>[...a,o]);try{let c=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,prompt:a,maxRounds:b,userMessageId:n,rootMessageId:e||void 0,attachmentIds:f?.length?f:void 0,activeParticipantIds:Array.isArray(h)?h:void 0,projectSlug:i?.trim()||void 0})}),d=await c.json().catch(()=>null);c.ok&&d?.chatRunId&&j(a=>[{chatRunId:d.chatRunId,threadId:l,rootMessageId:e||n,status:"queued"},...a.filter(a=>a.chatRunId!==d.chatRunId)])}catch{}return n},[]),p=(0,c.useCallback)(async()=>{let a=k.current?.trim();if(a)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]),q=(0,c.useCallback)(async a=>{let b=k.current?.trim();if(b)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(b)}&threadId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]);return{messages:b,setMessages:d,logs:g,sendMessage:o,loadHistory:m,clearHistory:n,clearLogs:(0,c.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();b?(await fetch(`/api/logs?${f(b)}`,{method:"DELETE"}).catch(()=>{}),k.current===b&&h([])):h([])},[]),chatRuns:i,setChatRuns:j,stop:p,stopThread:q}}(o),{activeAgents:P,processes:Q,streaming:R,chatRuns:S,poll:T}=(0,g.useProcessPolling)(o?{workspaceId:o}:null,{messages:D,setMessages:E}),U=(L.length>0?L:S).filter(a=>"queued"===a.status||"running"===a.status),V=P.size>0||U.some(a=>"running"===a.status)?"working":U.some(a=>"queued"===a.status)?"queued":"ready";(0,c.useEffect)(()=>{0!==S.length&&M(a=>{let b=new Map(a.filter(a=>"string"==typeof a.chatRunId&&a.chatRunId.length>0).map(a=>[a.chatRunId,a]));for(let a of S)a?.chatRunId&&b.set(a.chatRunId,a);return Array.from(b.values()).sort((a,b)=>String(a.chatRunId||"").localeCompare(String(b.chatRunId||"")))})},[S,M]);let W=(0,c.useCallback)(async a=>{await fetch(`/api/chat-runs/${encodeURIComponent(a)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(()=>{})},[]),X=(0,c.useCallback)(async()=>{let a=U[0];a?.chatRunId&&await W(a.chatRunId),await N(),await T()},[U,W,N,T]),Y=(0,c.useCallback)(async a=>{let b=U.find(b=>b.rootMessageId===a);b?.chatRunId&&await W(b.chatRunId),await O(a),await T()},[U,W,O,T]),Z=(0,c.useRef)(X);(0,c.useEffect)(()=>{Z.current=X},[X]);let{projects:$,createProject:_,deleteProject:aa,addAgent:ab,removeAgent:ac,reorderAgents:ad}=(0,ba.useProjectsWithAgents)(),{projects:ae,updateProject:af}=(0,ba.useProjects)(),[ag,ai]=(0,c.useState)([]),[aj,ak]=(0,c.useState)(!1),[al,am]=(0,c.useState)([]),[ao,ap]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(()=>"light"),[at,au]=(0,c.useState)(!1),av=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=(0,a4.loadWorkspaceSidebarVisible)();av.current=!0,au(a)},[]),(0,c.useEffect)(()=>{},[ar]);let[aw,ax]=(0,c.useState)(!1),[ay,az]=(0,c.useState)(new Set),[aA,aB]=(0,c.useState)(!1),[aC,aD]=(0,c.useState)(!1),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(k??null),aI=m.get("open")?.trim()||null,aJ=aG?ay.has(aG):aA;(0,c.useEffect)(()=>{if(!aG)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(aG)}`).then(a=>a.json()).then(b=>{a||az(a=>{let c=a.has(aG);if(b.active&&!c){let b=new Set(a);return b.add(aG),b}if(!b.active&&c){let b=new Set(a);return b.delete(aG),b}return a})}).catch(()=>{})};b();let c=setInterval(b,1e4);return()=>{a=!0,clearInterval(c)}},[aG]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&az(a=>{let c=new Set(b.activeRootMessageIds);for(let b of a)c.add(b);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(()=>{})};b();let c=setInterval(b,15e3);return()=>{a=!0,clearInterval(c)}},[]),(0,c.useEffect)(()=>{if(aG){let b=a?`/projects/${a}/thread/${encodeURIComponent(o??j??"")}?open=${encodeURIComponent(aG)}`:`/thread/${aG}`;window.history.replaceState(null,"",b)}else window.history.replaceState(null,"",a?`/projects/${a}/thread/${encodeURIComponent(o??j??"")}`:"/")},[o,j,aG,a]),(0,c.useEffect)(()=>{a&&aH(a=>a===aI?a:aI)},[a,aI]),(0,c.useEffect)(()=>{k&&(async()=>{try{let a=await fetch(`/api/messages/${k}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&p(b)}catch{}})()},[k,p]);let[aK,aL]=(0,c.useState)(""),[aM,aN]=(0,c.useState)([]),[aO,aP]=(0,c.useState)(0),[aQ,aR]=(0,c.useState)(!1),[aS,aT]=(0,c.useState)(null),[aU,aV]=(0,c.useState)(null),[aW,aX]=(0,c.useState)(new Set),[aY,aZ]=(0,c.useState)(null),[a$,a_]=(0,c.useState)(null),[a0,a1]=(0,c.useState)({}),a2=(0,c.useCallback)(a=>{a1(b=>{let c="function"==typeof a?a(b):a;if(o)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:o,messageId:a,draft:d})}).catch(()=>{});return c})},[o]),[a8,bk]=(0,c.useState)(new Set),[bp,bq]=(0,c.useState)(new Set),br=(0,c.useRef)(null),bs=(0,c.useRef)(null),bt=(0,c.useRef)(null),bu=(0,c.useRef)(""),bv=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;ai(b)}finally{a&&ak(!0)}},[]),bw=(0,c.useCallback)(async a=>{try{await (0,a7.updateUserPreferences)({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[a7.updateUserPreferences]),bx=(0,c.useCallback)(a=>{(0,a4.persistWorkspaceSidebarVisible)(a),bw(a)},[bw]),by=aK.trim(),bz=by.length>0,bA=(0,c.useMemo)(()=>Object.fromEntries(n.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[n]),bB=(0,c.useMemo)(()=>{if(!aG)return[];let a=new Set([D.find(a=>a.id===aG),...D.filter(a=>a.rootMessageId===aG)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(R).forEach(b=>{R[b].rootMessageId===aG&&a.add(b)}),ag.filter(b=>a.has(b.id))},[aG,D,R,ag]),bC=(0,c.useMemo)(()=>{let a=new Map(ag.map(a=>[a.id,a]));return al.map(b=>a.get(b)).filter(Boolean)},[ag,al]),bD=(0,c.useMemo)(()=>ae.map(a=>({id:a.id,name:a.name,slug:a.slug})),[ae]),bE=(0,c.useMemo)(()=>{if(!aG)return 0;let a=[D.find(a=>a.id===aG),...D.filter(a=>a.rootMessageId===aG)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[aG,D]),bF=(0,c.useMemo)(()=>{if(!aG)return"";let a=D.find(a=>a.id===aG);if(!a)return"Thread";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[aG,D]),bG=(0,c.useMemo)(()=>{if(!aG)return null;let a=D.find(a=>a.id===aG),b=a?.threadStatus??"active";return{value:b,...{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"}}[b]}},[aG,D]),bH=(0,c.useCallback)(()=>{aL(""),aN([]),aP(0),aT(null),aR(!1)},[]);(0,c.useCallback)(()=>{let a=bn(D,ag);navigator.clipboard.writeText(a).then(()=>{ap(!0),setTimeout(()=>ap(!1),2e3)})},[D,ag]);let[bI,bJ]=(0,c.useState)(null),bK=(0,c.useCallback)(a=>{let b=D.find(b=>b.id===a);if(!b)return;let c=[b,...D.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bJ({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[D]),bL=(0,c.useCallback)(a=>{let b=bn([D.find(b=>b.id===a),...D.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),ag,a0[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[D,ag,a0]),bM=(0,c.useCallback)(async()=>{if(aG){aD(!0);try{let b=["repo"];a&&b.push("project");let c=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:aG,scopes:b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error("string"==typeof d?.error?d.error:"Request failed");aF(d?.run??null)}catch(b){let a=b instanceof Error?b.message:"Request failed";window.alert(`Failed to extract knowledge: ${a}`)}finally{aD(!1)}}},[aG,a]);(0,c.useEffect)(()=>{if(!aG){aF(null),aD(!1);return}let a=!1;return(async()=>{try{let b=await bl(aG);if(a)return;aF(b)}catch{a||aF(null)}})(),()=>{a=!0}},[aG]),(0,c.useEffect)(()=>{if(!aG||aE?.status!=="running")return;let a=!1,b=async()=>{try{let b=await bl(aG);if(a)return;aF(b)}catch{}};b();let c=window.setInterval(()=>{b()},2e3);return()=>{a=!0,window.clearInterval(c)}},[aG,aE?.status]);let bN=aE?.status==="running",bO=aC||bN,bP=(aE?.repoInsertedCount??0)+(aE?.projectInsertedCount??0),bQ=(0,c.useMemo)(()=>{if(!aE)return null;if("running"===aE.status)return"Learning in progress";if("failed"===aE.status)return"Last learning run failed";if(bP>0){let a=1===bP?"insight":"insights";return`Learned ${bP} ${a}`}return"No new learnings"},[bP,aE]);(0,c.useEffect)(()=>{bv(!0)},[bv]);let bR=(0,c.useMemo)(()=>{if(!aj)return[];let a=new Set(ag.map(a=>a.id)),b=new Set;for(let c of D)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(R))a.has(c)||b.add(c);return Array.from(b).sort()},[D,ag,aj,R]);(0,c.useEffect)(()=>{if(!aj)return;let a=bR.join("|");if(!a){bu.current="";return}bu.current!==a&&(bu.current=a,bv(!1))},[aj,bv,bR]),(0,c.useEffect)(()=>{if(!aj)return;let a=bm(ag,$,o);if(!o)return void am(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...a5};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(o);if(null===b)return void am(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b),d=c.length>0?c:a;(d.length!==b.length||d.some((a,c)=>b[c]!==a))&&a6(o,d),am(d)},[o,ag,aj,$]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await (0,a7.fetchUserPreferences)();if(a)return;au(a=>a===b.threadSidebarVisible?a:av.current?(bw(a),a):((0,a4.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[bw]),(0,c.useEffect)(()=>{w||t||0!==n.length||q({id:"global",title:"General"})},[w,t,n.length,q]),(0,c.useEffect)(()=>()=>{bt.current&&window.clearTimeout(bt.current)},[]),(0,c.useEffect)(()=>{let a=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),br.current?.focus(),br.current?.select();return}"Escape"===a.key&&by&&bH()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[bH,by]),(0,c.useEffect)(()=>{if(!by){aN([]),aP(0),aT(null),aR(!1);return}let a=!1;aR(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:by,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(()=>null);if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";aN([]),aP(0),aT(a);return}aN(Array.isArray(d.results)?d.results:[]),aP("number"==typeof d.total?d.total:0),aT(null)}catch(b){if(a)return;console.error("Search request failed",b),aN([]),aP(0),aT("Search failed")}finally{a||aR(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[by]);let bS=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bS.current&&bS.current!==o&&(Z.current(),bs.current?(aH(bs.current),bs.current=null):aH(null)),bS.current=o,o&&(J(o),fetch(`/api/task-drafts?threadId=${encodeURIComponent(o)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?a1(a.drafts):a1({})}).catch(()=>a1({})))},[o,J]),(0,c.useEffect)(()=>{o&&s(o,D)},[o,D,s]);let bT=(0,c.useCallback)((b,c,d=10,e)=>{if(!o||0===bC.length)return;let f=bC.map(a=>a.id);G(c,d,o,b,void 0,void 0,e&&f.includes(e)?[e,...f.filter(a=>a!==e)]:f,a)},[o,G,bC,a]),bU=(0,c.useCallback)(async a=>{if(o){if(0===bC.length)return void window.alert("Enable at least one agent in this project.");aX(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:o,rootMessageId:a,activeParticipantIds:bC.map(a=>a.id)})});b.ok?await J(o):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{aX(b=>{let c=new Set(b);return c.delete(a),c})}}},[o,J,bC]),bV=(0,c.useCallback)(async a=>{if(o){if(0===bC.length)return void window.alert("Enable at least one agent in this project.");bk(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:o,rootMessageId:a,activeParticipantIds:bC.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};a2(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{bk(b=>{let c=new Set(b);return c.delete(a),c})}}},[o,bC]),bW=(0,c.useCallback)((a,b)=>{a2(c=>({...c,[a]:b}))},[]),bX=(0,c.useCallback)(async(a,b,c,d)=>{if(o){bq(a=>new Set(a).add(b.draftId)),a2(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await H(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;a2(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),a2(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{bq(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[o]),bY=(0,c.useCallback)(()=>{if(!o)return;let a=(()=>{if(aG)return aG;let a=new Set(D.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=D.length-1;b>=0;b-=1){let c=D[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bV(a):console.warn("No thread with replies available to extract tasks from")},[o,bV,D,aG]);(0,c.useCallback)(a=>{aH(a)},[]);let bZ=(0,c.useCallback)(a=>{aH(a)},[]),b$=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&aL(b),requestAnimationFrame(()=>{br.current?.focus(),b||br.current?.select()})},[]),b_=(0,c.useCallback)(()=>{if(!o)return;let a=(()=>{if(aG)return aG;let a=new Set(D.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=D.length-1;b>=0;b-=1){let c=D[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bU(a):console.warn("No thread with replies available to summarize")},[o,bU,D,aG]),b0=(0,c.useCallback)(async(b,c,d,e,f)=>{let g=b.match(/^\/search(?:\s+([\s\S]+))?$/i);if(g)return void b$(g[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(b))return void b_();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(b)||/^\/create(?:\s+[\s\S]+)?$/i.test(b))return void bY();aJ&&aG&&(az(a=>{let b=new Set(a);return b.delete(aG),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:aG})}).catch(a=>console.error("Failed to deactivate schedule:",a)));let h=o;h||(h=(await q()).id);let i=bC.map(a=>a.id);if(0===i.length)return void window.alert("Enable at least one agent in this project.");let j=f&&i.includes(f)?[f,...i.filter(a=>a!==f)]:i;if(aG)return void await G(b,c,h,aG,d,e,j,a);let k=await G(b,c,h,null,d,e,j,a);aA&&k&&(aB(!1),az(a=>{let b=new Set(a);return b.add(k),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:k})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[o,aJ,aA,q,b$,b_,aG,bC,G,a]),b1=(0,c.useCallback)(async a=>{if(!aG)return void aB(a);az(b=>{let c=new Set(b);return a?c.add(aG):c.delete(aG),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:aG})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[aG]),b2=(0,c.useCallback)(a=>{let b=a.rootMessageId||a.messageId;a.threadId!==o?(bs.current=b,p(a.threadId)):aH(b),aV(null),window.requestAnimationFrame(()=>{aV(a.messageId),bt.current&&window.clearTimeout(bt.current),bt.current=window.setTimeout(()=>{aV(b=>b===a.messageId?null:b)},2e3)}),bH()},[o,bH,p]),b3=(0,c.useCallback)(async a=>{X(),await r(a)},[r,X]),b4=(0,c.useCallback)(a=>{if(!o||!a)return;let b=D.find(b=>b.id===a);a_({type:"thread",id:a,preview:b?.content?.slice(0,120)||void 0})},[o,D]),b5=(0,c.useCallback)(async a=>{if(o){aZ(a),Y(a);try{let b=new URLSearchParams({threadId:o,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());aH(b=>b===a?null:b),aV(null);let d=D.filter(b=>b.id!==a&&b.rootMessageId!==a);s(o,d),await J(o)}catch(a){console.error("Failed to delete message thread",a)}finally{aZ(b=>b===a?null:b)}}},[o,J,D,Y,s]),b6=(0,c.useCallback)(a=>{if(!o||!a)return;let b=D.find(b=>b.id===a);a_({type:"message",id:a,preview:b?.content?.slice(0,120)||void 0})},[o,D]),b7=(0,c.useCallback)(async a=>{if(o)try{let b=new URLSearchParams({threadId:o,messageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message",await c.text());let d=D.filter(b=>b.id!==a);s(o,d),await J(o)}catch(a){console.error("Failed to delete message",a)}},[o,J,D,s]),b8=(0,c.useCallback)(()=>{a$&&("thread"===a$.type?b5(a$.id):b7(a$.id),a_(null))},[a$,b5,b7]),b9=(0,c.useCallback)(()=>{a_(null)},[]),ca=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>b$()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>b_()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>bY()}],[b$,b_,bY]),cb=(0,c.useMemo)(()=>o?$.filter(a=>a.thread_ids?.includes(o)):$,[$,o]),cc=(0,c.useCallback)(a=>{let c=Q.some(b=>["spawning","running"].includes(b.state)&&b.threadId===a)||Object.values(R).some(b=>b.rootMessageId===a)?"working":U.some(b=>b.rootMessageId===a&&"queued"===b.status)?"queued":"ready";return(0,b.jsx)(a3,{onSend:(b,c,d,e,f)=>bT(a,b,c,f),onStop:()=>Y(a),loading:"ready"!==c,activityStatus:c,participants:bC,projectGroups:cb,projects:bD,messages:D,commands:ca,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:aJ,onAutoModeChange:b1})},[bT,Y,R,bC,cb,bD,ca,D,aJ,b1,Q,U]),cd=(0,c.useCallback)(()=>{au(a=>{let b=!a;return bx(b),b})},[bx]),ce=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();ai(b=>b.map(b=>b.id===a.id?a:b))}},cf=(0,c.useCallback)((a,b)=>{am(c=>{let d=bm(ag,$,o);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return o&&a6(o,f),f})},[o,ag,$]),cg=(0,c.useCallback)(a=>{let b=$.find(b=>b.id===a);if(!b||o&&!b.thread_ids?.includes(o))return;let c=b.agents.map(a=>a.agent_id);am(c),o&&a6(o,c)},[$,o]),ch=(0,c.useCallback)(()=>{as(a=>"dark"===a?"light":"dark")},[]),ci=()=>(0,b.jsx)("button",{type:"button",onClick:ch,"aria-label":"dark"===ar?"Switch to light theme":"Switch to dark theme",title:"dark"===ar?"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"===ar?(0,b.jsx)(bg,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(bf,{className:"h-4 w-4",strokeWidth:1.75})}),cj=(0,b.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,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:l&&!at&&(0,b.jsx)("button",{type:"button",onClick:cd,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,b.jsx)(be,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(bb.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,b.jsx)("input",{ref:br,type:"text",value:aK,onChange:a=>aL(a.target.value),onKeyDown:a=>{"Escape"===a.key&&bH()},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)]"}),by?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:aQ?"…":aO}),(0,b.jsx)("button",{type:"button",onClick:bH,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,b.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,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[ci(),(0,b.jsx)(bj,{}),aG&&(0,b.jsx)("button",{type:"button",onClick:()=>ax(!aw),"aria-label":aw?"Hide logs":`Show logs${F.length>0?` (${F.length})`:""}`,"aria-pressed":aw,title:aw?"Hide logs":`Show logs${F.length>0?` (${F.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)] ${aw?"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,b.jsx)(bd,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[l?(0,b.jsx)(i.WorkspaceSidebar,{threads:n,participants:ag,activeThreadId:o,isLoading:w,isRestoringActiveThread:x,isCreating:t,deletingThreadId:u,renamingThreadId:v,onSelectThread:p,onCreateThread:q,onRenameThread:y,onDeleteThread:b3,activeParticipantIds:al,onToggleParticipantActive:cf,visible:at,onToggle:cd,projects:$,onCreateProject:_,onUpdateProject:af,onDeleteProject:aa,onAddAgentToProject:ab,onRemoveAgentFromProject:ac,onReorderProjectAgents:ad,onUpdateParticipant:ce,onSelectProject:cg}):null,(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:x?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[aG?(0,b.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,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,b.jsx)("button",{onClick:()=>aH(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,b.jsx)(bc.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:bF}),bG&&(0,b.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:bG.color+"40",color:bG.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:bG.color}}),bG.label]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[bB.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(bE)]}),bQ&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"opacity-80",children:bQ})]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:bB.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.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:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void bM(),disabled:bO,title:bN?"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)] ${bO?"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:[bO?(0,b.jsx)(I,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,b.jsx)(bh.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bN?"Learning...":"Learn from discussion"})]}),ci(),(0,b.jsx)(bj,{}),(0,b.jsx)("button",{type:"button",onClick:()=>ax(!aw),"aria-label":aw?"Hide logs":`Show logs${F.length>0?` (${F.length})`:""}`,"aria-pressed":aw,title:aw?"Hide logs":`Show logs${F.length>0?` (${F.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)] ${aw?"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,b.jsx)(bd,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):cj,bz?(0,b.jsx)(aq,{query:by,results:aM,total:aO,participants:ag,threadTitleById:bA,isLoading:aQ,error:aS,onSelectResult:b2}):aG?(0,b.jsx)(an,{messages:D,streaming:R,participants:ag,rootMessageId:aG,queued:U.some(a=>a.rootMessageId===aG&&"queued"===a.status),onClose:()=>aH(null),onCopyThread:bL,onAddToChat:bK,onDeleteThreadRoot:b4,onDeleteMessage:b6,highlightedMessageId:aU||void 0,renderReplyComposer:cc,activeProcesses:Q.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===aG)}):(0,b.jsx)(ah,{messages:D,streaming:R,participants:ag,onOpenThread:bZ,onCopyThread:bL,onAddToChat:bK,onDeleteThreadRoot:b4,onSummarize:bU,onCreateTasks:bV,onUpdateTaskDraft:bW,onBuildTasks:bX,summarizingThreads:aW,extractingTasks:a8,buildingDrafts:bp,taskDrafts:a0,deletingThreadRootId:aY,highlightedMessageId:aU,shipModeThreads:ay,onUpdateMessageThreadStatus:o?(a,b)=>{E(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),B(o,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:o?(a,b)=>{E(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),C(o,a,b);let c=D.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!bz&&!aG&&(0,b.jsx)(a3,{onSend:b0,onStop:X,loading:"ready"!==V,activityStatus:V,participants:bC,projects:bD,projectGroups:cb,messages:D,commands:ca,pendingThreadInsert:bI,onClearPendingThread:()=>bJ(null),autoMode:aJ,onAutoModeChange:b1})]})})}),k&&(0,b.jsx)(bi,{logs:F,participants:ag,onClear:()=>void K(o),open:aw,onToggle:()=>ax(!1)}),(0,b.jsx)(a9,{isOpen:null!==a$,title:a$?.type==="thread"?"Delete Thread":"Delete Message",message:a$?.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:a$?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:b8,onCancel:b9})]})}a.s(["ChatContainer",()=>bo],24610)}];
8
+ ${c}`}if(G.hasFilePaths){let a=await aE(G.filePaths);a.contextPrefix&&(c=a.contextPrefix+c)}b&&H.pushEntry(b);let d=F.attachmentIds.length>0?F.attachmentIds:void 0,e=d?F.getAttachmentMetas():void 0;a(c,10,d,e,u??void 0),I.commands.clearContent(),A([]),F.clear(),G.clearFilePaths(),B.close(),C.close(),E.close()},[I,B,C,k,a,F,G,z,E,H]),Q=B.isOpen&&B.filteredSuggestions.length>0;C.isOpen&&C.filteredCommands.length,D.isOpen&&D.suggestions.length,E.isOpen&&E.suggestions.length,Q&&B.filteredSuggestions[B.activeIndex];let R=F.staged.some(a=>"uploading"===a.status),S=!I||I.isEmpty,T=g.find(a=>a.id===u)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(a0,{onDrop:F.stageFiles,children:(0,b.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:[r&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${q?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${q?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:q?"shipBgSweep 4s ease-in-out infinite":"none"}}),q&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${q?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:q?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(ad,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${q?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${q?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${q?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:q?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>r(!q),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)] ${q?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${q?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[F.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(a_,{attachments:F.staged,onRemove:F.remove,onRetry:F.retry})}),(0,b.jsxs)("div",{className:"p-2 relative",children:[(0,b.jsx)("input",{ref:w,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(F.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:J,children:[(0,b.jsx)(ar.EditorContent,{editor:I,className:"composer-editor"}),(0,b.jsx)(aQ,{isOpen:B.isOpen&&!C.isOpen,suggestions:B.filteredSuggestions,activeIndex:B.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:K}),(0,b.jsx)(aR,{isOpen:C.isOpen,commands:C.filteredCommands,activeIndex:C.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:O}),(0,b.jsx)(aX,{isOpen:D.isOpen,suggestions:D.suggestions,activeIndex:D.activeIndex,isLoading:D.isLoading,error:D.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?M(a):L(a)},onAttachContents:D.onAttachContents}),(0,b.jsx)(aY,{isOpen:E.isOpen&&!C.isOpen&&!D.isOpen,suggestions:E.suggestions,activeIndex:E.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:N})]})]}),(0,b.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,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{type:"button",onClick:y,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,b.jsx)(a1,{className:"h-4 w-4",strokeWidth:1.75})}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===g.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):g.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":u===a.id,onClick:()=>v(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),v(b=>b===a.id?null:a.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 ${u===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),t&&(0,b.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===s?"bg-amber-400":"bg-emerald-400"}`})]},a.id))})]}),T&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:T.name})]})]})]}),t?(0,b.jsx)("button",{type:"button",onClick:d,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,b.jsxs)("button",{type:"button",onClick:P,disabled:S&&!F.hasUploaded&&!G.hasFilePaths||R,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,b.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,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===s?"bg-emerald-400 animate-pulse":"queued"===s?"bg-amber-400":"bg-emerald-400"}`}),(0,b.jsx)("span",{children:"working"===s?"Working":"queued"===s?"Queued":"Ready"})]}),(0,b.jsxs)("span",{children:["Press ",(0,b.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,b.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,b.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 a4=a.i(55672);let a5={activeParticipantIdsByThread:{}};function a6(a,b){let c=a.trim();if(c)({...a5}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b)}var a7=a.i(15040),a8=a.i(31626);function a9({isOpen:a,title:d,message:e,preview:f,confirmLabel:g="Confirm",cancelLabel:h="Cancel",variant:i="default",onConfirm:j,onCancel:k}){let l=(0,c.useRef)(null),m=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(a){let a=setTimeout(()=>l.current?.focus(),50);return()=>clearTimeout(a)}},[a]);let n=(0,c.useCallback)(a=>{"Escape"===a.key&&k()},[k]);if(!a)return null;let o="danger"===i;return(0,b.jsxs)("div",{style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:a=>a.target===a.currentTarget&&k(),onKeyDown:n,className:"jsx-1da17079bc733bcf fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",children:[(0,b.jsxs)("div",{ref:m,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,b.jsx)("div",{className:"jsx-1da17079bc733bcf px-6 pt-6 pb-3",children:(0,b.jsxs)("div",{className:"jsx-1da17079bc733bcf flex items-start gap-4",children:[o&&(0,b.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,b.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,b.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,b.jsxs)("div",{className:"jsx-1da17079bc733bcf flex-1 min-w-0",children:[(0,b.jsx)("h3",{className:"jsx-1da17079bc733bcf text-[15px] font-semibold text-[var(--foreground)]",children:d}),(0,b.jsx)("p",{className:"jsx-1da17079bc733bcf mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:e})]})]})}),f&&(0,b.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,b.jsxs)("p",{className:"jsx-1da17079bc733bcf text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",f,"”"]})}),(0,b.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 border-t border-[var(--card-border)]"}),(0,b.jsxs)("div",{className:"jsx-1da17079bc733bcf px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,b.jsx)("button",{onClick:k,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:h}),(0,b.jsx)("button",{ref:l,onClick:j,className:`jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${o?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:g})]})]}),(0,b.jsx)(a8.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 ba=a.i(56196),bb=a.i(87532),bc=a.i(13749);let bd=(0,t.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"}]]),be=(0,t.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"}]]),bf=(0,t.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"}]]),bg=(0,t.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 bh=a.i(53722);function bi({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,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,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}function bj(){let[a,d]=(0,c.useState)("unknown"),[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(""),[i,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void d("unknown");let b=await a.json();d("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);f(c),h(new Date().toLocaleTimeString())}catch{d("unknown"),f([])}},[]);return(0,c.useEffect)(()=>{l();let a=setInterval(l,3e4);return()=>clearInterval(a)},[l]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:[(0,b.jsx)(j.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,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),i&&(0,b.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:[e.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:e.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),g&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",g]})]})]})}function bk(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function bl(a){let b=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(a)}`,{cache:"no-store"});if(!b.ok)throw Error("Failed to load thread knowledge run");let c=await b.json().catch(()=>null);return c?.run??null}function bm(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];return e?f:0===f.length?a.map(a=>a.id):f}function bn(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=bk(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=bk(d.title)||`Task ${e+1}`,g=bk(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}function bo({projectSlug:a,initialThreadId:j,initialRootMessageId:k,showSidebar:l=!0}={}){let m=(0,d.useSearchParams)(),{threads:n,activeThreadId:o,selectThread:p,createThread:q,deleteThread:r,updateThreadMessages:s,isCreating:t,deletingThreadId:u,renamingThreadId:v,isLoading:w,isRestoringActiveThread:x,renameThread:y,updateThreadStatus:z,updateThreadOutcomeNote:A,updateMessageThreadStatus:B,updateMessageOutcomeNote:C}=(0,h.useThreadState)(j),{messages:D,setMessages:E,logs:F,sendMessage:G,loadHistory:J,clearLogs:K,chatRuns:L,setChatRuns:M,stop:N,stopThread:O}=function(a){let[b,d]=(0,c.useState)([]),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)([]),k=(0,c.useRef)(a),l=(0,c.useRef)(a);k.current=a,l.current!==a&&(l.current=a,d([]),h([]),j([]));let m=(0,c.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();if(!b){d([]),h([]);return}let c=e(b);try{let[a,e]=await Promise.all([fetch(`/api/history?${c}`),fetch(`/api/logs?${f(b)}`)]);if(k.current!==b)return;a.ok&&d(await a.json()),e.ok&&h(await e.json())}catch{}},[]),n=(0,c.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();if(!b){d([]),h([]);return}let c=e(b);await Promise.all([fetch(`/api/history?${c}`,{method:"DELETE"}),fetch(`/api/logs?${f(b)}`,{method:"DELETE"})]),k.current===b&&(d([]),h([]))},[]),o=(0,c.useCallback)(async(a,b=10,c,e,f,g,h,i)=>{let l=c?.trim()||k.current?.trim();if(!l)return;let m=Date.now(),n=crypto.randomUUID(),o={id:n,role:"user",participantId:null,content:a,timestamp:m,rootMessageId:e||null,parentMessageId:e||null,depth:+!!e,...g&&g.length>0?{attachments:g}:{}};d(a=>[...a,o]);try{let c=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:l,prompt:a,maxRounds:b,userMessageId:n,rootMessageId:e||void 0,attachmentIds:f?.length?f:void 0,activeParticipantIds:Array.isArray(h)?h:void 0,projectSlug:i?.trim()||void 0})}),d=await c.json().catch(()=>null);c.ok&&d?.chatRunId&&j(a=>[{chatRunId:d.chatRunId,threadId:l,rootMessageId:e||n,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...a.filter(a=>a.chatRunId!==d.chatRunId)])}catch{}return n},[]),p=(0,c.useCallback)(async()=>{let a=k.current?.trim();if(a)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]),q=(0,c.useCallback)(async a=>{let b=k.current?.trim();if(b)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(b)}&threadId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]);return{messages:b,setMessages:d,logs:g,sendMessage:o,loadHistory:m,clearHistory:n,clearLogs:(0,c.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();b?(await fetch(`/api/logs?${f(b)}`,{method:"DELETE"}).catch(()=>{}),k.current===b&&h([])):h([])},[]),chatRuns:i,setChatRuns:j,stop:p,stopThread:q}}(o),{activeAgents:P,processes:Q,streaming:R,chatRuns:S,poll:T}=(0,g.useProcessPolling)(o?{workspaceId:o}:null,{messages:D,setMessages:E}),U=(0,c.useMemo)(()=>{let a=Date.now(),b=new Map(S.map(a=>[a.chatRunId,a]));for(let c of L)!(!c.optimistic||b.has(c.chatRunId))&&(a-(c.enqueuedAt??0)>5e3||b.set(c.chatRunId,c));return Array.from(b.values()).filter(a=>"queued"===a.status||"running"===a.status)},[L,S]),V=P.size>0||U.some(a=>"running"===a.status)?"working":U.some(a=>"queued"===a.status)?"queued":"ready";(0,c.useEffect)(()=>{M(a=>{let b=Date.now(),c=new Map(a.filter(a=>"string"==typeof a.chatRunId&&a.chatRunId.length>0).map(a=>[a.chatRunId,a]));for(let a of S)a?.chatRunId&&c.set(a.chatRunId,a);return Array.from(c.values()).filter(a=>!!(!a.optimistic||S.some(b=>b.chatRunId===a.chatRunId))||b-(a.enqueuedAt??0)<=5e3).sort((a,b)=>String(a.chatRunId||"").localeCompare(String(b.chatRunId||"")))})},[S,M]);let W=(0,c.useCallback)(async a=>{await fetch(`/api/chat-runs/${encodeURIComponent(a)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(()=>{})},[]),X=(0,c.useCallback)(async()=>{let a=U[0];a?.chatRunId&&await W(a.chatRunId),await N(),await T()},[U,W,N,T]),Y=(0,c.useCallback)(async a=>{let b=U.find(b=>b.rootMessageId===a);b?.chatRunId&&await W(b.chatRunId),await O(a),await T()},[U,W,O,T]),Z=(0,c.useRef)(X);(0,c.useEffect)(()=>{Z.current=X},[X]);let{projects:$,createProject:_,deleteProject:aa,addAgent:ab,removeAgent:ac,reorderAgents:ad}=(0,ba.useProjectsWithAgents)(),{projects:ae,updateProject:af}=(0,ba.useProjects)(),[ag,ai]=(0,c.useState)([]),[aj,ak]=(0,c.useState)(!1),[al,am]=(0,c.useState)([]),[ao,ap]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(()=>"light"),[at,au]=(0,c.useState)(!1),av=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=(0,a4.loadWorkspaceSidebarVisible)();av.current=!0,au(a)},[]),(0,c.useEffect)(()=>{},[ar]);let[aw,ax]=(0,c.useState)(!1),[ay,az]=(0,c.useState)(new Set),[aA,aB]=(0,c.useState)(!1),[aC,aD]=(0,c.useState)(!1),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(k??null),aI=m.get("open")?.trim()||null,aJ=aG?ay.has(aG):aA;(0,c.useEffect)(()=>{if(!aG)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(aG)}`).then(a=>a.json()).then(b=>{a||az(a=>{let c=a.has(aG);if(b.active&&!c){let b=new Set(a);return b.add(aG),b}if(!b.active&&c){let b=new Set(a);return b.delete(aG),b}return a})}).catch(()=>{})};b();let c=setInterval(b,1e4);return()=>{a=!0,clearInterval(c)}},[aG]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&az(a=>{let c=new Set(b.activeRootMessageIds);for(let b of a)c.add(b);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(()=>{})};b();let c=setInterval(b,15e3);return()=>{a=!0,clearInterval(c)}},[]),(0,c.useEffect)(()=>{if(aG){let b=a?`/projects/${a}/thread/${encodeURIComponent(o??j??"")}?open=${encodeURIComponent(aG)}`:`/thread/${aG}`;window.history.replaceState(null,"",b)}else window.history.replaceState(null,"",a?`/projects/${a}/thread/${encodeURIComponent(o??j??"")}`:"/")},[o,j,aG,a]),(0,c.useEffect)(()=>{a&&aH(a=>a===aI?a:aI)},[a,aI]),(0,c.useEffect)(()=>{k&&(async()=>{try{let a=await fetch(`/api/messages/${k}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&p(b)}catch{}})()},[k,p]);let[aK,aL]=(0,c.useState)(""),[aM,aN]=(0,c.useState)([]),[aO,aP]=(0,c.useState)(0),[aQ,aR]=(0,c.useState)(!1),[aS,aT]=(0,c.useState)(null),[aU,aV]=(0,c.useState)(null),[aW,aX]=(0,c.useState)(new Set),[aY,aZ]=(0,c.useState)(null),[a$,a_]=(0,c.useState)(null),[a0,a1]=(0,c.useState)({}),a2=(0,c.useCallback)(a=>{a1(b=>{let c="function"==typeof a?a(b):a;if(o)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:o,messageId:a,draft:d})}).catch(()=>{});return c})},[o]),[a8,bk]=(0,c.useState)(new Set),[bp,bq]=(0,c.useState)(new Set),br=(0,c.useRef)(null),bs=(0,c.useRef)(null),bt=(0,c.useRef)(null),bu=(0,c.useRef)(""),bv=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;ai(b)}finally{a&&ak(!0)}},[]),bw=(0,c.useCallback)(async a=>{try{await (0,a7.updateUserPreferences)({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[a7.updateUserPreferences]),bx=(0,c.useCallback)(a=>{(0,a4.persistWorkspaceSidebarVisible)(a),bw(a)},[bw]),by=aK.trim(),bz=by.length>0,bA=(0,c.useMemo)(()=>Object.fromEntries(n.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[n]),bB=(0,c.useMemo)(()=>{if(!aG)return[];let a=new Set([D.find(a=>a.id===aG),...D.filter(a=>a.rootMessageId===aG)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(R).forEach(b=>{R[b].rootMessageId===aG&&a.add(b)}),ag.filter(b=>a.has(b.id))},[aG,D,R,ag]),bC=(0,c.useMemo)(()=>{let a=new Map(ag.map(a=>[a.id,a]));return al.map(b=>a.get(b)).filter(Boolean)},[ag,al]),bD=(0,c.useMemo)(()=>ae.map(a=>({id:a.id,name:a.name,slug:a.slug})),[ae]),bE=(0,c.useMemo)(()=>{if(!aG)return 0;let a=[D.find(a=>a.id===aG),...D.filter(a=>a.rootMessageId===aG)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[aG,D]),bF=(0,c.useMemo)(()=>{if(!aG)return"";let a=D.find(a=>a.id===aG);if(!a)return"Discussion";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[aG,D]),bG=(0,c.useMemo)(()=>{if(!aG)return null;let a=D.find(a=>a.id===aG),b=a?.threadStatus??"active";return{value:b,...{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"}}[b]}},[aG,D]),bH=(0,c.useCallback)(()=>{aL(""),aN([]),aP(0),aT(null),aR(!1)},[]);(0,c.useCallback)(()=>{let a=bn(D,ag);navigator.clipboard.writeText(a).then(()=>{ap(!0),setTimeout(()=>ap(!1),2e3)})},[D,ag]);let[bI,bJ]=(0,c.useState)(null),bK=(0,c.useCallback)(a=>{let b=D.find(b=>b.id===a);if(!b)return;let c=[b,...D.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bJ({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[D]),bL=(0,c.useCallback)(a=>{let b=bn([D.find(b=>b.id===a),...D.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),ag,a0[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[D,ag,a0]),bM=(0,c.useCallback)(async()=>{if(aG){aD(!0);try{let b=["repo"];a&&b.push("project");let c=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:aG,scopes:b})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error("string"==typeof d?.error?d.error:"Request failed");aF(d?.run??null)}catch(b){let a=b instanceof Error?b.message:"Request failed";window.alert(`Failed to extract knowledge: ${a}`)}finally{aD(!1)}}},[aG,a]);(0,c.useEffect)(()=>{if(!aG){aF(null),aD(!1);return}let a=!1;return(async()=>{try{let b=await bl(aG);if(a)return;aF(b)}catch{a||aF(null)}})(),()=>{a=!0}},[aG]),(0,c.useEffect)(()=>{if(!aG||aE?.status!=="running")return;let a=!1,b=async()=>{try{let b=await bl(aG);if(a)return;aF(b)}catch{}};b();let c=window.setInterval(()=>{b()},2e3);return()=>{a=!0,window.clearInterval(c)}},[aG,aE?.status]);let bN=aE?.status==="running",bO=aC||bN,bP=(aE?.repoInsertedCount??0)+(aE?.projectInsertedCount??0),bQ=(0,c.useMemo)(()=>{if(!aE)return null;if("running"===aE.status)return"Learning in progress";if("failed"===aE.status)return"Last learning run failed";if(bP>0){let a=1===bP?"insight":"insights";return`Learned ${bP} ${a}`}return"No new learnings"},[bP,aE]);(0,c.useEffect)(()=>{bv(!0)},[bv]);let bR=(0,c.useMemo)(()=>{if(!aj)return[];let a=new Set(ag.map(a=>a.id)),b=new Set;for(let c of D)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(R))a.has(c)||b.add(c);return Array.from(b).sort()},[D,ag,aj,R]);(0,c.useEffect)(()=>{if(!aj)return;let a=bR.join("|");if(!a){bu.current="";return}bu.current!==a&&(bu.current=a,bv(!1))},[aj,bv,bR]),(0,c.useEffect)(()=>{if(!aj)return;let a=bm(ag,$,o);if(!o)return void am(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...a5};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(o);if(null===b)return void am(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b),d=c.length>0?c:a;(d.length!==b.length||d.some((a,c)=>b[c]!==a))&&a6(o,d),am(d)},[o,ag,aj,$]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await (0,a7.fetchUserPreferences)();if(a)return;au(a=>a===b.threadSidebarVisible?a:av.current?(bw(a),a):((0,a4.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[bw]),(0,c.useEffect)(()=>{w||t||0!==n.length||q({id:"global",title:"General"})},[w,t,n.length,q]),(0,c.useEffect)(()=>()=>{bt.current&&window.clearTimeout(bt.current)},[]),(0,c.useEffect)(()=>{let a=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),br.current?.focus(),br.current?.select();return}"Escape"===a.key&&by&&bH()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[bH,by]),(0,c.useEffect)(()=>{if(!by){aN([]),aP(0),aT(null),aR(!1);return}let a=!1;aR(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:by,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(()=>null);if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";aN([]),aP(0),aT(a);return}aN(Array.isArray(d.results)?d.results:[]),aP("number"==typeof d.total?d.total:0),aT(null)}catch(b){if(a)return;console.error("Search request failed",b),aN([]),aP(0),aT("Search failed")}finally{a||aR(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[by]);let bS=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bS.current&&bS.current!==o&&(Z.current(),bs.current?(aH(bs.current),bs.current=null):aH(null)),bS.current=o,o&&(J(o),fetch(`/api/task-drafts?threadId=${encodeURIComponent(o)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?a1(a.drafts):a1({})}).catch(()=>a1({})))},[o,J]),(0,c.useEffect)(()=>{o&&s(o,D)},[o,D,s]);let bT=(0,c.useCallback)((b,c,d=10,e)=>{if(!o||0===bC.length)return;let f=bC.map(a=>a.id);G(c,d,o,b,void 0,void 0,e&&f.includes(e)?[e,...f.filter(a=>a!==e)]:f,a)},[o,G,bC,a]),bU=(0,c.useCallback)(async a=>{if(o){if(0===bC.length)return void window.alert("Enable at least one agent in this project.");aX(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:o,rootMessageId:a,activeParticipantIds:bC.map(a=>a.id)})});b.ok?await J(o):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{aX(b=>{let c=new Set(b);return c.delete(a),c})}}},[o,J,bC]),bV=(0,c.useCallback)(async a=>{if(o){if(0===bC.length)return void window.alert("Enable at least one agent in this project.");bk(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:o,rootMessageId:a,activeParticipantIds:bC.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};a2(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{bk(b=>{let c=new Set(b);return c.delete(a),c})}}},[o,bC]),bW=(0,c.useCallback)((a,b)=>{a2(c=>({...c,[a]:b}))},[]),bX=(0,c.useCallback)(async(a,b,c,d)=>{if(o){bq(a=>new Set(a).add(b.draftId)),a2(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await H(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;a2(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),a2(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{bq(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[o]),bY=(0,c.useCallback)(()=>{if(!o)return;let a=(()=>{if(aG)return aG;let a=new Set(D.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=D.length-1;b>=0;b-=1){let c=D[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bV(a):console.warn("No thread with replies available to extract tasks from")},[o,bV,D,aG]);(0,c.useCallback)(a=>{aH(a)},[]);let bZ=(0,c.useCallback)(a=>{aH(a)},[]),b$=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&aL(b),requestAnimationFrame(()=>{br.current?.focus(),b||br.current?.select()})},[]),b_=(0,c.useCallback)(()=>{if(!o)return;let a=(()=>{if(aG)return aG;let a=new Set(D.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=D.length-1;b>=0;b-=1){let c=D[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bU(a):console.warn("No thread with replies available to summarize")},[o,bU,D,aG]),b0=(0,c.useCallback)(async(b,c,d,e,f)=>{let g=b.match(/^\/search(?:\s+([\s\S]+))?$/i);if(g)return void b$(g[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(b))return void b_();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(b)||/^\/create(?:\s+[\s\S]+)?$/i.test(b))return void bY();aJ&&aG&&(az(a=>{let b=new Set(a);return b.delete(aG),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:aG})}).catch(a=>console.error("Failed to deactivate schedule:",a)));let h=o;h||(h=(await q()).id);let i=bC.map(a=>a.id);if(0===i.length)return void window.alert("Enable at least one agent in this project.");let j=f&&i.includes(f)?[f,...i.filter(a=>a!==f)]:i;if(aG)return void await G(b,c,h,aG,d,e,j,a);let k=await G(b,c,h,null,d,e,j,a);aA&&k&&(aB(!1),az(a=>{let b=new Set(a);return b.add(k),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:k})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[o,aJ,aA,q,b$,b_,aG,bC,G,a]),b1=(0,c.useCallback)(async a=>{if(!aG)return void aB(a);az(b=>{let c=new Set(b);return a?c.add(aG):c.delete(aG),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:aG})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[aG]),b2=(0,c.useCallback)(a=>{let b=a.rootMessageId||a.messageId;a.threadId!==o?(bs.current=b,p(a.threadId)):aH(b),aV(null),window.requestAnimationFrame(()=>{aV(a.messageId),bt.current&&window.clearTimeout(bt.current),bt.current=window.setTimeout(()=>{aV(b=>b===a.messageId?null:b)},2e3)}),bH()},[o,bH,p]),b3=(0,c.useCallback)(async a=>{X(),await r(a)},[r,X]),b4=(0,c.useCallback)(a=>{if(!o||!a)return;let b=D.find(b=>b.id===a);a_({type:"thread",id:a,preview:b?.content?.slice(0,120)||void 0})},[o,D]),b5=(0,c.useCallback)(async a=>{if(o){aZ(a),Y(a);try{let b=new URLSearchParams({threadId:o,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());aH(b=>b===a?null:b),aV(null);let d=D.filter(b=>b.id!==a&&b.rootMessageId!==a);s(o,d),await J(o)}catch(a){console.error("Failed to delete message thread",a)}finally{aZ(b=>b===a?null:b)}}},[o,J,D,Y,s]),b6=(0,c.useCallback)(a=>{if(!o||!a)return;let b=D.find(b=>b.id===a);a_({type:"message",id:a,preview:b?.content?.slice(0,120)||void 0})},[o,D]),b7=(0,c.useCallback)(async a=>{if(o)try{let b=new URLSearchParams({threadId:o,messageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message",await c.text());let d=D.filter(b=>b.id!==a);s(o,d),await J(o)}catch(a){console.error("Failed to delete message",a)}},[o,J,D,s]),b8=(0,c.useCallback)(()=>{a$&&("thread"===a$.type?b5(a$.id):b7(a$.id),a_(null))},[a$,b5,b7]),b9=(0,c.useCallback)(()=>{a_(null)},[]),ca=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>b$()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>b_()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>bY()}],[b$,b_,bY]),cb=(0,c.useMemo)(()=>o?$.filter(a=>a.thread_ids?.includes(o)):$,[$,o]),cc=(0,c.useCallback)(a=>{let c=Q.some(b=>["spawning","running"].includes(b.state)&&b.threadId===a)||Object.values(R).some(b=>b.rootMessageId===a)?"working":U.some(b=>b.rootMessageId===a&&"queued"===b.status)?"queued":"ready";return(0,b.jsx)(a3,{onSend:(b,c,d,e,f)=>bT(a,b,c,f),onStop:()=>Y(a),loading:"ready"!==c,activityStatus:c,participants:bC,projectGroups:cb,projects:bD,messages:D,commands:ca,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:aJ,onAutoModeChange:b1})},[bT,Y,R,bC,cb,bD,ca,D,aJ,b1,Q,U]),cd=(0,c.useCallback)(()=>{au(a=>{let b=!a;return bx(b),b})},[bx]),ce=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();ai(b=>b.map(b=>b.id===a.id?a:b))}},cf=(0,c.useCallback)((a,b)=>{am(c=>{let d=bm(ag,$,o);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return o&&a6(o,f),f})},[o,ag,$]),cg=(0,c.useCallback)(a=>{let b=$.find(b=>b.id===a);if(!b||o&&!b.thread_ids?.includes(o))return;let c=b.agents.map(a=>a.agent_id);am(c),o&&a6(o,c)},[$,o]),ch=(0,c.useCallback)(()=>{as(a=>"dark"===a?"light":"dark")},[]),ci=()=>(0,b.jsx)("button",{type:"button",onClick:ch,"aria-label":"dark"===ar?"Switch to light theme":"Switch to dark theme",title:"dark"===ar?"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"===ar?(0,b.jsx)(bg,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(bf,{className:"h-4 w-4",strokeWidth:1.75})}),cj=(0,b.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,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:l&&!at&&(0,b.jsx)("button",{type:"button",onClick:cd,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,b.jsx)(be,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(bb.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,b.jsx)("input",{ref:br,type:"text",value:aK,onChange:a=>aL(a.target.value),onKeyDown:a=>{"Escape"===a.key&&bH()},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)]"}),by?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:aQ?"…":aO}),(0,b.jsx)("button",{type:"button",onClick:bH,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,b.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,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[ci(),(0,b.jsx)(bj,{}),aG&&(0,b.jsx)("button",{type:"button",onClick:()=>ax(!aw),"aria-label":aw?"Hide logs":`Show logs${F.length>0?` (${F.length})`:""}`,"aria-pressed":aw,title:aw?"Hide logs":`Show logs${F.length>0?` (${F.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)] ${aw?"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,b.jsx)(bd,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[l?(0,b.jsx)(i.WorkspaceSidebar,{threads:n,participants:ag,activeThreadId:o,isLoading:w,isRestoringActiveThread:x,isCreating:t,deletingThreadId:u,renamingThreadId:v,onSelectThread:p,onCreateThread:q,onRenameThread:y,onDeleteThread:b3,activeParticipantIds:al,onToggleParticipantActive:cf,visible:at,onToggle:cd,projects:$,onCreateProject:_,onUpdateProject:af,onDeleteProject:aa,onAddAgentToProject:ab,onRemoveAgentFromProject:ac,onReorderProjectAgents:ad,onUpdateParticipant:ce,onSelectProject:cg}):null,(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:x?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[aG?(0,b.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,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,b.jsx)("button",{onClick:()=>aH(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,b.jsx)(bc.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:bF}),bG&&(0,b.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:bG.color+"40",color:bG.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:bG.color}}),bG.label]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[bB.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(bE)]}),bQ&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"opacity-80",children:bQ})]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:bB.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.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:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void bM(),disabled:bO,title:bN?"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)] ${bO?"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:[bO?(0,b.jsx)(I,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,b.jsx)(bh.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bN?"Learning...":"Learn from discussion"})]}),ci(),(0,b.jsx)(bj,{}),(0,b.jsx)("button",{type:"button",onClick:()=>ax(!aw),"aria-label":aw?"Hide logs":`Show logs${F.length>0?` (${F.length})`:""}`,"aria-pressed":aw,title:aw?"Hide logs":`Show logs${F.length>0?` (${F.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)] ${aw?"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,b.jsx)(bd,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):cj,bz?(0,b.jsx)(aq,{query:by,results:aM,total:aO,participants:ag,threadTitleById:bA,isLoading:aQ,error:aS,onSelectResult:b2}):aG?(0,b.jsx)(an,{messages:D,streaming:R,participants:ag,rootMessageId:aG,queued:U.some(a=>a.rootMessageId===aG&&"queued"===a.status),onClose:()=>aH(null),onCopyThread:bL,onAddToChat:bK,onDeleteThreadRoot:b4,onDeleteMessage:b6,highlightedMessageId:aU||void 0,renderReplyComposer:cc,activeProcesses:Q.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===aG)}):(0,b.jsx)(ah,{messages:D,streaming:R,participants:ag,onOpenThread:bZ,onCopyThread:bL,onAddToChat:bK,onDeleteThreadRoot:b4,onSummarize:bU,onCreateTasks:bV,onUpdateTaskDraft:bW,onBuildTasks:bX,summarizingThreads:aW,extractingTasks:a8,buildingDrafts:bp,taskDrafts:a0,deletingThreadRootId:aY,highlightedMessageId:aU,shipModeThreads:ay,onUpdateMessageThreadStatus:o?(a,b)=>{E(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),B(o,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:o?(a,b)=>{E(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),C(o,a,b);let c=D.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!bz&&!aG&&(0,b.jsx)(a3,{onSend:b0,onStop:X,loading:"ready"!==V,activityStatus:V,participants:bC,projects:bD,projectGroups:cb,messages:D,commands:ca,pendingThreadInsert:bI,onClearPendingThread:()=>bJ(null),autoMode:aJ,onAutoModeChange:b1})]})})}),k&&(0,b.jsx)(bi,{logs:F,participants:ag,onClear:()=>void K(o),open:aw,onToggle:()=>ax(!1)}),(0,b.jsx)(a9,{isOpen:null!==a$,title:a$?.type==="thread"?"Delete Discussion":"Delete Message",message:a$?.type==="thread"?"This will permanently delete this discussion and all of its replies. This action cannot be undone.":"This will permanently delete this message. This action cannot be undone.",preview:a$?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:b8,onCancel:b9})]})}a.s(["ChatContainer",()=>bo],24610)}];
9
9
 
10
10
  //# sourceMappingURL=components_chat-ui_bfeda794._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[86976,82434,92596,55672,a=>{"use strict";var b=a.i(90944),c=a.i(72131),d=a.i(5784),e=a.i(50522),f=a.i(2835),g=a.i(60137);let h=(0,g.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);a.s(["Bot",()=>h],82434);let i=(0,g.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["Folder",()=>i],92596);var j=a.i(34531);let k=(0,g.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var l=a.i(99464),m=a.i(85552);let n=(0,g.default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var o=a.i(15618),p=a.i(87532),q=a.i(81560),r=a.i(33508),s=a.i(38246),t=a.i(20138),u=a.i(44637);function v({threads:a,participants:g=[],activeThreadId:v,isLoading:w,isCreating:x,onSelectThread:y,onCreateThread:z,onRenameThread:A,onDeleteThread:B,deletingThreadId:C=null,renamingThreadId:D=null,activeParticipantIds:E=[],onToggleParticipantActive:F,visible:G=!1,isRestoringActiveThread:H=!1,onToggle:I,onSearch:J,projects:K=[],onCreateProject:L,onUpdateProject:M,onDeleteProject:N,onAddAgentToProject:O,onRemoveAgentFromProject:P,onAddAgentViaForm:Q,onReorderProjectAgents:R,onUpdateParticipant:S,onSelectProject:T,getProjectBoardHref:U,activeProjectId:V=null,activeProjectView:W=null}){let X,Y,Z=(0,c.useRef)(null),[$,_]=(0,c.useState)(new Set),[aa,ab]=(0,c.useState)(null),[ac,ad]=(0,c.useState)(new Set),[ae,af]=(0,c.useState)(!1),[ag,ah]=(0,c.useState)(null),[ai,aj]=(0,c.useState)(null),ak=(0,u.useProjectFormState)(),[al,am]=(0,c.useState)(null),an=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[ao,ap]=(0,c.useState)(null),[aq,ar]=(0,c.useState)(null),as=aq?g.find(a=>a.id===aq)??null:null,[at,au]=(0,c.useState)(null),[av,aw]=(0,c.useState)(null),ax=async()=>{if(!ag&&!ai)return;if(!ak.form.name.trim())return void ak.setFormError("Project name is required");let a=ak.repos.find(a=>a.name.trim()&&!a.path.trim());if(a)return void ak.setFormError(`Local path is required for repository "${a.name}"`);ak.setFormError(null),ak.setIsSubmitting(!0);let b=(0,u.createProjectPayload)(ak.form,ak.repos);ai?await M?.(ai.id,b):await L?.(b,ag?.threadId),ak.setIsSubmitting(!1),ah(null),aj(null)},ay=async a=>{ak.resetForm();try{let b=await fetch(`/api/projects/${a}`);if(!b.ok)throw Error("Failed to load project");let c=(await b.json()).project;aj(c),ak.hydrateFromProject(c)}catch(a){console.error("Failed to load project settings",a)}};(0,c.useEffect)(()=>{let a=!1;async function b(){if(at?.repoId)try{let b=await fetch(`/api/repos/${at.repoId}/knowledge?producer=system`),c=b.ok?await b.json():{knowledge:[]};a||au(a=>a&&a.repoId===at.repoId?{...a,generatedKnowledge:c.knowledge??[],isLoadingKnowledge:!1}:a)}catch{a||au(a=>a&&a.repoId===at.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return at?.repoId&&b(),()=>{a=!0}},[at?.repoId]);let az=a=>{Q?Q(a):(ad(new Set),ab({projectId:a}))},aA=aa?K.find(a=>a.id===aa.projectId):null,aB=new Set(aA?.agents.map(a=>a.agent_id)??[]),aC=aa?g.filter(a=>!aB.has(a.id)):[],aD=a.length>0,aE=!!G,aF=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),aG=K.filter(a=>!a.is_default),aH=aF.filter(a=>!aG.some(b=>b.thread_ids?.includes(a.id))),aI=(0,c.useCallback)(a=>U?.(a)??`/projects/${a.slug}`,[U]);!function({focusTarget:a,shouldFocus:b}){(0,c.useEffect)(()=>{if(!b||"u"<typeof document)return;let c=a.current;if(!c||c instanceof HTMLButtonElement&&c.disabled)return;let d=document.activeElement;if(!(d&&(c===d||c.contains(d))))try{c.focus({preventScroll:!0})}catch{c.focus()}},[a,b])}({focusTarget:Z,shouldFocus:aE&&!(w&&!aD||H&&aD)&&!aD&&!x});let aJ=()=>{am({title:"Create thread",placeholder:"Thread title",defaultValue:"",onSubmit:a=>void z({title:a})})};return aE?(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar","aria-label":"Workspace sidebar","aria-busy":w?"true":void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-icon","aria-hidden":"true",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})}),(0,b.jsx)("span",{className:"workspace-sidebar__brand-title",children:"Workspace"})]}),I&&(0,b.jsx)("button",{type:"button",onClick:I,"aria-label":"Hide threads",title:"Hide threads",className:"ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,b.jsx)(k,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[J&&(0,b.jsx)("div",{className:"px-3 pt-2 pb-1",children:(0,b.jsxs)("button",{type:"button",onClick:J,className:"flex h-8 w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 text-xs text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] hover:text-[var(--app-shell-muted)]",children:[(0,b.jsx)(p.Search,{className:"h-3.5 w-3.5 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Search..."}),(0,b.jsx)("kbd",{className:"ml-auto rounded border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1 py-0.5 font-sans text-[10px] font-medium text-[var(--app-shell-soft-text)]",children:"⌘K"})]})}),(0,b.jsx)("nav",{className:"workspace-sidebar__section",style:{gap:0},children:(0,b.jsxs)(s.default,{href:"/agents",className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(h,{size:14,className:"flex-shrink-0"}),"Manage Agents"]})}),(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__section-header group/projects-header",children:[(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Projects"}),(0,b.jsx)("div",{className:"workspace-sidebar__header-actions",children:(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/projects-header:opacity-100",onClick:()=>{ak.resetForm(),aj(null),ah({})},"aria-label":"Create project",title:"Create project",children:(0,b.jsx)(o.Plus,{size:14})})})]}),aG.map(a=>{let c=$.has(a.id),h=aF.filter(b=>a.thread_ids?.includes(b.id)),k=a.id===V,p=h[0]?.id??a.thread_ids?.[0]??null,r=k&&"thread"===W&&p===v,u=k&&"board"===W,w=k&&"knowledge"===W;return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item",children:[(0,b.jsx)("button",{type:"button",className:"inline-flex items-center justify-center rounded-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>{var b;return b=a.id,void _(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},"aria-label":c?`Collapse ${a.name}`:`Expand ${a.name}`,title:c?"Collapse project":"Expand project",children:c?(0,b.jsx)(d.ChevronDown,{size:14,className:"flex-shrink-0"}):(0,b.jsx)(e.ChevronRight,{size:14,className:"flex-shrink-0"})}),(0,b.jsx)(i,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:a.name})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-actions",children:[(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action",onClick:()=>void ay(a.id),"aria-label":`Open project settings for ${a.name}`,title:"Project settings",children:(0,b.jsx)(l.Pencil,{size:12})}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action workspace-sidebar__workspace-action--delete",onClick:()=>{var b;let c;return b=a.id,c=K.find(a=>a.id===b),void ap({title:"Delete project",message:`Delete "${c?.name??"project"}"? Its agents will move to the Default project.`,onConfirm:()=>void N?.(b)})},"aria-label":`Delete project ${a.name}`,title:`Delete project ${a.name}`,children:(0,b.jsx)(q.Trash2,{size:12})})]})]}),c&&(0,b.jsxs)("div",{className:"ml-4 my-1 flex flex-col gap-0.5 border-l border-[var(--app-shell-border)] pl-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:p?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${r?"workspace-sidebar__nav-item--active":""}`,onClick:()=>y(p),"aria-current":r?"page":void 0,children:[(0,b.jsx)(f.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Thread"})]}):(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item",onClick:aJ,children:[(0,b.jsx)(f.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Thread"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(s.default,{href:aI(a),className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(n,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Board"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(s.default,{href:`/projects/${a.slug}/knowledge`,className:`workspace-sidebar__nav-item ${w?"workspace-sidebar__nav-item--active":""}`,"aria-current":w?"page":void 0,children:[(0,b.jsx)(m.BrainCircuit,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Knowledge"})]})}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/repos-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Repos"}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>au({projectId:a.id,projectName:a.name,repoId:null,name:"",path:"",gitUrl:"",notes:"",generatedKnowledge:[],isLoadingKnowledge:!1,isSaving:!1,error:null}),"aria-label":"Add repo",title:"Add repo",children:(0,b.jsx)(o.Plus,{size:12})})]}),a.repos.length>0?a.repos.map(c=>(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group/repo flex items-center",children:[(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item min-w-0 flex-1 text-left",onClick:()=>au({projectId:a.id,projectName:a.name,repoId:c.id,name:c.name,path:c.path||"",gitUrl:c.git_url||"",notes:c.notes||"",generatedKnowledge:[],isLoadingKnowledge:!0,isSaving:!1,error:null}),children:[(0,b.jsx)(j.FolderGit2,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)] ml-2"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:c.name})]}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 group-hover/repo:opacity-100 transition-opacity flex-shrink-0 text-[var(--muted-foreground)] hover:text-red-400",onClick:async b=>{b.stopPropagation();let d=a.repos.filter(a=>a.id!==c.id).map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}));await M?.(a.id,{repos:d})},"aria-label":"Delete repo",title:"Delete repo",children:(0,b.jsx)(q.Trash2,{size:12})})]},`${a.id}:${c.name}:${c.path??""}`)):(0,b.jsx)("p",{className:"px-3 py-1 text-[11px] text-[var(--muted-foreground)]",children:"No repos"})]}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/agents-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Agents"}),a.agents.length>0&&(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>az(a.id),"aria-label":"Add agents",title:"Add agents",children:(0,b.jsx)(o.Plus,{size:12})})]}),a.agents.length>0?(0,b.jsx)(b.Fragment,{children:a.agents.map((c,d)=>{let e=g.find(a=>a.id===c.agent_id),f=av?.projectId===a.id&&av?.agentId===c.agent_id,h=av?.projectId===a.id&&av?.overIndex===d&&!f;return(0,b.jsx)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.effectAllowed="move",aw({projectId:a.id,agentId:c.agent_id,overIndex:d})},onDragOver:b=>{b.preventDefault(),av&&av.projectId===a.id&&aw(a=>a?{...a,overIndex:d}:null)},onDragEnd:()=>{if(av&&av.projectId===a.id&&R){let b=a.agents.map(a=>a.agent_id),c=b.indexOf(av.agentId),d=av.overIndex;if(-1!==c&&c!==d){let e=[...b],[f]=e.splice(c,1);e.splice(d,0,f),R(a.id,e)}}aw(null)},className:`group/agent flex items-center ${h?"border-t-2 border-[var(--border)]":"border-t-2 border-transparent"} ${f?"opacity-40":""}`,children:(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item flex-1 min-w-0 !py-1",onClick:()=>ar(c.agent_id),children:[(0,b.jsx)("span",{className:`cursor-grab text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] flex-shrink-0 mr-0.5 transition-opacity ${0===d?"opacity-100":"opacity-0 group-hover/agent:opacity-100"}`,title:"Drag to reorder",children:"⠿"}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(c.agent_id,16,e?.color),alt:"",className:"w-4 h-4 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:e?.name??c.agent_id}),0===d&&(0,b.jsx)("span",{className:"ml-auto text-[9px] text-[var(--muted-foreground)] font-medium flex-shrink-0",title:"Default responder (top agent responds first)",children:"DEFAULT"})]})},c.agent_id)})}):(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 px-3 py-1 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>az(a.id),children:[(0,b.jsx)(o.Plus,{size:10}),(0,b.jsx)("span",{children:"Add agents"})]})]})]})]},a.id)}),aH.length>0&&(0,b.jsxs)("div",{className:"pt-3",children:[(0,b.jsx)("p",{className:"px-1 py-1 text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Unassigned Threads"}),aH.map(a=>{let c=a.id===v,d=a.title?.trim()||"Untitled thread";return(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item group",children:(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item ${c?"workspace-sidebar__nav-item--active workspace-sidebar__workspace-nav-item--active":""}`,onClick:()=>y(a.id),"aria-current":c?"page":void 0,children:[(0,b.jsx)(f.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:d})]})},a.id)})]})]})]}),(0,b.jsx)("div",{className:"mt-auto px-3 pb-3",children:(0,b.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:[(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})}),at&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{at.isSaving||au(null)},children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:at.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:at.repoId?at.name||"Repository":"Add Repository"})]}),(0,b.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{at.isSaving||au(null)},"aria-label":"Close repo details",disabled:at.isSaving,children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:at.name,onChange:a=>au(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:at.isSaving})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsx)("input",{value:at.path,onChange:a=>au(b=>b?{...b,path:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:at.isSaving})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Repo Notes"}),(0,b.jsx)("textarea",{value:at.notes,onChange:a=>au(b=>b?{...b,notes:a.target.value,error:null}:b),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:at.isSaving,placeholder:"Repo-specific rules, notes, conventions, deployment constraints..."})]}),at.repoId?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Repo Note"}),at.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading repo note…"}):at.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:at.generatedKnowledge.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,b.jsx)("div",{children:a.content}),a.created_at?(0,b.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(a.created_at).toLocaleString()}):null]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No repo note yet."})]}):null,at.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:at.error}):null,(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,b.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>au(null),disabled:at.isSaving,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:at.isSaving||!M,onClick:async()=>{let a=K.find(a=>a.id===at.projectId);if(!a)return void au(a=>a?{...a,error:"Project not found."}:a);let b=at.name.trim(),c=at.path.trim();if(!b)return void au(a=>a?{...a,error:"Repo name is required."}:a);if(!c)return void au(a=>a?{...a,error:"Repo path is required."}:a);au(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=at.repoId?a.repos.map(a=>a.id===at.repoId?{id:a.id,name:b,path:c,git_url:at.gitUrl.trim()||void 0,notes:at.notes.trim()||void 0}:{id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}):[...a.repos.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes})),{name:b,path:c,git_url:at.gitUrl.trim()||void 0,notes:at.notes.trim()||void 0}];await M?.(a.id,{repos:d}),au(null)}catch(a){au(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save repo details."}:b)}},children:at.isSaving?"Saving...":at.repoId?"Save":"Add Repo"})]})]})]})}),aa&&!ae&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ab(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",aA?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ab(null),children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>af(!0),children:[(0,b.jsx)(o.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===aC.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):aC.map(a=>{let c=ac.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ad(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${c?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:a.model})]})]},a.id)})]}),aC.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ab(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===ac.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of ac)O?.(aa.projectId,a);ab(null)},children:["Add ",ac.size>0?`(${ac.size})`:""]})]})]})}),ae&&(0,b.jsx)(t.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[]},submitLabel:"Create & Add",projects:K?.filter(a=>!a.is_default).map(b=>{let c=(b.thread_ids??[]).map(b=>a.find(a=>a.id===b)?.title?.trim()).filter(Boolean).join(", ")||"No thread";return{id:b.id,name:b.name,label:`${c} › ${b.name}`}}),initialProjectIds:aa?[aa.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[g.length%c.length],e=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),f=b?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.identity?{identity:a.identity}:{},skills:a.skills??[],...f?{projectId:f}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():e;for(let a of(b??[]).slice(1))O?.(a,c);af(!1),ab(null)}},onCancel:()=>{af(!1)}}),al&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>am(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:al.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>am(null),children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:a=>{a.preventDefault();let b=new FormData(a.currentTarget),c=b.get("value")?.trim();c&&(al.onSubmit(c),am(null))},children:[(0,b.jsx)("input",{ref:an,name:"value",type:"text",defaultValue:al.defaultValue,placeholder:al.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>am(null),children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:al.defaultValue?"Save":"Create"})]})]})]})}),ao&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ap(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:ao.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ap(null),children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:ao.message}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ap(null),children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{ao.onConfirm(),ap(null)},children:"Delete"})]})]})]})}),(ag||ai)&&(0,b.jsx)(u.default,{isOpen:!0,onClose:()=>{ak.resetForm(),ah(null),aj(null)},onSubmit:()=>void ax(),editingProject:ai,form:ak.form,repos:ak.repos,isSubmitting:ak.isSubmitting,formError:ak.formError,onFieldChange:(a,b)=>ak.setForm(c=>({...c,[a]:b})),onRepoChange:ak.handleRepoChange,onAddRepo:ak.addRepo,onRemoveRepo:ak.removeRepo}),as&&(X=K.filter(a=>a.agents.some(a=>a.agent_id===as.id)),Y=K.filter(a=>!a.agents.some(a=>a.agent_id===as.id)),(0,b.jsx)(t.AgentForm,{title:"Edit agent",initial:{name:as.name,provider:as.provider,model:as.model||"",identity:as.identity||"",color:as.color,skills:as.skills||[]},agentId:as.id,submitLabel:"Save",projectMemberships:{current:X.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:Y.map(a=>({id:a.id,name:a.name}))},onAddToProject:O?a=>O(a,as.id):void 0,onRemoveFromProject:P?a=>P(a,as.id):void 0,onSubmit:async a=>{S&&await S({...as,name:a.name,provider:a.provider,model:a.model,color:a.color??as.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[]}),ar(null)},onCancel:()=>ar(null)}))]}):(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand",children:(0,b.jsx)("button",{type:"button",onClick:I,className:"workspace-sidebar__brand-icon border-none outline-none cursor-pointer","aria-label":"Show threads",title:"Show threads",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})})}),(0,b.jsx)("div",{className:"mt-auto p-2",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",title:"Join Discord",children:(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})}a.s(["WorkspaceSidebar",()=>v],86976);let w={threadSidebarVisible:!1};function x(){return({...w}).threadSidebarVisible}function y(a){}a.s(["loadWorkspaceSidebarVisible",()=>x,"persistWorkspaceSidebarVisible",()=>y],55672)}];
1
+ module.exports=[86976,82434,92596,55672,a=>{"use strict";var b=a.i(90944),c=a.i(72131),d=a.i(5784),e=a.i(50522),f=a.i(2835),g=a.i(60137);let h=(0,g.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);a.s(["Bot",()=>h],82434);let i=(0,g.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);a.s(["Folder",()=>i],92596);var j=a.i(34531);let k=(0,g.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var l=a.i(99464),m=a.i(85552);let n=(0,g.default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var o=a.i(15618),p=a.i(87532),q=a.i(81560),r=a.i(33508),s=a.i(38246),t=a.i(20138),u=a.i(44637);function v({threads:a,participants:g=[],activeThreadId:v,isLoading:w,isCreating:x,onSelectThread:y,onCreateThread:z,onRenameThread:A,onDeleteThread:B,deletingThreadId:C=null,renamingThreadId:D=null,activeParticipantIds:E=[],onToggleParticipantActive:F,visible:G=!1,isRestoringActiveThread:H=!1,onToggle:I,onSearch:J,projects:K=[],onCreateProject:L,onUpdateProject:M,onDeleteProject:N,onAddAgentToProject:O,onRemoveAgentFromProject:P,onAddAgentViaForm:Q,onReorderProjectAgents:R,onUpdateParticipant:S,onSelectProject:T,getProjectBoardHref:U,activeProjectId:V=null,activeProjectView:W=null}){let X,Y,Z=(0,c.useRef)(null),[$,_]=(0,c.useState)(new Set),[aa,ab]=(0,c.useState)(null),[ac,ad]=(0,c.useState)(new Set),[ae,af]=(0,c.useState)(!1),[ag,ah]=(0,c.useState)(null),[ai,aj]=(0,c.useState)(null),ak=(0,u.useProjectFormState)(),[al,am]=(0,c.useState)(null),an=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[ao,ap]=(0,c.useState)(null),[aq,ar]=(0,c.useState)(null),as=aq?g.find(a=>a.id===aq)??null:null,[at,au]=(0,c.useState)(null),[av,aw]=(0,c.useState)(null),ax=async()=>{if(!ag&&!ai)return;if(!ak.form.name.trim())return void ak.setFormError("Project name is required");let a=ak.repos.find(a=>a.name.trim()&&!a.path.trim());if(a)return void ak.setFormError(`Local path is required for repository "${a.name}"`);ak.setFormError(null),ak.setIsSubmitting(!0);let b=(0,u.createProjectPayload)(ak.form,ak.repos);ai?await M?.(ai.id,b):await L?.(b,ag?.threadId),ak.setIsSubmitting(!1),ah(null),aj(null)},ay=async a=>{ak.resetForm();try{let b=await fetch(`/api/projects/${a}`);if(!b.ok)throw Error("Failed to load project");let c=(await b.json()).project;aj(c),ak.hydrateFromProject(c)}catch(a){console.error("Failed to load project settings",a)}};(0,c.useEffect)(()=>{let a=!1;async function b(){if(at?.repoId)try{let b=await fetch(`/api/repos/${at.repoId}/knowledge?producer=system`),c=b.ok?await b.json():{knowledge:[]};a||au(a=>a&&a.repoId===at.repoId?{...a,generatedKnowledge:c.knowledge??[],isLoadingKnowledge:!1}:a)}catch{a||au(a=>a&&a.repoId===at.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return at?.repoId&&b(),()=>{a=!0}},[at?.repoId]);let az=a=>{Q?Q(a):(ad(new Set),ab({projectId:a}))},aA=aa?K.find(a=>a.id===aa.projectId):null,aB=new Set(aA?.agents.map(a=>a.agent_id)??[]),aC=aa?g.filter(a=>!aB.has(a.id)):[],aD=a.length>0,aE=!!G,aF=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),aG=new Map(a.map(a=>[a.id,a])),aH=K.filter(a=>!a.is_default),aI=aF.filter(a=>!aH.some(b=>b.thread_ids?.includes(a.id))),aJ=(0,c.useCallback)(a=>U?.(a)??`/projects/${a.slug}`,[U]);!function({focusTarget:a,shouldFocus:b}){(0,c.useEffect)(()=>{if(!b||"u"<typeof document)return;let c=a.current;if(!c||c instanceof HTMLButtonElement&&c.disabled)return;let d=document.activeElement;if(!(d&&(c===d||c.contains(d))))try{c.focus({preventScroll:!0})}catch{c.focus()}},[a,b])}({focusTarget:Z,shouldFocus:aE&&!(w&&!aD||H&&aD)&&!aD&&!x});let aK=()=>{am({title:"Create discussion",placeholder:"Discussion title",defaultValue:"",onSubmit:a=>void z({title:a})})};return aE?(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar","aria-label":"Workspace sidebar","aria-busy":w?"true":void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand-content flex items-center gap-2 px-1",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-icon","aria-hidden":"true",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})}),(0,b.jsx)("span",{className:"workspace-sidebar__brand-title",children:"Workspace"})]}),I&&(0,b.jsx)("button",{type:"button",onClick:I,"aria-label":"Hide discussions",title:"Hide discussions",className:"ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,b.jsx)(k,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[J&&(0,b.jsx)("div",{className:"px-3 pt-2 pb-1",children:(0,b.jsxs)("button",{type:"button",onClick:J,className:"flex h-8 w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 text-xs text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] hover:text-[var(--app-shell-muted)]",children:[(0,b.jsx)(p.Search,{className:"h-3.5 w-3.5 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Search..."}),(0,b.jsx)("kbd",{className:"ml-auto rounded border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1 py-0.5 font-sans text-[10px] font-medium text-[var(--app-shell-soft-text)]",children:"⌘K"})]})}),(0,b.jsx)("nav",{className:"workspace-sidebar__section",style:{gap:0},children:(0,b.jsxs)(s.default,{href:"/agents",className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(h,{size:14,className:"flex-shrink-0"}),"Manage Agents"]})}),(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__section-header group/projects-header",children:[(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Projects"}),(0,b.jsx)("div",{className:"workspace-sidebar__header-actions",children:(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/projects-header:opacity-100",onClick:()=>{ak.resetForm(),aj(null),ah({})},"aria-label":"Create project",title:"Create project",children:(0,b.jsx)(o.Plus,{size:14})})})]}),aH.map(a=>{let c=$.has(a.id),h=aF.filter(b=>a.thread_ids?.includes(b.id)),k=a.id===V,p=a.thread_ids?.find(a=>aG.has(a))??a.thread_ids?.[0]??h[0]?.id??null,r=k&&"thread"===W&&p===v,u=k&&"board"===W,w=k&&"knowledge"===W;return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item",children:[(0,b.jsx)("button",{type:"button",className:"inline-flex items-center justify-center rounded-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>{var b;return b=a.id,void _(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},"aria-label":c?`Collapse ${a.name}`:`Expand ${a.name}`,title:c?"Collapse project":"Expand project",children:c?(0,b.jsx)(d.ChevronDown,{size:14,className:"flex-shrink-0"}):(0,b.jsx)(e.ChevronRight,{size:14,className:"flex-shrink-0"})}),(0,b.jsx)(i,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:a.name})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-actions",children:[(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action",onClick:()=>void ay(a.id),"aria-label":`Open project settings for ${a.name}`,title:"Project settings",children:(0,b.jsx)(l.Pencil,{size:12})}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action workspace-sidebar__workspace-action--delete",onClick:()=>{var b;let c;return b=a.id,c=K.find(a=>a.id===b),void ap({title:"Delete project",message:`Delete "${c?.name??"project"}"? Its agents will move to the Default project.`,onConfirm:()=>void N?.(b)})},"aria-label":`Delete project ${a.name}`,title:`Delete project ${a.name}`,children:(0,b.jsx)(q.Trash2,{size:12})})]})]}),c&&(0,b.jsxs)("div",{className:"ml-4 my-1 flex flex-col gap-0.5 border-l border-[var(--app-shell-border)] pl-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:p?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${r?"workspace-sidebar__nav-item--active":""}`,onClick:()=>y(p),"aria-current":r?"page":void 0,children:[(0,b.jsx)(f.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Discussion"})]}):(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item",onClick:aK,children:[(0,b.jsx)(f.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Discussion"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(s.default,{href:aJ(a),className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(n,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Board"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(s.default,{href:`/projects/${a.slug}/knowledge`,className:`workspace-sidebar__nav-item ${w?"workspace-sidebar__nav-item--active":""}`,"aria-current":w?"page":void 0,children:[(0,b.jsx)(m.BrainCircuit,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Knowledge"})]})}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/repos-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Repos"}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>au({projectId:a.id,projectName:a.name,repoId:null,name:"",path:"",gitUrl:"",notes:"",generatedKnowledge:[],isLoadingKnowledge:!1,isSaving:!1,error:null}),"aria-label":"Add repo",title:"Add repo",children:(0,b.jsx)(o.Plus,{size:12})})]}),a.repos.length>0?a.repos.map(c=>(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group/repo flex items-center",children:[(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item min-w-0 flex-1 text-left",onClick:()=>au({projectId:a.id,projectName:a.name,repoId:c.id,name:c.name,path:c.path||"",gitUrl:c.git_url||"",notes:c.notes||"",generatedKnowledge:[],isLoadingKnowledge:!0,isSaving:!1,error:null}),children:[(0,b.jsx)(j.FolderGit2,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)] ml-2"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:c.name})]}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 group-hover/repo:opacity-100 transition-opacity flex-shrink-0 text-[var(--muted-foreground)] hover:text-red-400",onClick:async b=>{b.stopPropagation();let d=a.repos.filter(a=>a.id!==c.id).map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}));await M?.(a.id,{repos:d})},"aria-label":"Delete repo",title:"Delete repo",children:(0,b.jsx)(q.Trash2,{size:12})})]},`${a.id}:${c.name}:${c.path??""}`)):(0,b.jsx)("p",{className:"px-3 py-1 text-[11px] text-[var(--muted-foreground)]",children:"No repos"})]}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/agents-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Agents"}),a.agents.length>0&&(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>az(a.id),"aria-label":"Add agents",title:"Add agents",children:(0,b.jsx)(o.Plus,{size:12})})]}),a.agents.length>0?(0,b.jsx)(b.Fragment,{children:a.agents.map((c,d)=>{let e=g.find(a=>a.id===c.agent_id),f=av?.projectId===a.id&&av?.agentId===c.agent_id,h=av?.projectId===a.id&&av?.overIndex===d&&!f;return(0,b.jsx)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.effectAllowed="move",aw({projectId:a.id,agentId:c.agent_id,overIndex:d})},onDragOver:b=>{b.preventDefault(),av&&av.projectId===a.id&&aw(a=>a?{...a,overIndex:d}:null)},onDragEnd:()=>{if(av&&av.projectId===a.id&&R){let b=a.agents.map(a=>a.agent_id),c=b.indexOf(av.agentId),d=av.overIndex;if(-1!==c&&c!==d){let e=[...b],[f]=e.splice(c,1);e.splice(d,0,f),R(a.id,e)}}aw(null)},className:`group/agent flex items-center ${h?"border-t-2 border-[var(--border)]":"border-t-2 border-transparent"} ${f?"opacity-40":""}`,children:(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item flex-1 min-w-0 !py-1",onClick:()=>ar(c.agent_id),children:[(0,b.jsx)("span",{className:`cursor-grab text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] flex-shrink-0 mr-0.5 transition-opacity ${0===d?"opacity-100":"opacity-0 group-hover/agent:opacity-100"}`,title:"Drag to reorder",children:"⠿"}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(c.agent_id,16,e?.color),alt:"",className:"w-4 h-4 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:e?.name??c.agent_id}),0===d&&(0,b.jsx)("span",{className:"ml-auto text-[9px] text-[var(--muted-foreground)] font-medium flex-shrink-0",title:"Default responder (top agent responds first)",children:"DEFAULT"})]})},c.agent_id)})}):(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 px-3 py-1 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>az(a.id),children:[(0,b.jsx)(o.Plus,{size:10}),(0,b.jsx)("span",{children:"Add agents"})]})]})]})]},a.id)}),aI.length>0&&(0,b.jsxs)("div",{className:"pt-3",children:[(0,b.jsx)("p",{className:"px-1 py-1 text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Unassigned Threads"}),aI.map(a=>{let c=a.id===v,d=a.title?.trim()||"Untitled thread";return(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item group",children:(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item ${c?"workspace-sidebar__nav-item--active workspace-sidebar__workspace-nav-item--active":""}`,onClick:()=>y(a.id),"aria-current":c?"page":void 0,children:[(0,b.jsx)(f.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:d})]})},a.id)})]})]})]}),(0,b.jsx)("div",{className:"mt-auto px-3 pb-3",children:(0,b.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:[(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})}),at&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{at.isSaving||au(null)},children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:at.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:at.repoId?at.name||"Repository":"Add Repository"})]}),(0,b.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{at.isSaving||au(null)},"aria-label":"Close repo details",disabled:at.isSaving,children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:at.name,onChange:a=>au(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:at.isSaving})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsx)("input",{value:at.path,onChange:a=>au(b=>b?{...b,path:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:at.isSaving})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Repo Notes"}),(0,b.jsx)("textarea",{value:at.notes,onChange:a=>au(b=>b?{...b,notes:a.target.value,error:null}:b),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:at.isSaving,placeholder:"Repo-specific rules, notes, conventions, deployment constraints..."})]}),at.repoId?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Repo Note"}),at.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading repo note…"}):at.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:at.generatedKnowledge.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,b.jsx)("div",{children:a.content}),a.created_at?(0,b.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(a.created_at).toLocaleString()}):null]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No repo note yet."})]}):null,at.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:at.error}):null,(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,b.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>au(null),disabled:at.isSaving,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:at.isSaving||!M,onClick:async()=>{let a=K.find(a=>a.id===at.projectId);if(!a)return void au(a=>a?{...a,error:"Project not found."}:a);let b=at.name.trim(),c=at.path.trim();if(!b)return void au(a=>a?{...a,error:"Repo name is required."}:a);if(!c)return void au(a=>a?{...a,error:"Repo path is required."}:a);au(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=at.repoId?a.repos.map(a=>a.id===at.repoId?{id:a.id,name:b,path:c,git_url:at.gitUrl.trim()||void 0,notes:at.notes.trim()||void 0}:{id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}):[...a.repos.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes})),{name:b,path:c,git_url:at.gitUrl.trim()||void 0,notes:at.notes.trim()||void 0}];await M?.(a.id,{repos:d}),au(null)}catch(a){au(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save repo details."}:b)}},children:at.isSaving?"Saving...":at.repoId?"Save":"Add Repo"})]})]})]})}),aa&&!ae&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ab(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",aA?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ab(null),children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>af(!0),children:[(0,b.jsx)(o.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===aC.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):aC.map(a=>{let c=ac.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ad(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${c?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:a.model})]})]},a.id)})]}),aC.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ab(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===ac.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of ac)O?.(aa.projectId,a);ab(null)},children:["Add ",ac.size>0?`(${ac.size})`:""]})]})]})}),ae&&(0,b.jsx)(t.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[]},submitLabel:"Create & Add",projects:K?.filter(a=>!a.is_default).map(b=>{let c=(b.thread_ids??[]).map(b=>a.find(a=>a.id===b)?.title?.trim()).filter(Boolean).join(", ")||"No discussion";return{id:b.id,name:b.name,label:`${c} › ${b.name}`}}),initialProjectIds:aa?[aa.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[g.length%c.length],e=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),f=b?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.identity?{identity:a.identity}:{},skills:a.skills??[],...f?{projectId:f}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():e;for(let a of(b??[]).slice(1))O?.(a,c);af(!1),ab(null)}},onCancel:()=>{af(!1)}}),al&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>am(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:al.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>am(null),children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:a=>{a.preventDefault();let b=new FormData(a.currentTarget),c=b.get("value")?.trim();c&&(al.onSubmit(c),am(null))},children:[(0,b.jsx)("input",{ref:an,name:"value",type:"text",defaultValue:al.defaultValue,placeholder:al.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>am(null),children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:al.defaultValue?"Save":"Create"})]})]})]})}),ao&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ap(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:ao.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ap(null),children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:ao.message}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ap(null),children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{ao.onConfirm(),ap(null)},children:"Delete"})]})]})]})}),(ag||ai)&&(0,b.jsx)(u.default,{isOpen:!0,onClose:()=>{ak.resetForm(),ah(null),aj(null)},onSubmit:()=>void ax(),editingProject:ai,form:ak.form,repos:ak.repos,isSubmitting:ak.isSubmitting,formError:ak.formError,onFieldChange:(a,b)=>ak.setForm(c=>({...c,[a]:b})),onRepoChange:ak.handleRepoChange,onAddRepo:ak.addRepo,onRemoveRepo:ak.removeRepo}),as&&(X=K.filter(a=>a.agents.some(a=>a.agent_id===as.id)),Y=K.filter(a=>!a.agents.some(a=>a.agent_id===as.id)),(0,b.jsx)(t.AgentForm,{title:"Edit agent",initial:{name:as.name,provider:as.provider,model:as.model||"",identity:as.identity||"",color:as.color,skills:as.skills||[]},agentId:as.id,submitLabel:"Save",projectMemberships:{current:X.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:Y.map(a=>({id:a.id,name:a.name}))},onAddToProject:O?a=>O(a,as.id):void 0,onRemoveFromProject:P?a=>P(a,as.id):void 0,onSubmit:async a=>{S&&await S({...as,name:a.name,provider:a.provider,model:a.model,color:a.color??as.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[]}),ar(null)},onCancel:()=>ar(null)}))]}):(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand",children:(0,b.jsx)("button",{type:"button",onClick:I,className:"workspace-sidebar__brand-icon border-none outline-none cursor-pointer","aria-label":"Show discussions",title:"Show discussions",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})})}),(0,b.jsx)("div",{className:"mt-auto p-2",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",title:"Join Discord",children:(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})}a.s(["WorkspaceSidebar",()=>v],86976);let w={threadSidebarVisible:!1};function x(){return({...w}).threadSidebarVisible}function y(a){}a.s(["loadWorkspaceSidebarVisible",()=>x,"persistWorkspaceSidebarVisible",()=>y],55672)}];
2
2
 
3
3
  //# sourceMappingURL=components_thread_WorkspaceSidebar_tsx_e660301b._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[73570,a=>{"use strict";let b=(0,a.i(60137).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],73570)},69520,a=>{"use strict";let b=(0,a.i(60137).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",()=>b],69520)},41710,a=>{"use strict";let b=(0,a.i(60137).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",()=>b],41710)},25015,a=>{"use strict";let b=(0,a.i(60137).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>b],25015)}];
2
+
3
+ //# sourceMappingURL=node_modules_lucide-react_dist_esm_icons_bf855424._.js.map
@@ -19,6 +19,7 @@
19
19
  "/api/graphs/[graphId]/nodes/[nodeId]": {},
20
20
  "/api/history": {},
21
21
  "/api/history/status": {},
22
+ "/api/knowledge-notes": {},
22
23
  "/api/logs": {},
23
24
  "/api/logs/stream": {},
24
25
  "/api/migrate/teams-to-projects": {},