@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
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,78583,e=>{"use strict";let t=(0,e.i(75254).default)("file-text",[["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"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],78583)},14683,e=>{"use strict";let t=(0,e.i(75254).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],14683)},78894,e=>{"use strict";let t=(0,e.i(75254).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"}]]);e.s(["AlertTriangle",()=>t],78894)},95468,e=>{"use strict";let t=(0,e.i(75254).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],95468)},73375,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>t],73375)},63209,e=>{"use strict";let t=(0,e.i(75254).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],63209)},73884,e=>{"use strict";let t=(0,e.i(75254).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],73884)},2651,e=>{"use strict";let t={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,hasCompletedFirstRun:!1,fileIgnorePatterns:[]};function r(e){return e&&"object"==typeof e?{threadSidebarVisible:"boolean"==typeof e.threadSidebarVisible?e.threadSidebarVisible:t.threadSidebarVisible,workspaceRoots:Array.isArray(e.workspaceRoots)?e.workspaceRoots.filter(e=>"string"==typeof e):t.workspaceRoots,homeSearchConsent:"boolean"==typeof e.homeSearchConsent?e.homeSearchConsent:t.homeSearchConsent,hasCompletedFirstRun:"boolean"==typeof e.hasCompletedFirstRun?e.hasCompletedFirstRun:t.hasCompletedFirstRun,fileIgnorePatterns:Array.isArray(e.fileIgnorePatterns)?e.fileIgnorePatterns.filter(e=>"string"==typeof e):t.fileIgnorePatterns}:t}let a="/api/userPreferences";function s(e){return e.json().then(e=>e&&"object"==typeof e?r(e.preferences??e):r(e)).catch(()=>r(null))}function n(e){return e.statusText||`Failed to reach ${a} (${e.status})`}async function i(){let e=await fetch(a,{cache:"no-store"});if(!e.ok)throw Error(n(e));return s(e)}async function l(e){let t=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:e})});if(!t.ok)throw Error(n(t));return s(t)}e.s(["fetchUserPreferences",()=>i,"updateUserPreferences",()=>l],2651)},29415,e=>{"use strict";function t(e){return e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim()}e.s(["stripMarkers",()=>t])},86311,e=>{"use strict";let t=(0,e.i(75254).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",()=>t],86311)},39312,e=>{"use strict";let t=(0,e.i(75254).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],39312)},16715,e=>{"use strict";let t=(0,e.i(75254).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"}]]);e.s(["RefreshCw",()=>t],16715)},3116,e=>{"use strict";let t=(0,e.i(75254).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],3116)},40160,e=>{"use strict";let t=(0,e.i(75254).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",()=>t],40160)},61911,e=>{"use strict";let t=(0,e.i(75254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],61911)},50030,e=>{"use strict";var t=e.i(71645);let r=new Set(["spawning","running"]);function a(e,a){let s=a?.intervalMs??1500,n=a?.idleIntervalMs??1e4,[i,l]=(0,t.useState)(new Set),[c,o]=(0,t.useState)([]),[u,d]=(0,t.useState)({}),[h,p]=(0,t.useState)([]),f=(0,t.useRef)(e);f.current=e;let y=(0,t.useRef)(a?.messages??[]);y.current=a?.messages??[];let g=(0,t.useRef)(a?.setMessages);g.current=a?.setMessages;let k=(0,t.useRef)(0);(0,t.useEffect)(()=>{let e=a?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>k.current&&(k.current=t)}},[a?.messages]);let m=(0,t.useCallback)(async()=>{let e=f.current;if(!e){l(new Set),o([]),d({}),p([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){l(new Set),o([]),d({}),p([]);return}try{let s=e.workspaceId||e.threadId,n=s?`/api/history?threadId=${encodeURIComponent(s)}&since=${k.current}`:null,i=s?`/api/chat-runs?threadId=${encodeURIComponent(s)}&status=active&limit=20`:null,c=[fetch(t)];n&&c.push(fetch(n)),i&&c.push(fetch(i));let[u,h,m]=await Promise.all(c),I=f.current;if(I?.threadId!==e.threadId||I?.workspaceId!==e.workspaceId)return;if(u.ok){let e=await u.json();o(e);let t=new Set(e.filter(e=>r.has(e.state)).map(e=>e.agentId));l(t);let a={};for(let t of e){if(!r.has(t.state))continue;let e=y.current.find(e=>e.id===t.sinceMessageId),s=e?.rootMessageId??t.sinceMessageId;a[t.agentId]={content:"",rootMessageId:s}}d(a)}if(m?.ok){var a;let e=(a=await m.json(),Array.isArray(a)?a.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,s="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:s,status:a}:null}).filter(e=>!!e):[]);p(e)}if(h?.ok&&g.current){let e=await h.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>k.current&&(k.current=t),g.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),s=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?s:[...s,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]),I=e?.threadId||e?.workspaceId||null,w=h.some(e=>"queued"===e.status||"running"===e.status),M=c.some(e=>r.has(e.state)),b=w||M?s:n;return(0,t.useEffect)(()=>{if(!I){l(new Set),o([]),d({}),p([]);return}m();let e=setInterval(m,b);return()=>clearInterval(e)},[I,b,m]),{activeAgents:i,processes:c,streaming:u,chatRuns:h,poll:m}}e.s(["useProcessPolling",()=>a])},4142,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(30426);function s({params:e}){let{slug:s,threadId:n}=(0,r.use)(e);return(0,t.jsx)(a.ChatContainer,{projectSlug:s,initialThreadId:n,showSidebar:!1})}e.s(["default",()=>s])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,78583,e=>{"use strict";let t=(0,e.i(75254).default)("file-text",[["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"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],78583)},14683,e=>{"use strict";let t=(0,e.i(75254).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],14683)},78894,e=>{"use strict";let t=(0,e.i(75254).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"}]]);e.s(["AlertTriangle",()=>t],78894)},95468,e=>{"use strict";let t=(0,e.i(75254).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],95468)},73375,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>t],73375)},63209,e=>{"use strict";let t=(0,e.i(75254).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],63209)},73884,e=>{"use strict";let t=(0,e.i(75254).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],73884)},2651,e=>{"use strict";let t={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,hasCompletedFirstRun:!1,fileIgnorePatterns:[]};function r(e){return e&&"object"==typeof e?{threadSidebarVisible:"boolean"==typeof e.threadSidebarVisible?e.threadSidebarVisible:t.threadSidebarVisible,workspaceRoots:Array.isArray(e.workspaceRoots)?e.workspaceRoots.filter(e=>"string"==typeof e):t.workspaceRoots,homeSearchConsent:"boolean"==typeof e.homeSearchConsent?e.homeSearchConsent:t.homeSearchConsent,hasCompletedFirstRun:"boolean"==typeof e.hasCompletedFirstRun?e.hasCompletedFirstRun:t.hasCompletedFirstRun,fileIgnorePatterns:Array.isArray(e.fileIgnorePatterns)?e.fileIgnorePatterns.filter(e=>"string"==typeof e):t.fileIgnorePatterns}:t}let a="/api/userPreferences";function s(e){return e.json().then(e=>e&&"object"==typeof e?r(e.preferences??e):r(e)).catch(()=>r(null))}function n(e){return e.statusText||`Failed to reach ${a} (${e.status})`}async function i(){let e=await fetch(a,{cache:"no-store"});if(!e.ok)throw Error(n(e));return s(e)}async function l(e){let t=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:e})});if(!t.ok)throw Error(n(t));return s(t)}e.s(["fetchUserPreferences",()=>i,"updateUserPreferences",()=>l],2651)},29415,e=>{"use strict";function t(e){return e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim()}e.s(["stripMarkers",()=>t])},86311,e=>{"use strict";let t=(0,e.i(75254).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",()=>t],86311)},39312,e=>{"use strict";let t=(0,e.i(75254).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],39312)},16715,e=>{"use strict";let t=(0,e.i(75254).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"}]]);e.s(["RefreshCw",()=>t],16715)},3116,e=>{"use strict";let t=(0,e.i(75254).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],3116)},40160,e=>{"use strict";let t=(0,e.i(75254).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",()=>t],40160)},61911,e=>{"use strict";let t=(0,e.i(75254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],61911)},50030,e=>{"use strict";var t=e.i(71645);let r=new Set(["spawning","running"]);function a(e,a){let s=a?.intervalMs??1500,n=a?.idleIntervalMs??1e4,[i,l]=(0,t.useState)(new Set),[c,o]=(0,t.useState)([]),[d,u]=(0,t.useState)({}),[h,p]=(0,t.useState)([]),f=(0,t.useRef)(e);f.current=e;let y=(0,t.useRef)(a?.messages??[]);y.current=a?.messages??[];let m=(0,t.useRef)(a?.setMessages);m.current=a?.setMessages;let g=(0,t.useRef)(0);(0,t.useEffect)(()=>{let e=a?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t)}},[a?.messages]);let k=(0,t.useCallback)(async()=>{let e=f.current;if(!e){l(new Set),o([]),u({}),p([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){l(new Set),o([]),u({}),p([]);return}try{let s=e.workspaceId||e.threadId,n=s?`/api/history?threadId=${encodeURIComponent(s)}&since=${g.current}`:null,i=s?`/api/chat-runs?threadId=${encodeURIComponent(s)}&limit=20`:null,c=[fetch(t)];n&&c.push(fetch(n)),i&&c.push(fetch(i));let[d,h,k]=await Promise.all(c),I=f.current;if(I?.threadId!==e.threadId||I?.workspaceId!==e.workspaceId)return;if(d.ok){let e=await d.json();o(e);let t=new Set(e.filter(e=>r.has(e.state)).map(e=>e.agentId));l(t);let a={};for(let t of e){if(!r.has(t.state))continue;let e=y.current.find(e=>e.id===t.sinceMessageId),s=e?.rootMessageId??t.sinceMessageId;a[t.agentId]={content:"",rootMessageId:s}}u(a)}if(k?.ok){var a;let e=(a=await k.json(),Array.isArray(a)?a.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,s="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:s,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);p(e)}if(h?.ok&&m.current){let e=await h.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t),m.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),s=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?s:[...s,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]),I=e?.threadId||e?.workspaceId||null,w=h.some(e=>"queued"===e.status||"running"===e.status),M=c.some(e=>r.has(e.state)),b=w||M?s:n;return(0,t.useEffect)(()=>{if(!I){l(new Set),o([]),u({}),p([]);return}k();let e=setInterval(k,b);return()=>clearInterval(e)},[I,b,k]),{activeAgents:i,processes:c,streaming:d,chatRuns:h,poll:k}}e.s(["useProcessPolling",()=>a])},4142,e=>{"use strict";var t=e.i(18050),r=e.i(71645),a=e.i(30426);function s({params:e}){let{slug:s,threadId:n}=(0,r.use)(e);return(0,t.jsx)(a.ChatContainer,{projectSlug:s,initialThreadId:n,showSidebar:!1})}e.s(["default",()=>s])}]);
@@ -5,4 +5,4 @@ ${e.content}
5
5
  </file>`).join("\n\n")+"\n\n";return{fileContextBlocks:t,contextPrefix:a}}var eE=e.i(10552);let eD=eE.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let a="parallel"===e.attrs.mode;return["span",(0,eE.mergeAttributes)(t,{"data-participant-mention":"","data-id":e.attrs.id,"data-mode":e.attrs.mode,class:a?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${a?"@@":"@"}${e.attrs.name}`]}}),eA=eE.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,eE.mergeAttributes)(t,{"data-project-mention":"","data-id":e.attrs.id,"data-slug":e.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${e.attrs.name}`]}),eR=eE.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let a=e.attrs.relativePath||e.attrs.path;return["span",(0,eE.mergeAttributes)(t,{"data-file-mention":"","data-path":e.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${a}`]}}),eO=eE.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,eE.mergeAttributes)(t,{"data-thread-mention":"","data-thread-id":e.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${e.attrs.title}`]});function ez(e){if(!e.content)return"";let t=[];for(let a of e.content)a.type,t.push(function(e){if(!e.content)return"";let t="";for(let a of e.content)switch(a.type){case"text":t+=a.text??"";break;case"participantMention":{let e=a.attrs??{},r="parallel"===e.mode?"@@":"@";t+=`${r}${e.name}`;break}case"projectMention":{let e=a.attrs??{},r=String(e.slug??"").trim();r?t+=`@~project:${r}`:e.name&&(t+=`@${e.name}`);break}case"fileMention":{let e=a.attrs??{},r=e.relativePath||e.path;t+=`@${r}`;break}case"threadMention":{let e=((a.attrs??{}).threadId??"").slice(0,8);t+=`@#${e}`;break}default:"hardBreak"===a.type&&(t+="\n")}return t}(a));return t.join("\n")}function eU(e){let{state:t}=e,{$from:a}=t.selection,r=a.depth,s=-1;for(let e=r;e>=0;e--)if("paragraph"===a.node(e).type.name){s=e;break}if(-1===s)return null;let l=a.node(s),n=a.start(s),i=a.pos-n,o="",d=0,c=!1;return l.forEach((e,t)=>{let a=t+e.nodeSize;if(e.isText){let r=e.text??"";!c&&i>=t&&i<=a&&(d=o.length+(i-t),c=!0),o+=r}else if(e.isAtom){let r=eL(e);!c&&i>=t&&i<=a&&(d=o.length+r.length,c=!0),o+=r}}),c||(d=o.length),{text:o,cursorPos:d,blockStart:n}}function eL(e){switch(e.type.name){case"participantMention":{let t="parallel"===e.attrs.mode?"@@":"@";return`${t}${e.attrs.name}`}case"fileMention":{let t=e.attrs.relativePath||e.attrs.path;return`@${t}`}case"threadMention":{let t=(e.attrs.threadId??"").slice(0,8);return`@#${t}`}default:return""}}function e_(e,t,a,r){let{state:s}=e,l=s.doc.resolve(t),n=l.depth,i=null,o=t;for(let e=n;e>=0;e--){let t=l.node(e);if("paragraph"===t.type.name){i=t,o=l.start(e);break}}i||(i=s.doc.resolve(t).parent,o=t);let d=0,c=null,u=null;return(i.forEach((e,t)=>{let s=o+t,l=e.nodeSize;if(e.isText){let t=e.text??"",l=d+t.length;null===c&&a>=d&&a<=l&&(c=s+(a-d)),null===u&&r>=d&&r<=l&&(u=s+(r-d)),d=l}else if(e.isAtom){let t=eL(e),n=d+t.length;null===c&&a>=d&&a<=n&&(c=s),null===u&&r>=d&&r<=n&&(u=s+l),d=n}}),null===c&&a>=d&&(c=o+i.content.size),null===u&&r>=d&&(u=o+i.content.size),null===c||null===u)?null:{from:c,to:u}}let eF=(0,b.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);var eq=e.i(61911);function eW({isOpen:e,suggestions:r,activeIndex:s,listboxId:l,optionIdPrefix:n,onSelect:i}){let o=(0,a.useRef)([]);if((0,a.useEffect)(()=>{e&&o.current[s]?.scrollIntoView({block:"nearest"})},[s,e]),!e||0===r.length)return null;let d=new Set;return(0,t.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,t.jsx)("div",{role:"listbox",id:l,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,a)=>{let r=a===s,l="project-group"===e.kind?`project-group-${e.project.id}`:"project"===e.kind?`project-${e.project.id}`:e.participant.id,c=e.group,u=null;if(c&&!d.has(c)&&(d.add(c),u=(0,t.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:c})),"project-group"===e.kind)return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${l}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)(eq.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:e.project.name}),(0,t.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[e.project.agents.length," agent",1!==e.project.agents.length?"s":""]})]})})]},l);if("project"===e.kind)return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${l}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)(eF,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:e.project.name}),(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.project.slug})]})})]},l);let p=e.participant;return(0,t.jsxs)("div",{children:[u,(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${p.id}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${c?" pl-6":""}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:p.color},"aria-hidden":!0}),(0,t.jsx)("span",{className:"font-medium",children:p.name}),"all"===p.id?(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):p.model&&(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:p.model})]})})]},l)})})})}function eB({isOpen:e,commands:r,activeIndex:s,listboxId:l,optionIdPrefix:n,onSelect:i}){let o=(0,a.useRef)([]);return((0,a.useEffect)(()=>{e&&o.current[s]?.scrollIntoView({block:"nearest"})},[s,e]),e&&0!==r.length)?(0,t.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,t.jsx)("div",{role:"listbox",id:l,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,a)=>{let r=a===s;return(0,t.jsx)("button",{type:"button",role:"option",id:`${n}-${e.name.slice(1)}`,"aria-selected":r,ref:e=>{o.current[a]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>e.preventDefault(),onClick:()=>i(e),children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium font-mono",children:e.name}),e.aliases&&e.aliases.length>0&&(0,t.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",e.aliases.join(", "),")"]}),(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.description})]})},e.name)})})}):null}var eH=e.i(63209);let eJ=(0,b.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var eK=e.i(27025);function eV({suggestion:e,isActive:a,optionId:r,onSelect:s,onAttachContents:l,itemRef:n}){let i="folder"===e.type,o="contents"===e.attachMode,d=function(e){if(!e)return null;let t=Math.floor((Date.now()-e)/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t}d ago`:t<30?`${Math.floor(t/7)}w ago`:t<365?`${Math.floor(t/30)}mo ago`:`${Math.floor(t/365)}y ago`}(e.modifiedAt),c=e.relativePath??e.path;return(0,t.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${a?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,t.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:i?a?(0,t.jsx)(O.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,t.jsx)(eK.Folder,{className:"h-4 w-4 text-amber-400"}):(0,t.jsx)(eJ,{className:"h-4 w-4"})}),(0,t.jsxs)("button",{type:"button",role:"option",id:r,"aria-selected":a,ref:n,className:"min-w-0 flex-1 text-left",onMouseDown:e=>e.preventDefault(),onClick:()=>s(e),tabIndex:-1,children:[(0,t.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,t.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:c}),d&&(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:d})]}),i&&e.manifest&&(0,t.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[e.manifest.childCount," items ·"," ",e.manifest.sizeSummary,o?(0,t.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,t.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),i&&!o&&(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${c}`,onMouseDown:e=>e.preventDefault(),onClick:()=>l(e),tabIndex:-1,children:"Attach contents"}),i&&o&&(0,t.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var eX=e.i(37452);function eY({isOpen:e,suggestions:r,activeIndex:s,isLoading:l,error:n,listboxId:i,optionIdPrefix:o,onSelect:d,onAttachContents:c}){let u=(0,a.useRef)([]),p=(0,a.useRef)(null),[m,h]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{e&&u.current[s]?.scrollIntoView({block:"nearest"})},[s,e]),(0,a.useEffect)(()=>{e&&p.current&&h(p.current.getBoundingClientRect().top<280)},[e]),!e)return null;let f=r.length>0?`${o}-${s}`:void 0;return(0,t.jsx)("div",{ref:p,className:`${m?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${eX.default.popover}`,children:(0,t.jsxs)("div",{role:"listbox",id:i,"aria-label":"File suggestions","aria-activedescendant":f,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[n&&!l&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,t.jsx)(eH.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,t.jsx)("span",{children:n})]}),!n&&l&&0===r.length&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,t.jsx)(R,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,t.jsx)("span",{children:"Searching…"})]}),!n&&!l&&0===r.length&&(0,t.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!n&&l&&r.length>0&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,t.jsx)(R,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,t.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),r.length>0&&r.map((e,a)=>(0,t.jsx)(eV,{suggestion:e,isActive:a===s,optionId:`${o}-${a}`,onSelect:d,onAttachContents:c,itemRef:e=>{u.current[a]=e}},e.path))]})})}function eG({isOpen:e,suggestions:a,activeIndex:r,listboxId:s,optionIdPrefix:l,onSelect:n}){return e&&0!==a.length?(0,t.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:s,children:[(0,t.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,t.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:a.map((e,a)=>{let s=a===r;return(0,t.jsxs)("button",{role:"option",id:`${l}-${a}`,"aria-selected":s,onClick:()=>n(e),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${s?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,t.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${s?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,t.jsx)(Y.MessageSquare,{size:14,strokeWidth:2.5})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:`text-sm font-semibold truncate ${s?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:e.title}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,t.jsxs)("span",{className:`text-xs ${s?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[e.replies.length," replies"]}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,t.jsx)(ee.Clock,{size:10}),function(e){if(!e)return"";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m`;let r=Math.floor(a/60);return r<24?`${r}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(e.lastActivityAt)]})]})]})]},e.rootMessageId)})})]}):null}var eZ=e.i(16715);let eQ=(0,b.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);function e0({attachments:e,onRemove:a,onRetry:r}){return 0===e.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:e.map(e=>{var s;let l=e.mimeType.startsWith("image/"),n="failed"===e.status,i="uploading"===e.status;return(0,t.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${n?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[l&&e.previewUrl?(0,t.jsx)("img",{src:e.previewUrl,alt:e.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,t.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:l?(0,t.jsx)(eQ,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,t.jsx)(f.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,t.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,t.jsx)("div",{className:"truncate font-medium",children:e.filename}),n&&e.error?(0,t.jsx)("div",{className:"truncate text-[10px] text-red-500",children:e.error}):(0,t.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(s=e.size)<1024?`${s}B`:s<1048576?`${(s/1024).toFixed(0)}KB`:`${(s/1048576).toFixed(1)}MB`})]}),i&&(0,t.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${e.progress}%`}})}),(0,t.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[n&&(0,t.jsx)("button",{type:"button",onClick:()=>r(e.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,t.jsx)(eZ.RefreshCw,{className:"w-3 h-3"})}),(0,t.jsx)("button",{type:"button",onClick:()=>a(e.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,t.jsx)(N.X,{className:"w-3 h-3"})})]})]},e.id)})})}function e1({onDrop:e,children:r}){let[s,l]=(0,a.useState)(!1),n={current:0},i=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),n.current++,e.dataTransfer.types.includes("Files")&&l(!0)},[]),o=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),d=(0,a.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),n.current--,0===n.current&&l(!1)},[]),c=(0,a.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),n.current=0,l(!1),t.dataTransfer.files.length>0&&e(t.dataTransfer.files)},[e]);return(0,t.jsxs)("div",{className:"relative",onDragEnter:i,onDragOver:o,onDragLeave:d,onDrop:c,children:[r,s&&(0,t.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,t.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}let e2=(0,b.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);function e5(e,t,a,r,s){if(!e)return;let l=e_(e,t,a,r);l&&e.chain().focus().deleteRange(l).insertContent(s).insertContent(" ").run()}function e3({onSend:e,onStop:r,loading:s,activityStatus:l,participants:n,projects:i=[],projectGroups:o=[],messages:d=[],commands:c,placeholder:u="Message — @name to mention, /search, /summarize",workspaceRoots:p=[],onConfigureRoots:m,pendingThreadInsert:h,onClearPendingThread:f,autoMode:x=!1,onAutoModeChange:g}){let v=l??(s?"working":"ready"),b="ready"!==v,[j,y]=(0,a.useState)(null),w=(0,a.useRef)(null),k=(0,a.useRef)(!1),N=(0,a.useCallback)(()=>{w.current?.click()},[]),[C,I]=(0,a.useState)([]),S=function({participants:e,projectGroups:t=[],projects:r=[],maxSuggestions:s=6}){let[l,n]=(0,a.useState)(null),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)(!1),u=null!==l&&!d,p=l?.query??"",m=(0,a.useMemo)(()=>(function(e,t,a,r=[],s=[]){let l=t.toLowerCase(),n=new Map(e.map(e=>[e.id,e])),i=new Set;for(let e of r)for(let t of e.agents)i.add(t.agent_id);let o=[];for(let e of(null!==ek("all","all",l)&&o.push({kind:"agent",participant:ew,group:""}),r)){let t=ek(e.name.toLowerCase(),e.id.toLowerCase(),l),a=[];for(let t of e.agents){let e=n.get(t.agent_id);if(!e)continue;let r=ek(e.name.toLowerCase(),e.id.toLowerCase(),l);null!==r&&a.push({participant:e,score:r})}(null!==t||a.length>0)&&(null!==t&&o.push({kind:"project-group",project:e,group:e.name}),(null!==t&&l?e.agents.map(e=>n.get(e.agent_id)).filter(e=>!!e).map(e=>({participant:e,score:0})):a).sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:t})=>{o.push({kind:"agent",participant:t,group:e.name})}))}for(let e of s)null!==ek(e.name.toLowerCase(),e.slug.toLowerCase(),l)&&o.push({kind:"project",project:e,group:"Projects"});let d=[];for(let t of e){if(i.has(t.id))continue;let e=ek(t.name.toLowerCase(),t.id.toLowerCase(),l);null!==e&&d.push({participant:t,score:e})}return d.sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:e})=>{o.push({kind:"agent",participant:e,group:""})}),o.slice(0,a)})(e,p,s,t,r),[e,p,s,t,r]),h=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<0||t>e.length)return null;let a=t;for(;a>0&&!/\s/.test(e[a-1]);)a--;let r=e.slice(a,t);if(!r.startsWith("@")||r.startsWith("@@@")||r.startsWith("@#"))return null;let s=r.startsWith("@@"),l=r.slice(s?2:1);return ey.test(l)?{startIndex:a,endIndex:t,query:l.toLowerCase(),mode:s?"parallel":"sequential",isParallel:s}:null}(e,t);n(e=>((e?.startIndex!==a?.startIndex||e?.isParallel!==a?.isParallel||e?.query!==a?.query)&&o(0),a))},[]),f=(0,a.useCallback)((e,t)=>{d||h(e,t)},[d,h]),x=(0,a.useCallback)(e=>{if(!u||0===m.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),o(e=>e<m.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),o(e=>e>0?e-1:m.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),n(null),!0;default:return!1}},[u,m.length]),g=(0,a.useCallback)(e=>{if(!l)return null;let t="project-group"===e.kind||"project"===e.kind?e.project.name:e.participant.name,a=l.isParallel?"@@":"@";return{text:`${a}${t} `,startIndex:l.startIndex,endIndex:l.endIndex}},[l]),v=(0,a.useCallback)(()=>{n(null),o(0)},[]);return{isOpen:u,query:p,filteredSuggestions:m,activeIndex:i,token:l,isComposing:d,handleInput:f,handleKeyDown:x,selectSuggestion:g,close:v,startComposition:(0,a.useCallback)(()=>{c(!0)},[]),endComposition:(0,a.useCallback)((e,t)=>{c(!1),h(e,t)},[h])}}({participants:n,projectGroups:o,projects:i,maxSuggestions:8}),M=function({commands:e,maxSuggestions:t=6}){let[r,s]=(0,a.useState)(null),[l,n]=(0,a.useState)(0),i=null!==r,o=r?.query??"",d=(0,a.useMemo)(()=>{let a;return(a=o.toLowerCase())?e.filter(e=>!!e.name.slice(1).toLowerCase().startsWith(a)||(e.aliases?.some(e=>e.toLowerCase().startsWith(a))??!1)).slice(0,t):e.slice(0,t)},[e,o,t]),c=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<0||t>e.length||!e.startsWith("/"))return null;let a=e.slice(0,t);if(/\s/.test(a))return null;let r=a.slice(1);return eN.test(r)?{startIndex:0,endIndex:t,query:r.toLowerCase()}:null}(e,t);s(e=>(e?.query!==a?.query&&n(0),a))},[]),u=(0,a.useCallback)(e=>{if(!i||0===d.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),n(e=>e<d.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),n(e=>e>0?e-1:d.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),s(null),!0;default:return!1}},[i,d.length]),p=(0,a.useCallback)(e=>!!r&&(e.execute(),s(null),n(0),!0),[r]);return{isOpen:i,query:o,filteredCommands:d,activeIndex:l,token:r,handleInput:c,handleKeyDown:u,selectCommand:p,close:(0,a.useCallback)(()=>{s(null),n(0)},[])}}({commands:c,maxSuggestions:6}),T=function({maxSuggestions:e=8,debounceMs:t=150}={}){let[r,s]=(0,a.useState)(null),[l,n]=(0,a.useState)([]),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)(!1),[u,p]=(0,a.useState)(null),m=(0,a.useRef)(null),h=(0,a.useRef)(null),f=(0,a.useRef)(null),x=null!==r,g=(0,a.useCallback)(async(t,a)=>{m.current&&m.current.abort();let r=new AbortController;m.current=r,c(!0),p(null);try{let s=t.endsWith("/"),l=s?"*":t,i=new URLSearchParams({q:l,limit:String(e),includeFolders:"1"});if(s){let e="@~"===a?`${$.default.env.HOME??"~"}/${t.slice(0,-1)}`:`/${t.slice(0,-1)}`;i.set("root",e)}else"@~"===a&&i.set("root",$.default.env.HOME??"~");let d=await fetch(`/api/file-search?${i.toString()}`,{signal:r.signal});if(!d.ok){let e=await d.json().catch(()=>({}));throw Error(e.error??`HTTP ${d.status}`)}let c=await d.json();n(c.files.map(e=>({...e,attachMode:"folder"===e.type?"manifest":void 0}))),o(0)}catch(e){if("AbortError"===e.name)return;p(e.message??"Search failed"),n([])}finally{c(!1)}},[e]),v=(0,a.useCallback)((a,r)=>{if(null!==h.current&&clearTimeout(h.current),a!==f.current){if(a.length<3){m.current&&(m.current.abort(),m.current=null),f.current=a,c(!1),p(null),n(eS.slice(0,e).map(e=>({...e,attachMode:"manifest"}))),o(0);return}h.current=setTimeout(()=>{f.current=a,g(a,r)},t)}},[t,g,e]);(0,a.useEffect)(()=>()=>{null!==h.current&&clearTimeout(h.current),m.current&&m.current.abort()},[]);let b=(0,a.useCallback)((e,t)=>{let a=function(e,t){if(t<2||t>e.length)return null;let a=t;for(;a>0&&!/\s/.test(e[a-1]);)a--;let r=e.slice(a,t);if(!r.startsWith("@/")&&!r.startsWith("@~"))return null;let s=r.slice(0,2);return{startIndex:a,endIndex:t,query:r.slice(2),trigger:s}}(e,t);s(e=>((e?.startIndex!==a?.startIndex||e?.query!==a?.query||e?.trigger!==a?.trigger)&&null===a&&(null!==h.current&&clearTimeout(h.current),m.current&&(m.current.abort(),m.current=null),f.current=null,n([]),c(!1),p(null)),a)),a&&v(a.query,a.trigger)},[v]),j=(0,a.useCallback)(e=>{if(!x||0===l.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),o(e=>e<l.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),o(e=>e>0?e-1:l.length-1),!0;case"Enter":return e.preventDefault(),!0;case"Tab":return!0;case"Escape":return e.preventDefault(),s(null),n([]),!0;default:return!1}},[x,l.length]),y=(0,a.useCallback)(e=>{if(!r)return null;let t=e$(e.relativePath??e.path,r),a="folder"===e.type?"/":"",l=`@${t}${a} `;return s(null),n([]),{text:l,startIndex:r.startIndex,endIndex:r.endIndex}},[r]),w=(0,a.useCallback)(e=>{if(!r||"folder"!==e.type)return null;let t=e$(e.relativePath??e.path,r),a=t.startsWith("~/")?"@~":"@/",l=t.slice(1),n=`@${t}/`,i=r.startIndex+n.length,o=`${l}/`;return s({startIndex:r.startIndex,endIndex:i,query:o,trigger:a}),f.current=null,v(o,a),{text:n,startIndex:r.startIndex,endIndex:r.endIndex}},[r,v]),k=(0,a.useCallback)(e=>{n(t=>t.map(t=>t.path===e.path?{...t,attachMode:"contents"}:t))},[]);return{isOpen:x,token:r,suggestions:l,activeIndex:i,isLoading:d,error:u,handleInput:b,handleKeyDown:j,selectSuggestion:y,drillDown:w,close:(0,a.useCallback)(()=>{s(null),n([]),o(0)},[]),onAttachContents:k}}({maxSuggestions:8}),P=function({messages:e,maxSuggestions:t=5}){let[r,s]=(0,a.useState)(!1),[l,n]=(0,a.useState)(""),[i,o]=(0,a.useState)(0),[d,c]=(0,a.useState)([]),[u,p]=(0,a.useState)(null),m=(0,a.useRef)([]);(0,a.useEffect)(()=>{let t=e.filter(e=>!e.rootMessageId),a=new Map;e.forEach(e=>{if(e.rootMessageId){let t=a.get(e.rootMessageId)||[];t.push(e),a.set(e.rootMessageId,t)}}),m.current=t.map(e=>{let t=a.get(e.id)||[],r=[e,...t],s=Math.max(...r.map(e=>e.timestamp)),l=e.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",n=[...new Set(r.map(e=>e.participantId||"user"))];return{rootMessageId:e.id,title:l,rootMessage:e,replies:t,participantIds:n,lastActivityAt:s}}).sort((e,t)=>t.lastActivityAt-e.lastActivityAt)},[e]);let h=(0,a.useCallback)((e,a)=>{let r=e.slice(0,a).match(/@#([^@#\s]*)$/);if(r){s(!0);let e=r[1].toLowerCase();n(e),p(r.index),o(0),c(m.current.filter(t=>t.title.toLowerCase().includes(e)).slice(0,t))}else s(!1),p(null)},[t]),f=(0,a.useCallback)(e=>!!r&&0!==d.length&&("ArrowDown"===e.key?(e.preventDefault(),o(e=>(e+1)%d.length),!0):"ArrowUp"===e.key?(e.preventDefault(),o(e=>(e-1+d.length)%d.length),!0):"Escape"===e.key&&(e.preventDefault(),s(!1),!0)),[r,d.length]),x=(0,a.useCallback)(e=>null===u?null:{startIndex:u,endIndex:u+2+l.length,text:""},[u,l]);return{isOpen:r,suggestions:d,activeIndex:i,handleInput:h,handleKeyDown:f,selectSuggestion:x,close:(0,a.useCallback)(()=>{s(!1),p(null)},[]),exportDiscussion:(0,a.useCallback)(async e=>{let t=[];try{let e=await fetch("/api/participants");e.ok&&(t=await e.json())}catch(e){console.warn("Failed to fetch participants for export",e)}let a=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e.rootMessageId,title:e.title,messages:[e.rootMessage,...e.replies],participants:t})});if(!a.ok)throw Error(`Export failed: ${await a.text()}`);return await a.json()},[])}}({messages:d,maxSuggestions:8}),E=function(){let[e,t]=(0,a.useState)([]),r=(0,a.useRef)(new Map),s=(0,a.useCallback)(e=>{let a=new XMLHttpRequest;r.current.set(e.id,a);let s=new FormData;s.append("file",e.file),a.upload.onprogress=a=>{if(a.lengthComputable){let r=Math.round(a.loaded/a.total*100);t(t=>t.map(t=>t.id===e.id?{...t,progress:r}:t))}},a.onload=()=>{if(r.current.delete(e.id),a.status>=200&&a.status<300)try{let r=JSON.parse(a.responseText),s=r.attachments?.[0];if(s)return void t(t=>t.map(t=>t.id===e.id?{...t,status:"uploaded",progress:100,serverId:s.id}:t))}catch{}let s=(()=>{try{return JSON.parse(a.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();t(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:s}:t))},a.onerror=()=>{r.current.delete(e.id),t(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:"Network error"}:t))},a.open("POST","/api/upload"),a.send(s)},[]),l=(0,a.useCallback)(a=>{let r=Array.from(a),l=function(e){let t=e.reduce((e,t)=>e+t.size,0);if(t>0x3200000){let e=(t/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${e}MB) exceeds 50MB limit`}}return null}([...e.map(e=>({name:e.filename,size:e.size,type:e.mimeType})),...r.map(e=>({name:e.name,size:e.size,type:e.type}))]);if(l)return void alert(l.reason);let n=[];for(let e of r){let t=function(e){let t=e.name.includes(".")?"."+e.name.split(".").pop().toLowerCase():"";if(eI.has(t))return{file:e.name,reason:`File type "${t}" is not allowed`};if(e.type&&!eC.has(e.type))return{file:e.name,reason:`File type "${e.type}" is not supported`};if(!e.type&&!eC.has("application/octet-stream"),e.size>0xa00000){let t=(e.size/1048576).toFixed(1);return{file:e.name,reason:`File is too large (${t}MB). Maximum is 10MB`}}return 0===e.size?{file:e.name,reason:"File is empty"}:null}({name:e.name,size:e.size,type:e.type});if(t){n.push({id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type,size:e.size,previewUrl:null,progress:0,status:"failed",error:t.reason});continue}let a=e.type.startsWith("image/")?URL.createObjectURL(e):null,r={id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type||"application/octet-stream",size:e.size,previewUrl:a,progress:0,status:"uploading"};n.push(r)}for(let e of(t(e=>[...e,...n]),n))"uploading"===e.status&&s(e)},[e,s]),n=(0,a.useCallback)(e=>{t(t=>{let a=t.find(t=>t.id===e);a?.previewUrl&&URL.revokeObjectURL(a.previewUrl);let s=r.current.get(e);return s&&(s.abort(),r.current.delete(e)),a?.serverId&&fetch(`/api/upload/${a.serverId}`,{method:"DELETE"}).catch(()=>{}),t.filter(t=>t.id!==e)})},[]),i=(0,a.useCallback)(e=>{t(t=>{let a=t.find(t=>t.id===e);if(!a||"failed"!==a.status)return t;let r=t.map(t=>t.id===e?{...t,status:"uploading",error:void 0,progress:0}:t),l=r.find(t=>t.id===e);return setTimeout(()=>s(l),0),r})},[s]),o=(0,a.useCallback)(()=>{t(e=>{for(let t of e){t.previewUrl&&URL.revokeObjectURL(t.previewUrl);let e=r.current.get(t.id);e&&e.abort()}return r.current.clear(),[]})},[]),d=0===e.length||e.every(e=>"uploaded"===e.status||"failed"===e.status),c=e.some(e=>"uploaded"===e.status),u=e.filter(e=>"uploaded"===e.status&&e.serverId);return{staged:e,stageFiles:l,remove:n,retry:i,clear:o,canSend:d,hasUploaded:c,attachmentIds:u.map(e=>e.serverId),getAttachmentMetas:(0,a.useCallback)(()=>u.map(e=>({id:e.serverId,filename:e.filename,mimeType:e.mimeType,size:e.size,status:"uploaded",url:`/api/attachments/${e.serverId}`})),[u])}}(),D=function(){let[e,t]=(0,a.useState)([]),r=(0,a.useCallback)((e,a,r)=>{t(t=>t.find(t=>t.path===e)?t.map(t=>t.path===e?{...t,label:a,attachMode:r??t.attachMode}:t):[...t,{kind:"file-path",id:crypto.randomUUID(),path:e,label:a,attachMode:r}])},[]);return{filePaths:e,addFilePath:r,removeFilePath:(0,a.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e))},[]),clearFilePaths:(0,a.useCallback)(()=>{t([])},[]),hasFilePaths:e.length>0}}(),A=function(){let[e,t]=(0,a.useState)(-1),r=(0,a.useRef)(""),s=(0,a.useCallback)(()=>{try{let e=localStorage.getItem(eM);return e?JSON.parse(e):[]}catch{return[]}},[]),l=(0,a.useCallback)(e=>{let a=e.trim();if(!a)return;let l=s().filter(e=>e!==a);l.unshift(a),l.length>100&&(l.length=100);try{localStorage.setItem(eM,JSON.stringify(l))}catch{}t(-1),r.current=""},[s]);return{pushEntry:l,navigate:(0,a.useCallback)((a,l,n)=>{if(!n)return null;let i=s();if(0===i.length)return null;if("up"===a){-1===e&&(r.current=l);let a=r.current,s=e+1;if(a){for(let e=s;e<i.length;e++)if(i[e].toLowerCase().startsWith(a.toLowerCase()))return t(e),i[e];return null}let n=Math.min(e+1,i.length-1);return n===e&&-1!==e?null:(t(n),i[n])}if(e<=0)return 0===e?(t(-1),r.current):null;let o=r.current;if(o){for(let a=e-1;a>=0;a--)if(i[a].toLowerCase().startsWith(o.toLowerCase()))return t(a),i[a];return t(-1),r.current}let d=e-1;return t(d),i[d]},[s,e]),resetNavigation:(0,a.useCallback)(()=>{t(-1),r.current=""},[]),historyIndex:e}}();(0,a.useEffect)(()=>{j&&!n.some(e=>e.id===j)&&y(null)},[n,j]);let R=(0,ev.useEditor)({immediatelyRender:!1,extensions:[eb.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),ej.default.configure({placeholder:u}),eD,eA,eR,eO],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handlePaste:(e,t)=>{let a=t.clipboardData?.files;return!!a&&a.length>0&&(t.preventDefault(),E.stageFiles(a),!0)},handleDOMEvents:{compositionstart:()=>(k.current=!0,S.startComposition(),!1),compositionend:(e,t)=>(k.current=!1,setTimeout(()=>{if(!R)return;let e=eU(R);e&&S.endComposition(e.text,e.cursorPos)},0),!1)},handleKeyDown:(e,t)=>{if("Tab"===t.key||"Enter"===t.key&&!t.shiftKey){if(M.isOpen&&M.filteredCommands.length>0){t.preventDefault();let e=M.filteredCommands[M.activeIndex];return e&&F(e),!0}if(T.isOpen&&T.suggestions.length>0){t.preventDefault();let e=T.suggestions[T.activeIndex];return e&&("folder"===e.type?L(e):U(e)),!0}if(P.isOpen&&P.suggestions.length>0){t.preventDefault();let e=P.suggestions[P.activeIndex];return e&&_(e),!0}if(S.isOpen&&S.filteredSuggestions.length>0){t.preventDefault();let e=S.filteredSuggestions[S.activeIndex];return e&&z(e),!0}}let a={key:t.key,preventDefault:()=>t.preventDefault()};if(M.isOpen&&M.handleKeyDown(a)||T.isOpen&&T.handleKeyDown(a)||P.isOpen&&P.handleKeyDown(a)||S.handleKeyDown(a))return!0;if(("ArrowUp"===t.key||"ArrowDown"===t.key)&&!S.isOpen&&!M.isOpen&&!T.isOpen&&!P.isOpen){let e=ez(R.getJSON()).trim(),{state:a}=R.view,r="ArrowUp"===t.key,s=r?a.selection.from<=1:a.selection.to>=a.doc.content.size-1,l=A.navigate(r?"up":"down",e,s);if(null!==l)return t.preventDefault(),R.commands.setContent(l),R.commands.focus("end"),!0}return"Enter"===t.key&&!t.shiftKey&&(t.preventDefault(),q(),!0)}},onUpdate:({editor:e})=>{if(k.current)return;-1!==A.historyIndex&&A.resetNavigation();let t=eU(e);t&&(S.handleInput(t.text,t.cursorPos),M.handleInput(t.text,t.cursorPos),T.handleInput(t.text,t.cursorPos),P.handleInput(t.text,t.cursorPos))},onBlur:()=>{S.close(),M.close(),T.close(),P.close()}});(0,a.useEffect)(()=>{if(!h||!R)return;let{title:e,threadId:t,messages:a}=h;R.chain().focus().insertContent({type:"threadMention",attrs:{threadId:t,title:e}}).insertContent(" ").run();let r=a[0];if(r){let s={rootMessageId:t,title:e,rootMessage:r,replies:a.slice(1),participantIds:[...new Set(a.map(e=>e.participantId||"user"))],lastActivityAt:Math.max(...a.map(e=>e.timestamp))};P.exportDiscussion(s).then(e=>I(t=>[...t,e])).catch(e=>console.error("Failed to export discussion for Add to chat:",e))}f?.()},[h]);let O=(0,a.useCallback)(()=>{if(!R)return;let e=eU(R);e&&S.handleInput(e.text,e.cursorPos)},[R,S]),z=(0,a.useCallback)(e=>{if(!R)return;let t=S.selectSuggestion(e);if(!t)return;let a=eU(R);if(!a)return;let r=t.text.startsWith("@@"),s="project-group"===e.kind?{type:"participantMention",attrs:{id:e.project.id,name:e.project.name,mode:r?"parallel":"sequential",kind:"project"}}:"project"===e.kind?{type:"projectMention",attrs:{id:e.project.id,slug:e.project.slug,name:e.project.name}}:{type:"participantMention",attrs:{id:e.participant.id,name:e.participant.name,mode:r?"parallel":"sequential",kind:"agent"}};e5(R,a.blockStart,t.startIndex,t.endIndex,s),S.close()},[R,S]),U=(0,a.useCallback)(e=>{if(!R)return;let t=T.selectSuggestion(e);if(!t)return;let a=eU(R);if(!a)return;let r={type:"fileMention",attrs:{path:e.path,relativePath:e.relativePath??e.path,trigger:T.token?.trigger??"@/",attachMode:e.attachMode}};e5(R,a.blockStart,t.startIndex,t.endIndex,r),D.addFilePath(e.path,e.relativePath??e.path,e.attachMode)},[R,T,D]),L=(0,a.useCallback)(e=>{if(!R)return;let t=eU(R);if(!t)return;let a=T.drillDown(e);if(!a)return;let r=e_(R,t.blockStart,a.startIndex,a.endIndex);r&&R.chain().focus().deleteRange(r).insertContent(a.text).run()},[R,T]),_=(0,a.useCallback)(async e=>{if(!R)return;let t=P.selectSuggestion(e);if(!t)return;let a=eU(R);if(!a)return;let r={type:"threadMention",attrs:{threadId:e.rootMessageId,title:e.title}};e5(R,a.blockStart,t.startIndex,t.endIndex,r);try{let t=await P.exportDiscussion(e);I(e=>[...e,t])}catch(e){console.error("Failed to export discussion:",e)}},[R,P]),F=(0,a.useCallback)(e=>{M.selectCommand(e),R&&R.commands.clearContent()},[M,R]),q=(0,a.useCallback)(async()=>{if(!R)return;let t=ez(R.getJSON()).trim();if(!t&&!E.hasUploaded&&!D.hasFilePaths||!E.canSend)return;if(t){let e=c.find(e=>e.name===t||e.aliases?.some(e=>`/${e}`===t));if(e){e.execute(),R.commands.clearContent(),M.close(),S.close();return}}let a=t||"(attached files)";if(C.length>0){let e=C.map(e=>`- "${e.title}" — ${e.summary} (full transcript: ${e.filePath})`).join("\n");a=`Referenced threads:
6
6
  ${e}
7
7
 
8
- ${a}`}if(D.hasFilePaths){let e=await eP(D.filePaths);e.contextPrefix&&(a=e.contextPrefix+a)}t&&A.pushEntry(t);let r=E.attachmentIds.length>0?E.attachmentIds:void 0,s=r?E.getAttachmentMetas():void 0;e(a,10,r,s,j??void 0),R.commands.clearContent(),I([]),E.clear(),D.clearFilePaths(),S.close(),M.close(),P.close()},[R,S,M,c,e,E,D,C,P,A]),W=S.isOpen&&S.filteredSuggestions.length>0;M.isOpen&&M.filteredCommands.length,T.isOpen&&T.suggestions.length,P.isOpen&&P.suggestions.length,W&&S.filteredSuggestions[S.activeIndex];let B=E.staged.some(e=>"uploading"===e.status),H=!R||R.isEmpty,J=n.find(e=>e.id===j)??null;return(0,t.jsx)("div",{className:"pb-6",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsx)(e1,{onDrop:E.stageFiles,children:(0,t.jsxs)("div",{className:"bg-white border border-gray-200 shadow-sm focus-within:border-gray-300 focus-within:ring-1 focus-within:ring-gray-300 dark:bg-gray-900 dark:border-gray-800 dark:shadow-lg dark:focus-within:border-gray-600 dark:focus-within:ring-gray-600 transition-all flex flex-col rounded-2xl",children:[g&&(0,t.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${x?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,t.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${x?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:x?"shipBgSweep 4s ease-in-out infinite":"none"}}),x&&(0,t.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((e,a)=>(0,t.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*a}%`,right:"-10%",width:`${20+a%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+a%3*.1,animation:`shipSpeedLine ${.8+a%4*.3}s ${.1*a}s ease-in-out infinite`}},a))}),(0,t.jsx)("div",{className:"relative px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${x?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:x?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,t.jsx)(es,{size:14})}),(0,t.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${x?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,t.jsx)("span",{className:`text-xs transition-colors duration-300 ${x?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,t.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${x?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:x?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>g(!x),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${x?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,t.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${x?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,t.jsxs)("div",{className:"p-1.5 transition-all",children:[E.staged.length>0&&(0,t.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,t.jsx)(e0,{attachments:E.staged,onRemove:E.remove,onRetry:E.retry})}),(0,t.jsxs)("div",{className:"p-2 relative",children:[(0,t.jsx)("input",{ref:w,type:"file",multiple:!0,className:"hidden",onChange:e=>{e.target.files&&e.target.files.length>0&&(E.stageFiles(e.target.files),e.target.value="")}}),(0,t.jsxs)("div",{className:"flex-1 relative",onClick:O,children:[(0,t.jsx)(ev.EditorContent,{editor:R,className:"composer-editor"}),(0,t.jsx)(eW,{isOpen:S.isOpen&&!M.isOpen,suggestions:S.filteredSuggestions,activeIndex:S.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:z}),(0,t.jsx)(eB,{isOpen:M.isOpen,commands:M.filteredCommands,activeIndex:M.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:F}),(0,t.jsx)(eY,{isOpen:T.isOpen,suggestions:T.suggestions,activeIndex:T.activeIndex,isLoading:T.isLoading,error:T.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:e=>{"folder"===e.type?L(e):U(e)},onAttachContents:T.onAttachContents}),(0,t.jsx)(eG,{isOpen:P.isOpen&&!M.isOpen&&!T.isOpen,suggestions:P.suggestions,activeIndex:P.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:_})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-gray-100 dark:border-gray-800/60 transition-colors",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:N,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,t.jsx)(e2,{className:"h-4 w-4",strokeWidth:1.75})}),(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===n.length?(0,t.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):n.map(e=>(0,t.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":j===e.id,onClick:()=>y(t=>t===e.id?null:e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),y(t=>t===e.id?null:e.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${j===e.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:e.name,children:[(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"w-full h-full rounded-full object-cover"}),b&&(0,t.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===v?"bg-amber-400":"bg-emerald-400"}`})]},e.id))})]}),J&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:J.name})]})]})]}),b?(0,t.jsx)("button",{type:"button",onClick:r,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,t.jsxs)("button",{type:"button",onClick:q,disabled:H&&!E.hasUploaded&&!D.hasFilePaths||B,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,t.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===v?"bg-emerald-400 animate-pulse":"queued"===v?"bg-amber-400":"bg-emerald-400"}`}),(0,t.jsx)("span",{children:"working"===v?"Working":"queued"===v?"Queued":"Ready"})]}),(0,t.jsxs)("span",{children:["Press ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}var e4=e.i(54238);let e6="agx-chat:project-agent-config",e8={activeParticipantIdsByThread:{}};function e7(){return void 0!==window.localStorage}function e9(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let r of e){if("string"!=typeof r)continue;let e=r.trim();!e||t.has(e)||(t.add(e),a.push(e))}return a}function te(){if(!e7())return{...e8};let e=window.localStorage.getItem(e6);if(!e)return{...e8};try{let t=JSON.parse(e).activeParticipantIdsByThread;if(!t||"object"!=typeof t)return{...e8};return{activeParticipantIdsByThread:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,e9(t)]))}}catch{return{...e8}}}function tt(e,t){let a=e.trim();if(!a)return;let r=te();r.activeParticipantIdsByThread[a]=e9(t);if(e7())try{window.localStorage.setItem(e6,JSON.stringify(r))}catch{}}var ta=e.i(2651),tr=e.i(37902);function ts({isOpen:e,title:r,message:s,preview:l,confirmLabel:n="Confirm",cancelLabel:i="Cancel",variant:o="default",onConfirm:d,onCancel:c}){let u=(0,a.useRef)(null),p=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(e){let e=setTimeout(()=>u.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let m=(0,a.useCallback)(e=>{"Escape"===e.key&&c()},[c]);if(!e)return null;let h="danger"===o;return(0,t.jsxs)("div",{style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&c(),onKeyDown:m,className:"jsx-1da17079bc733bcf fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",children:[(0,t.jsxs)("div",{ref:p,style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},className:"jsx-1da17079bc733bcf w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",children:[(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf px-6 pt-6 pb-3",children:(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf flex items-start gap-4",children:[h&&(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,t.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,className:"jsx-1da17079bc733bcf w-5 h-5 text-red-500",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0",className:"jsx-1da17079bc733bcf"})})}),(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"jsx-1da17079bc733bcf text-[15px] font-semibold text-[var(--foreground)]",children:r}),(0,t.jsx)("p",{className:"jsx-1da17079bc733bcf mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:s})]})]})}),l&&(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,t.jsxs)("p",{className:"jsx-1da17079bc733bcf text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",l,"”"]})}),(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 border-t border-[var(--card-border)]"}),(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,t.jsx)("button",{onClick:c,className:"jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:i}),(0,t.jsx)("button",{ref:u,onClick:d,className:`jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${h?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:n})]})]}),(0,t.jsx)(tr.default,{id:"1da17079bc733bcf",children:"@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-in{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}"})]})}var tl=e.i(74049),tn=e.i(55436),ti=e.i(73375);let to=(0,b.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),td=(0,b.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),tc=(0,b.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),tu=(0,b.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var tp=e.i(10980);function tm({logs:e,participants:r,onClear:s,open:l,onToggle:n}){let[i,o]=(0,a.useState)(420),[d,c]=(0,a.useState)(null),u=(0,a.useRef)(null),p=(0,a.useRef)(!1),m=(0,a.useRef)(0),h=(0,a.useRef)(0),f=Object.fromEntries(r.map(e=>[e.id,e]));(0,a.useEffect)(()=>{l&&u.current?.scrollIntoView({behavior:"smooth"})},[e.length,l]);let x=(0,a.useCallback)(e=>{e.preventDefault(),p.current=!0,m.current=e.clientX,h.current=i,e.target.setPointerCapture(e.pointerId)},[i]),g=(0,a.useCallback)(e=>{if(!p.current)return;let t=m.current-e.clientX;o(Math.max(280,Math.min(h.current+t,.6*window.innerWidth)))},[]),v=(0,a.useCallback)(()=>{p.current=!1},[]);if(!l)return null;let b=d?e.filter(e=>e.participantId===d):e;return(0,t.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,t.jsx)("div",{onPointerDown:x,onPointerMove:g,onPointerUp:v,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,t.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,t.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:i},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,t.jsxs)("select",{value:d||"",onChange:e=>c(e.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,t.jsx)("option",{value:"",children:"All"}),r.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:s,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,t.jsx)("button",{onClick:n,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[b.map((e,a)=>{let r=f[e.participantId]?.name||e.participantId,s=f[e.participantId]?.color||"#888",l="stderr"===e.stream;return(0,t.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(e.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,t.jsx)("span",{className:"shrink-0",style:{color:s},children:r}),(0,t.jsx)("span",{className:l?"text-red-400":"text-[var(--muted-foreground)]",children:e.line})]},a)}),(0,t.jsx)("div",{ref:u})]})]})]})}function th(){let[e,r]=(0,a.useState)("unknown"),[s,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(""),[o,c]=(0,a.useState)(!1),u=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/status");if(!e.ok)return void r("unknown");let t=await e.json();r("ok"===t.status?"ok":"degraded");let a=t.services.filter(e=>"agx-chat"===e.name||"agx-cloud"===e.name);l(a),i(new Date().toLocaleTimeString())}catch{r("unknown"),l([])}},[]);return(0,a.useEffect)(()=>{u();let e=setInterval(u,3e4);return()=>clearInterval(e)},[u]),(0,t.jsxs)("div",{className:"relative",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,t.jsx)(d.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,t.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===e?"bg-emerald-400":"degraded"===e?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===e?"animate-pulse":""}`})}),o&&(0,t.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[s.length>0?(0,t.jsx)("ul",{className:"space-y-1.5",children:s.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:"ok"===e.status?"text-emerald-600":"error"===e.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===e.status?"Healthy":"error"===e.status?e.detail||"Error":"Unavailable"})]},e.name))}):(0,t.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),n&&(0,t.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",n]})]})]})}let tf="agx-theme";function tx(e,t=!1){return(t?e.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():e).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function tg(e){let t=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok)throw Error("Failed to load thread knowledge run");let a=await t.json().catch(()=>null);return a?.run??null}function tv(e,t,a){let r=new Set(e.map(e=>e.id)),s=a?t.find(e=>e.thread_ids?.includes(a)):t[0],l=s?s.agents.map(e=>e.agent_id).filter(e=>r.has(e)):[];return s?l:0===l.length?e.map(e=>e.id):l}function tb(e,t,a){let r=Object.fromEntries(t.map(e=>[e.id,e])),s=[];for(let t of e){let e="user"===t.role?"You":t.participantId?r[t.participantId]?.name||t.participantId:"Assistant",a=tx(t.content,"user"!==t.role);a&&(s.push(`**${e}:**`),s.push(""),s.push(a),s.push(""))}if(a){let e=function(e){if(0===e.tasks.length)return"";let t=new Map(e.tasks.map(e=>[e.id,e.title.trim()])),a=["## Draft Tasks",""];return e.projectName&&a.push(`Project: ${e.projectName}`),e.buildStatus&&a.push(`Build status: ${e.buildStatus.replaceAll("_"," ")}`),(e.projectName||e.buildStatus)&&a.push(""),e.tasks.forEach((r,s)=>{let l=tx(r.title)||`Task ${s+1}`,n=tx(r.description),i=(r.dependsOn||[]).map(e=>t.get(e)?.trim()).filter(e=>!!e),o=e.builtTaskIds?.[r.id];a.push(`${s+1}. [ ] **${l}**`),n&&a.push(n),i.length>0&&a.push(`Depends on: ${i.join(", ")}`),o&&a.push(`agx task id: \`${o}\``),a.push("")}),a.join("\n").trim()}(a);e&&s.push(e)}return s.join("\n").trim()}function tj({projectSlug:e,initialThreadId:d,initialRootMessageId:c,showSidebar:u=!0}={}){let p=(0,r.useSearchParams)(),{threads:m,activeThreadId:h,selectThread:f,createThread:x,deleteThread:g,updateThreadMessages:v,isCreating:b,deletingThreadId:j,renamingThreadId:y,isLoading:w,isRestoringActiveThread:k,renameThread:N,updateThreadStatus:C,updateThreadOutcomeNote:I,updateMessageThreadStatus:S,updateMessageOutcomeNote:$}=(0,i.useThreadState)(d),{messages:M,setMessages:T,logs:P,sendMessage:E,loadHistory:D,clearLogs:O,chatRuns:z,setChatRuns:U,stop:L,stopThread:_}=function(e){let[t,r]=(0,a.useState)([]),[n,i]=(0,a.useState)([]),[o,d]=(0,a.useState)([]),c=(0,a.useRef)(e),u=(0,a.useRef)(e);c.current=e,u.current!==e&&(u.current=e,r([]),i([]),d([]));let p=(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){r([]),i([]);return}let a=s(t);try{let[e,s]=await Promise.all([fetch(`/api/history?${a}`),fetch(`/api/logs?${l(t)}`)]);if(c.current!==t)return;e.ok&&r(await e.json()),s.ok&&i(await s.json())}catch{}},[]),m=(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){r([]),i([]);return}let a=s(t);await Promise.all([fetch(`/api/history?${a}`,{method:"DELETE"}),fetch(`/api/logs?${l(t)}`,{method:"DELETE"})]),c.current===t&&(r([]),i([]))},[]),h=(0,a.useCallback)(async(e,t=10,a,s,l,n,i,o)=>{let u=a?.trim()||c.current?.trim();if(!u)return;let p=Date.now(),m=crypto.randomUUID(),h={id:m,role:"user",participantId:null,content:e,timestamp:p,rootMessageId:s||null,parentMessageId:s||null,depth:+!!s,...n&&n.length>0?{attachments:n}:{}};r(e=>[...e,h]);try{let a=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:u,prompt:e,maxRounds:t,userMessageId:m,rootMessageId:s||void 0,attachmentIds:l?.length?l:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0})}),r=await a.json().catch(()=>null);a.ok&&r?.chatRunId&&d(e=>[{chatRunId:r.chatRunId,threadId:u,rootMessageId:s||m,status:"queued"},...e.filter(e=>e.chatRunId!==r.chatRunId)])}catch{}return m},[]),f=(0,a.useCallback)(async()=>{let e=c.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),x=(0,a.useCallback)(async e=>{let t=c.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:t,setMessages:r,logs:n,sendMessage:h,loadHistory:p,clearHistory:m,clearLogs:(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();t?(await fetch(`/api/logs?${l(t)}`,{method:"DELETE"}).catch(()=>{}),c.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:d,stop:f,stopThread:x}}(h),{activeAgents:F,processes:q,streaming:W,chatRuns:B,poll:H}=(0,n.useProcessPolling)(h?{workspaceId:h}:null,{messages:M,setMessages:T}),J=(z.length>0?z:B).filter(e=>"queued"===e.status||"running"===e.status),K=F.size>0||J.some(e=>"running"===e.status)?"working":J.some(e=>"queued"===e.status)?"queued":"ready";(0,a.useEffect)(()=>{0!==B.length&&U(e=>{let t=new Map(e.filter(e=>"string"==typeof e.chatRunId&&e.chatRunId.length>0).map(e=>[e.chatRunId,e]));for(let e of B)e?.chatRunId&&t.set(e.chatRunId,e);return Array.from(t.values()).sort((e,t)=>String(e.chatRunId||"").localeCompare(String(t.chatRunId||"")))})},[B,U]);let V=(0,a.useCallback)(async e=>{await fetch(`/api/chat-runs/${encodeURIComponent(e)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(()=>{})},[]),X=(0,a.useCallback)(async()=>{let e=J[0];e?.chatRunId&&await V(e.chatRunId),await L(),await H()},[J,V,L,H]),Y=(0,a.useCallback)(async e=>{let t=J.find(t=>t.rootMessageId===e);t?.chatRunId&&await V(t.chatRunId),await _(e),await H()},[J,V,_,H]),G=(0,a.useRef)(X);(0,a.useEffect)(()=>{G.current=X},[X]);let{projects:Z,createProject:Q,deleteProject:ee,addAgent:et,removeAgent:ea,reorderAgents:er}=(0,tl.useProjectsWithAgents)(),{projects:es,updateProject:el}=(0,tl.useProjects)(),[en,ei]=(0,a.useState)([]),[ed,ec]=(0,a.useState)(!1),[eu,ep]=(0,a.useState)([]),[em,ef]=(0,a.useState)(!1),[ex,ev]=(0,a.useState)(()=>{let e=window.localStorage.getItem(tf);return"dark"===e||"light"===e?e:document.documentElement.classList.contains("dark")?"dark":"light"}),[eb,ej]=(0,a.useState)(!1),ey=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=(0,e4.loadWorkspaceSidebarVisible)();ey.current=!0,ej(e)},[]),(0,a.useEffect)(()=>{let e="dark"===ex;document.documentElement.classList.toggle("dark",e),document.documentElement.style.colorScheme=ex,window.localStorage.setItem(tf,ex)},[ex]);let[ew,ek]=(0,a.useState)(!1),[eN,eC]=(0,a.useState)(new Set),[eI,eS]=(0,a.useState)(!1),[e$,eM]=(0,a.useState)(!1),[eT,eP]=(0,a.useState)(null),[eE,eD]=(0,a.useState)(c??null),eA=p.get("open")?.trim()||null,eR=eE?eN.has(eE):eI;(0,a.useEffect)(()=>{if(!eE)return;let e=!1,t=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(eE)}`).then(e=>e.json()).then(t=>{e||eC(e=>{let a=e.has(eE);if(t.active&&!a){let t=new Set(e);return t.add(eE),t}if(!t.active&&a){let t=new Set(e);return t.delete(eE),t}return e})}).catch(()=>{})};t();let a=setInterval(t,1e4);return()=>{e=!0,clearInterval(a)}},[eE]),(0,a.useEffect)(()=>{let e=!1,t=()=>{fetch("/api/schedules").then(e=>e.json()).then(t=>{!e&&t.activeRootMessageIds&&eC(e=>{let a=new Set(t.activeRootMessageIds);for(let t of e)a.add(t);return a.size===e.size&&[...a].every(t=>e.has(t))?e:a})}).catch(()=>{})};t();let a=setInterval(t,15e3);return()=>{e=!0,clearInterval(a)}},[]),(0,a.useEffect)(()=>{if(eE){let t=e?`/projects/${e}/thread/${encodeURIComponent(h??d??"")}?open=${encodeURIComponent(eE)}`:`/thread/${eE}`;window.history.replaceState(null,"",t)}else window.history.replaceState(null,"",e?`/projects/${e}/thread/${encodeURIComponent(h??d??"")}`:"/")},[h,d,eE,e]),(0,a.useEffect)(()=>{e&&eD(e=>e===eA?e:eA)},[e,eA]),(0,a.useEffect)(()=>{c&&(async()=>{try{let e=await fetch(`/api/messages/${c}`);if(!e.ok)return;let{threadId:t}=await e.json();t&&f(t)}catch{}})()},[c,f]);let[eO,ez]=(0,a.useState)(""),[eU,eL]=(0,a.useState)([]),[e_,eF]=(0,a.useState)(0),[eq,eW]=(0,a.useState)(!1),[eB,eH]=(0,a.useState)(null),[eJ,eK]=(0,a.useState)(null),[eV,eX]=(0,a.useState)(new Set),[eY,eG]=(0,a.useState)(null),[eZ,eQ]=(0,a.useState)(null),[e0,e1]=(0,a.useState)({}),e2=(0,a.useCallback)(e=>{e1(t=>{let a="function"==typeof e?e(t):e;if(h)for(let[e,r]of Object.entries(a))t[e]!==r&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,messageId:e,draft:r})}).catch(()=>{});return a})},[h]),[e5,e6]=(0,a.useState)(new Set),[e8,e7]=(0,a.useState)(new Set),e9=(0,a.useRef)(null),tr=(0,a.useRef)(null),tx=(0,a.useRef)(null),ty=(0,a.useRef)(""),tw=(0,a.useCallback)(async(e=!1)=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();if(!Array.isArray(t))return;ei(t)}finally{e&&ec(!0)}},[]),tk=(0,a.useCallback)(async e=>{try{await (0,ta.updateUserPreferences)({threadSidebarVisible:e})}catch(e){console.error("Unable to persist thread sidebar preference",e)}},[ta.updateUserPreferences]),tN=(0,a.useCallback)(e=>{(0,e4.persistWorkspaceSidebarVisible)(e),tk(e)},[tk]),tC=eO.trim(),tI=tC.length>0,tS=(0,a.useMemo)(()=>Object.fromEntries(m.map(e=>[e.id,e.title?.trim()||"Untitled thread"])),[m]),t$=(0,a.useMemo)(()=>{if(!eE)return[];let e=new Set([M.find(e=>e.id===eE),...M.filter(e=>e.rootMessageId===eE)].filter(Boolean).map(e=>e.participantId).filter(Boolean));return Object.keys(W).forEach(t=>{W[t].rootMessageId===eE&&e.add(t)}),en.filter(t=>e.has(t.id))},[eE,M,W,en]),tM=(0,a.useMemo)(()=>{let e=new Map(en.map(e=>[e.id,e]));return eu.map(t=>e.get(t)).filter(Boolean)},[en,eu]),tT=(0,a.useMemo)(()=>es.map(e=>({id:e.id,name:e.name,slug:e.slug})),[es]),tP=(0,a.useMemo)(()=>{if(!eE)return 0;let e=[M.find(e=>e.id===eE),...M.filter(e=>e.rootMessageId===eE)].filter(Boolean);return 0===e.length?0:Math.max(...e.map(e=>e.timestamp))},[eE,M]),tE=(0,a.useMemo)(()=>{if(!eE)return"";let e=M.find(e=>e.id===eE);if(!e)return"Thread";let t=e.content.trim();return t.length>60?t.slice(0,60)+"...":t},[eE,M]),tD=(0,a.useMemo)(()=>{if(!eE)return null;let e=M.find(e=>e.id===eE),t=e?.threadStatus??"active";return{value:t,...{active:{label:"Active",color:"#f59e0b"},paused:{label:"Paused",color:"#f97316"},"in-review":{label:"In Review",color:"#6b7280"},done:{label:"Done",color:"#3b82f6"},archived:{label:"Archived",color:"#9ca3af"}}[t]}},[eE,M]),tA=(0,a.useCallback)(()=>{ez(""),eL([]),eF(0),eH(null),eW(!1)},[]);(0,a.useCallback)(()=>{let e=tb(M,en);navigator.clipboard.writeText(e).then(()=>{ef(!0),setTimeout(()=>ef(!1),2e3)})},[M,en]);let[tR,tO]=(0,a.useState)(null),tz=(0,a.useCallback)(e=>{let t=M.find(t=>t.id===e);if(!t)return;let a=[t,...M.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)];tO({title:t.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:e,messages:a})},[M]),tU=(0,a.useCallback)(e=>{let t=tb([M.find(t=>t.id===e),...M.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)].filter(Boolean),en,e0[e]);navigator.clipboard.writeText(t).catch(e=>console.error("Failed to copy thread",e))},[M,en,e0]),tL=(0,a.useCallback)(async()=>{if(eE){eM(!0);try{let t=["repo"];e&&t.push("project");let a=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:eE,scopes:t})}),r=await a.json().catch(()=>null);if(!a.ok)throw Error("string"==typeof r?.error?r.error:"Request failed");eP(r?.run??null)}catch(t){let e=t instanceof Error?t.message:"Request failed";window.alert(`Failed to extract knowledge: ${e}`)}finally{eM(!1)}}},[eE,e]);(0,a.useEffect)(()=>{if(!eE){eP(null),eM(!1);return}let e=!1;return(async()=>{try{let t=await tg(eE);if(e)return;eP(t)}catch{e||eP(null)}})(),()=>{e=!0}},[eE]),(0,a.useEffect)(()=>{if(!eE||eT?.status!=="running")return;let e=!1,t=async()=>{try{let t=await tg(eE);if(e)return;eP(t)}catch{}};t();let a=window.setInterval(()=>{t()},2e3);return()=>{e=!0,window.clearInterval(a)}},[eE,eT?.status]);let t_=eT?.status==="running",tF=e$||t_,tq=(eT?.repoInsertedCount??0)+(eT?.projectInsertedCount??0),tW=(0,a.useMemo)(()=>{if(!eT)return null;if("running"===eT.status)return"Learning in progress";if("failed"===eT.status)return"Last learning run failed";if(tq>0){let e=1===tq?"insight":"insights";return`Learned ${tq} ${e}`}return"No new learnings"},[tq,eT]);(0,a.useEffect)(()=>{tw(!0)},[tw]);let tB=(0,a.useMemo)(()=>{if(!ed)return[];let e=new Set(en.map(e=>e.id)),t=new Set;for(let a of M)"assistant"===a.role&&a.participantId&&(e.has(a.participantId)||t.add(a.participantId));for(let a of Object.keys(W))e.has(a)||t.add(a);return Array.from(t).sort()},[M,en,ed,W]);(0,a.useEffect)(()=>{if(!ed)return;let e=tB.join("|");if(!e){ty.current="";return}ty.current!==e&&(ty.current=e,tw(!1))},[ed,tw,tB]),(0,a.useEffect)(()=>{if(!ed)return;let e=tv(en,Z,h);if(!h)return void ep(e);let t=function(e){let t=e.trim();if(!t)return null;let a=te();return t in a.activeParticipantIdsByThread?[...a.activeParticipantIdsByThread[t]]:null}(h);if(null===t)return void ep(e);let a=function(e,t){if(null===t)return e;let a=new Set(t);return e.filter(e=>a.has(e))}(e,t),r=a.length>0?a:e;(r.length!==t.length||r.some((e,a)=>t[a]!==e))&&tt(h,r),ep(r)},[h,en,ed,Z]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await (0,ta.fetchUserPreferences)();if(e)return;ej(e=>e===t.threadSidebarVisible?e:ey.current?(tk(e),e):((0,e4.persistWorkspaceSidebarVisible)(t.threadSidebarVisible),t.threadSidebarVisible))}catch(e){console.error("Failed to load user preferences",e)}})(),()=>{e=!0}},[tk]),(0,a.useEffect)(()=>{w||b||0!==m.length||x({id:"global",title:"General"})},[w,b,m.length,x]),(0,a.useEffect)(()=>()=>{tx.current&&window.clearTimeout(tx.current)},[]),(0,a.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()){e.preventDefault(),e9.current?.focus(),e9.current?.select();return}"Escape"===e.key&&tC&&tA()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[tA,tC]),(0,a.useEffect)(()=>{if(!tC){eL([]),eF(0),eH(null),eW(!1);return}let e=!1;eW(!0);let t=window.setTimeout(()=>{(async()=>{try{let t=new URLSearchParams({q:tC,limit:"20",offset:"0"}),a=await fetch(`/api/search?${t.toString()}`),r=await a.json().catch(()=>null);if(e)return;if(!a.ok){let e=r&&"object"==typeof r&&"error"in r?String(r.error):"Search failed";eL([]),eF(0),eH(e);return}eL(Array.isArray(r.results)?r.results:[]),eF("number"==typeof r.total?r.total:0),eH(null)}catch(t){if(e)return;console.error("Search request failed",t),eL([]),eF(0),eH("Search failed")}finally{e||eW(!1)}})()},300);return()=>{e=!0,window.clearTimeout(t)}},[tC]);let tH=(0,a.useRef)(null);(0,a.useEffect)(()=>{null!==tH.current&&tH.current!==h&&(G.current(),tr.current?(eD(tr.current),tr.current=null):eD(null)),tH.current=h,h&&(D(h),fetch(`/api/task-drafts?threadId=${encodeURIComponent(h)}`).then(e=>e.json()).then(e=>{e.drafts&&Object.keys(e.drafts).length>0?e1(e.drafts):e1({})}).catch(()=>e1({})))},[h,D]),(0,a.useEffect)(()=>{h&&v(h,M)},[h,M,v]);let tJ=(0,a.useCallback)((t,a,r=10,s)=>{if(!h||0===tM.length)return;let l=tM.map(e=>e.id);E(a,r,h,t,void 0,void 0,s&&l.includes(s)?[s,...l.filter(e=>e!==s)]:l,e)},[h,E,tM,e]),tK=(0,a.useCallback)(async e=>{if(h){if(0===tM.length)return void window.alert("Enable at least one agent in this project.");eX(t=>new Set(t).add(e));try{let t=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,rootMessageId:e,activeParticipantIds:tM.map(e=>e.id)})});t.ok?await D(h):console.error("Summarize failed:",await t.text())}catch(e){console.error("Summarize error:",e)}finally{eX(t=>{let a=new Set(t);return a.delete(e),a})}}},[h,D,tM]),tV=(0,a.useCallback)(async e=>{if(h){if(0===tM.length)return void window.alert("Enable at least one agent in this project.");e6(t=>new Set(t).add(e));try{let t=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,rootMessageId:e,activeParticipantIds:tM.map(e=>e.id)})});if(t.ok){let a=await t.json(),r={draftId:crypto.randomUUID(),revision:0,tasks:a.tasks,buildStatus:"idle"};e2(t=>({...t,[e]:r}))}else console.error("Task extraction failed:",await t.text())}catch(e){console.error("Task extraction error:",e)}finally{e6(t=>{let a=new Set(t);return a.delete(e),a})}}},[h,tM]),tX=(0,a.useCallback)((e,t)=>{e2(a=>({...a,[e]:t}))},[]),tY=(0,a.useCallback)(async(e,t,a,r)=>{if(h){e7(e=>new Set(e).add(t.draftId)),e2(s=>({...s,[e]:{...t,buildStatus:"building",projectId:a,projectName:r}}));try{let r=crypto.randomUUID(),s=await A(t.tasks,a,r,t.builtTaskIds),l={...t.builtTaskIds},n=!1;for(let e of s.results)"created"===e.status&&e.remoteTaskId?l[e.clientTaskId]=e.remoteTaskId:n=!0;e2(t=>({...t,[e]:{...t[e],buildId:r,buildStatus:n?"partial_failure":"done",builtTaskIds:l}}))}catch(t){console.error("Build error:",t),e2(t=>({...t,[e]:{...t[e],buildStatus:"partial_failure"}}))}finally{e7(e=>{let a=new Set(e);return a.delete(t.draftId),a})}}},[h]),tG=(0,a.useCallback)(()=>{if(!h)return;let e=(()=>{if(eE)return eE;let e=new Set(M.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=M.length-1;t>=0;t-=1){let a=M[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?tV(e):console.warn("No thread with replies available to extract tasks from")},[h,tV,M,eE]);(0,a.useCallback)(e=>{eD(e)},[]);let tZ=(0,a.useCallback)(e=>{eD(e)},[]),tQ=(0,a.useCallback)(e=>{let t=e?.trim()??"";t&&ez(t),requestAnimationFrame(()=>{e9.current?.focus(),t||e9.current?.select()})},[]),t0=(0,a.useCallback)(()=>{if(!h)return;let e=(()=>{if(eE)return eE;let e=new Set(M.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=M.length-1;t>=0;t-=1){let a=M[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?tK(e):console.warn("No thread with replies available to summarize")},[h,tK,M,eE]),t1=(0,a.useCallback)(async(t,a,r,s,l)=>{let n=t.match(/^\/search(?:\s+([\s\S]+))?$/i);if(n)return void tQ(n[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(t))return void t0();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(t)||/^\/create(?:\s+[\s\S]+)?$/i.test(t))return void tG();eR&&eE&&(eC(e=>{let t=new Set(e);return t.delete(eE),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:eE})}).catch(e=>console.error("Failed to deactivate schedule:",e)));let i=h;i||(i=(await x()).id);let o=tM.map(e=>e.id);if(0===o.length)return void window.alert("Enable at least one agent in this project.");let d=l&&o.includes(l)?[l,...o.filter(e=>e!==l)]:o;if(eE)return void await E(t,a,i,eE,r,s,d,e);let c=await E(t,a,i,null,r,s,d,e);eI&&c&&(eS(!1),eC(e=>{let t=new Set(e);return t.add(c),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:c})}).catch(e=>console.error("Failed to activate schedule for new thread:",e)))},[h,eR,eI,x,tQ,t0,eE,tM,E,e]),t2=(0,a.useCallback)(async e=>{if(!eE)return void eS(e);eC(t=>{let a=new Set(t);return e?a.add(eE):a.delete(eE),a});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e?"activate":"stop",rootMessageId:eE})})}catch(e){console.error("Failed to toggle autonomous schedule:",e)}},[eE]),t5=(0,a.useCallback)(e=>{let t=e.rootMessageId||e.messageId;e.threadId!==h?(tr.current=t,f(e.threadId)):eD(t),eK(null),window.requestAnimationFrame(()=>{eK(e.messageId),tx.current&&window.clearTimeout(tx.current),tx.current=window.setTimeout(()=>{eK(t=>t===e.messageId?null:t)},2e3)}),tA()},[h,tA,f]),t3=(0,a.useCallback)(async e=>{X(),await g(e)},[g,X]),t4=(0,a.useCallback)(e=>{if(!h||!e)return;let t=M.find(t=>t.id===e);eQ({type:"thread",id:e,preview:t?.content?.slice(0,120)||void 0})},[h,M]),t6=(0,a.useCallback)(async e=>{if(h){eG(e),Y(e);try{let t=new URLSearchParams({threadId:h,rootMessageId:e}),a=await fetch(`/api/history?${t.toString()}`,{method:"DELETE"});if(!a.ok)return void console.error("Failed to delete message thread",await a.text());eD(t=>t===e?null:t),eK(null);let r=M.filter(t=>t.id!==e&&t.rootMessageId!==e);v(h,r),await D(h)}catch(e){console.error("Failed to delete message thread",e)}finally{eG(t=>t===e?null:t)}}},[h,D,M,Y,v]),t8=(0,a.useCallback)(e=>{if(!h||!e)return;let t=M.find(t=>t.id===e);eQ({type:"message",id:e,preview:t?.content?.slice(0,120)||void 0})},[h,M]),t7=(0,a.useCallback)(async e=>{if(h)try{let t=new URLSearchParams({threadId:h,messageId:e}),a=await fetch(`/api/history?${t.toString()}`,{method:"DELETE"});if(!a.ok)return void console.error("Failed to delete message",await a.text());let r=M.filter(t=>t.id!==e);v(h,r),await D(h)}catch(e){console.error("Failed to delete message",e)}},[h,D,M,v]),t9=(0,a.useCallback)(()=>{eZ&&("thread"===eZ.type?t6(eZ.id):t7(eZ.id),eQ(null))},[eZ,t6,t7]),ae=(0,a.useCallback)(()=>{eQ(null)},[]),at=(0,a.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>tQ()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>t0()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>tG()}],[tQ,t0,tG]),aa=(0,a.useMemo)(()=>h?Z.filter(e=>e.thread_ids?.includes(h)):Z,[Z,h]),ar=(0,a.useCallback)(e=>{let a=q.some(t=>["spawning","running"].includes(t.state)&&t.threadId===e)||Object.values(W).some(t=>t.rootMessageId===e)?"working":J.some(t=>t.rootMessageId===e&&"queued"===t.status)?"queued":"ready";return(0,t.jsx)(e3,{onSend:(t,a,r,s,l)=>tJ(e,t,a,l),onStop:()=>Y(e),loading:"ready"!==a,activityStatus:a,participants:tM,projectGroups:aa,projects:tT,messages:M,commands:at,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:eR,onAutoModeChange:t2})},[tJ,Y,W,tM,aa,tT,at,M,eR,t2,q,J]),as=(0,a.useCallback)(()=>{ej(e=>{let t=!e;return tN(t),t})},[tN]),al=async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();ei(t=>t.map(t=>t.id===e.id?e:t))}},an=(0,a.useCallback)((e,t)=>{ep(a=>{let r=tv(en,Z,h);if(!new Set(r).has(e))return a;let s=new Set(a);t?s.add(e):s.delete(e);let l=r.filter(e=>s.has(e));return h&&tt(h,l),l})},[h,en,Z]),ai=(0,a.useCallback)(e=>{let t=Z.find(t=>t.id===e);if(!t||h&&!t.thread_ids?.includes(h))return;let a=t.agents.map(e=>e.agent_id);ep(a),h&&tt(h,a)},[Z,h]),ao=(0,a.useCallback)(()=>{ev(e=>"dark"===e?"light":"dark")},[]),ad=()=>(0,t.jsx)("button",{type:"button",onClick:ao,"aria-label":"dark"===ex?"Switch to light theme":"Switch to dark theme",title:"dark"===ex?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===ex?(0,t.jsx)(tu,{className:"h-4 w-4",strokeWidth:1.75}):(0,t.jsx)(tc,{className:"h-4 w-4",strokeWidth:1.75})}),ac=(0,t.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,t.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:u&&!eb&&(0,t.jsx)("button",{type:"button",onClick:as,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,t.jsx)(td,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,t.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,t.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,t.jsx)(tn.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:2}),(0,t.jsx)("input",{ref:e9,type:"text",value:eO,onChange:e=>ez(e.target.value),onKeyDown:e=>{"Escape"===e.key&&tA()},placeholder:"Search messages…",className:"h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),tC?(0,t.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:eq?"…":e_}),(0,t.jsx)("button",{type:"button",onClick:tA,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,t.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[ad(),(0,t.jsx)(th,{}),eE&&(0,t.jsx)("button",{type:"button",onClick:()=>ek(!ew),"aria-label":ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,"aria-pressed":ew,title:ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ew?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,t.jsx)(to,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,t.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[u?(0,t.jsx)(o.WorkspaceSidebar,{threads:m,participants:en,activeThreadId:h,isLoading:w,isRestoringActiveThread:k,isCreating:b,deletingThreadId:j,renamingThreadId:y,onSelectThread:f,onCreateThread:x,onRenameThread:N,onDeleteThread:t3,activeParticipantIds:eu,onToggleParticipantActive:an,visible:eb,onToggle:as,projects:Z,onCreateProject:Q,onUpdateProject:el,onDeleteProject:ee,onAddAgentToProject:et,onRemoveAgentFromProject:ea,onReorderProjectAgents:er,onUpdateParticipant:al,onSelectProject:ai}):null,(0,t.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:k?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,t.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[eE?(0,t.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,t.jsx)("button",{onClick:()=>eD(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,t.jsx)(ti.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,t.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:tE}),tD&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0",style:{borderColor:tD.color+"40",color:tD.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:tD.color}}),tD.label]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,t.jsxs)("span",{className:"opacity-80",children:[t$.length," agents"]}),(0,t.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,t.jsxs)("span",{className:"opacity-80",children:["Updated ",function(e){if(!e)return"recently";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m ago`;let r=Math.floor(a/60);return r<24?`${r}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(tP)]}),tW&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,t.jsx)("span",{className:"opacity-80",children:tW})]})]})]}),(0,t.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:t$.map(e=>(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:e.name},e.id))}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>void tL(),disabled:tF,title:t_?"Learning is already running for this discussion":"Learn from this discussion",className:`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${tF?"cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:[tF?(0,t.jsx)(R,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,t.jsx)(tp.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,t.jsx)("span",{className:"hidden sm:inline",children:t_?"Learning...":"Learn from discussion"})]}),ad(),(0,t.jsx)(th,{}),(0,t.jsx)("button",{type:"button",onClick:()=>ek(!ew),"aria-label":ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,"aria-pressed":ew,title:ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ew?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,t.jsx)(to,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):ac,tI?(0,t.jsx)(eg,{query:tC,results:eU,total:e_,participants:en,threadTitleById:tS,isLoading:eq,error:eB,onSelectResult:t5}):eE?(0,t.jsx)(eh,{messages:M,streaming:W,participants:en,rootMessageId:eE,queued:J.some(e=>e.rootMessageId===eE&&"queued"===e.status),onClose:()=>eD(null),onCopyThread:tU,onAddToChat:tz,onDeleteThreadRoot:t4,onDeleteMessage:t8,highlightedMessageId:eJ||void 0,renderReplyComposer:ar,activeProcesses:q.filter(e=>["spawning","running"].includes(e.state)&&e.threadId===eE)}):(0,t.jsx)(eo,{messages:M,streaming:W,participants:en,onOpenThread:tZ,onCopyThread:tU,onAddToChat:tz,onDeleteThreadRoot:t4,onSummarize:tK,onCreateTasks:tV,onUpdateTaskDraft:tX,onBuildTasks:tY,summarizingThreads:eV,extractingTasks:e5,buildingDrafts:e8,taskDrafts:e0,deletingThreadRootId:eY,highlightedMessageId:eJ,shipModeThreads:eN,onUpdateMessageThreadStatus:h?(e,t)=>{T(a=>a.map(a=>a.id===e?{...a,threadStatus:t}:a)),S(h,e,t),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:t})})}:void 0,onUpdateMessageOutcomeNote:h?(e,t)=>{T(a=>a.map(a=>a.id===e?{...a,outcomeNote:t}:a)),$(h,e,t);let a=M.find(t=>t.id===e);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:a?.threadStatus??null,outcomeNote:t})})}:void 0}),!tI&&!eE&&(0,t.jsx)(e3,{onSend:t1,onStop:X,loading:"ready"!==K,activityStatus:K,participants:tM,projects:tT,projectGroups:aa,messages:M,commands:at,pendingThreadInsert:tR,onClearPendingThread:()=>tO(null),autoMode:eR,onAutoModeChange:t2})]})})}),c&&(0,t.jsx)(tm,{logs:P,participants:en,onClear:()=>void O(h),open:ew,onToggle:()=>ek(!1)}),(0,t.jsx)(ts,{isOpen:null!==eZ,title:eZ?.type==="thread"?"Delete Thread":"Delete Message",message:eZ?.type==="thread"?"This will permanently delete this thread and all of its replies. This action cannot be undone.":"This will permanently delete this message. This action cannot be undone.",preview:eZ?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:t9,onCancel:ae})]})}e.s(["ChatContainer",()=>tj],30426)}]);
8
+ ${a}`}if(D.hasFilePaths){let e=await eP(D.filePaths);e.contextPrefix&&(a=e.contextPrefix+a)}t&&A.pushEntry(t);let r=E.attachmentIds.length>0?E.attachmentIds:void 0,s=r?E.getAttachmentMetas():void 0;e(a,10,r,s,j??void 0),R.commands.clearContent(),I([]),E.clear(),D.clearFilePaths(),S.close(),M.close(),P.close()},[R,S,M,c,e,E,D,C,P,A]),W=S.isOpen&&S.filteredSuggestions.length>0;M.isOpen&&M.filteredCommands.length,T.isOpen&&T.suggestions.length,P.isOpen&&P.suggestions.length,W&&S.filteredSuggestions[S.activeIndex];let B=E.staged.some(e=>"uploading"===e.status),H=!R||R.isEmpty,J=n.find(e=>e.id===j)??null;return(0,t.jsx)("div",{className:"pb-6",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsx)(e1,{onDrop:E.stageFiles,children:(0,t.jsxs)("div",{className:"bg-white border border-gray-200 shadow-sm focus-within:border-gray-300 focus-within:ring-1 focus-within:ring-gray-300 dark:bg-gray-900 dark:border-gray-800 dark:shadow-lg dark:focus-within:border-gray-600 dark:focus-within:ring-gray-600 transition-all flex flex-col rounded-2xl",children:[g&&(0,t.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${x?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,t.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${x?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:x?"shipBgSweep 4s ease-in-out infinite":"none"}}),x&&(0,t.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((e,a)=>(0,t.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*a}%`,right:"-10%",width:`${20+a%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+a%3*.1,animation:`shipSpeedLine ${.8+a%4*.3}s ${.1*a}s ease-in-out infinite`}},a))}),(0,t.jsx)("div",{className:"relative px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${x?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:x?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,t.jsx)(es,{size:14})}),(0,t.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${x?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,t.jsx)("span",{className:`text-xs transition-colors duration-300 ${x?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,t.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${x?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:x?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>g(!x),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${x?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,t.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${x?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,t.jsxs)("div",{className:"p-1.5 transition-all",children:[E.staged.length>0&&(0,t.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,t.jsx)(e0,{attachments:E.staged,onRemove:E.remove,onRetry:E.retry})}),(0,t.jsxs)("div",{className:"p-2 relative",children:[(0,t.jsx)("input",{ref:w,type:"file",multiple:!0,className:"hidden",onChange:e=>{e.target.files&&e.target.files.length>0&&(E.stageFiles(e.target.files),e.target.value="")}}),(0,t.jsxs)("div",{className:"flex-1 relative",onClick:O,children:[(0,t.jsx)(ev.EditorContent,{editor:R,className:"composer-editor"}),(0,t.jsx)(eW,{isOpen:S.isOpen&&!M.isOpen,suggestions:S.filteredSuggestions,activeIndex:S.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:z}),(0,t.jsx)(eB,{isOpen:M.isOpen,commands:M.filteredCommands,activeIndex:M.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:F}),(0,t.jsx)(eY,{isOpen:T.isOpen,suggestions:T.suggestions,activeIndex:T.activeIndex,isLoading:T.isLoading,error:T.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:e=>{"folder"===e.type?L(e):U(e)},onAttachContents:T.onAttachContents}),(0,t.jsx)(eG,{isOpen:P.isOpen&&!M.isOpen&&!T.isOpen,suggestions:P.suggestions,activeIndex:P.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:_})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-gray-100 dark:border-gray-800/60 transition-colors",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:N,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,t.jsx)(e2,{className:"h-4 w-4",strokeWidth:1.75})}),(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===n.length?(0,t.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):n.map(e=>(0,t.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":j===e.id,onClick:()=>y(t=>t===e.id?null:e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),y(t=>t===e.id?null:e.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${j===e.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:e.name,children:[(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"w-full h-full rounded-full object-cover"}),b&&(0,t.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===v?"bg-amber-400":"bg-emerald-400"}`})]},e.id))})]}),J&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:J.name})]})]})]}),b?(0,t.jsx)("button",{type:"button",onClick:r,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,t.jsxs)("button",{type:"button",onClick:q,disabled:H&&!E.hasUploaded&&!D.hasFilePaths||B,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,t.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===v?"bg-emerald-400 animate-pulse":"queued"===v?"bg-amber-400":"bg-emerald-400"}`}),(0,t.jsx)("span",{children:"working"===v?"Working":"queued"===v?"Queued":"Ready"})]}),(0,t.jsxs)("span",{children:["Press ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}var e4=e.i(54238);let e6="agx-chat:project-agent-config",e8={activeParticipantIdsByThread:{}};function e7(){return void 0!==window.localStorage}function e9(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let r of e){if("string"!=typeof r)continue;let e=r.trim();!e||t.has(e)||(t.add(e),a.push(e))}return a}function te(){if(!e7())return{...e8};let e=window.localStorage.getItem(e6);if(!e)return{...e8};try{let t=JSON.parse(e).activeParticipantIdsByThread;if(!t||"object"!=typeof t)return{...e8};return{activeParticipantIdsByThread:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,e9(t)]))}}catch{return{...e8}}}function tt(e,t){let a=e.trim();if(!a)return;let r=te();r.activeParticipantIdsByThread[a]=e9(t);if(e7())try{window.localStorage.setItem(e6,JSON.stringify(r))}catch{}}var ta=e.i(2651),tr=e.i(37902);function ts({isOpen:e,title:r,message:s,preview:l,confirmLabel:n="Confirm",cancelLabel:i="Cancel",variant:o="default",onConfirm:d,onCancel:c}){let u=(0,a.useRef)(null),p=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(e){let e=setTimeout(()=>u.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let m=(0,a.useCallback)(e=>{"Escape"===e.key&&c()},[c]);if(!e)return null;let h="danger"===o;return(0,t.jsxs)("div",{style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&c(),onKeyDown:m,className:"jsx-1da17079bc733bcf fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",children:[(0,t.jsxs)("div",{ref:p,style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},className:"jsx-1da17079bc733bcf w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",children:[(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf px-6 pt-6 pb-3",children:(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf flex items-start gap-4",children:[h&&(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,t.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,className:"jsx-1da17079bc733bcf w-5 h-5 text-red-500",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0",className:"jsx-1da17079bc733bcf"})})}),(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"jsx-1da17079bc733bcf text-[15px] font-semibold text-[var(--foreground)]",children:r}),(0,t.jsx)("p",{className:"jsx-1da17079bc733bcf mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:s})]})]})}),l&&(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,t.jsxs)("p",{className:"jsx-1da17079bc733bcf text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",l,"”"]})}),(0,t.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 border-t border-[var(--card-border)]"}),(0,t.jsxs)("div",{className:"jsx-1da17079bc733bcf px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,t.jsx)("button",{onClick:c,className:"jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:i}),(0,t.jsx)("button",{ref:u,onClick:d,className:`jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${h?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:n})]})]}),(0,t.jsx)(tr.default,{id:"1da17079bc733bcf",children:"@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-in{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}"})]})}var tl=e.i(74049),tn=e.i(55436),ti=e.i(73375);let to=(0,b.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),td=(0,b.default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]),tc=(0,b.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),tu=(0,b.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var tp=e.i(10980);function tm({logs:e,participants:r,onClear:s,open:l,onToggle:n}){let[i,o]=(0,a.useState)(420),[d,c]=(0,a.useState)(null),u=(0,a.useRef)(null),p=(0,a.useRef)(!1),m=(0,a.useRef)(0),h=(0,a.useRef)(0),f=Object.fromEntries(r.map(e=>[e.id,e]));(0,a.useEffect)(()=>{l&&u.current?.scrollIntoView({behavior:"smooth"})},[e.length,l]);let x=(0,a.useCallback)(e=>{e.preventDefault(),p.current=!0,m.current=e.clientX,h.current=i,e.target.setPointerCapture(e.pointerId)},[i]),g=(0,a.useCallback)(e=>{if(!p.current)return;let t=m.current-e.clientX;o(Math.max(280,Math.min(h.current+t,.6*window.innerWidth)))},[]),v=(0,a.useCallback)(()=>{p.current=!1},[]);if(!l)return null;let b=d?e.filter(e=>e.participantId===d):e;return(0,t.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,t.jsx)("div",{onPointerDown:x,onPointerMove:g,onPointerUp:v,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,t.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,t.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:i},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,t.jsxs)("select",{value:d||"",onChange:e=>c(e.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,t.jsx)("option",{value:"",children:"All"}),r.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:s,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,t.jsx)("button",{onClick:n,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[b.map((e,a)=>{let r=f[e.participantId]?.name||e.participantId,s=f[e.participantId]?.color||"#888",l="stderr"===e.stream;return(0,t.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(e.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,t.jsx)("span",{className:"shrink-0",style:{color:s},children:r}),(0,t.jsx)("span",{className:l?"text-red-400":"text-[var(--muted-foreground)]",children:e.line})]},a)}),(0,t.jsx)("div",{ref:u})]})]})]})}function th(){let[e,r]=(0,a.useState)("unknown"),[s,l]=(0,a.useState)([]),[n,i]=(0,a.useState)(""),[o,c]=(0,a.useState)(!1),u=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/status");if(!e.ok)return void r("unknown");let t=await e.json();r("ok"===t.status?"ok":"degraded");let a=t.services.filter(e=>"agx-chat"===e.name||"agx-cloud"===e.name);l(a),i(new Date().toLocaleTimeString())}catch{r("unknown"),l([])}},[]);return(0,a.useEffect)(()=>{u();let e=setInterval(u,3e4);return()=>clearInterval(e)},[u]),(0,t.jsxs)("div",{className:"relative",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[(0,t.jsx)(d.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,t.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===e?"bg-emerald-400":"degraded"===e?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===e?"animate-pulse":""}`})}),o&&(0,t.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[s.length>0?(0,t.jsx)("ul",{className:"space-y-1.5",children:s.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:"ok"===e.status?"text-emerald-600":"error"===e.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===e.status?"Healthy":"error"===e.status?e.detail||"Error":"Unavailable"})]},e.name))}):(0,t.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),n&&(0,t.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",n]})]})]})}let tf="agx-theme";function tx(e,t=!1){return(t?e.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():e).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function tg(e){let t=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok)throw Error("Failed to load thread knowledge run");let a=await t.json().catch(()=>null);return a?.run??null}function tv(e,t,a){let r=new Set(e.map(e=>e.id)),s=a?t.find(e=>e.thread_ids?.includes(a)):t[0],l=s?s.agents.map(e=>e.agent_id).filter(e=>r.has(e)):[];return s?l:0===l.length?e.map(e=>e.id):l}function tb(e,t,a){let r=Object.fromEntries(t.map(e=>[e.id,e])),s=[];for(let t of e){let e="user"===t.role?"You":t.participantId?r[t.participantId]?.name||t.participantId:"Assistant",a=tx(t.content,"user"!==t.role);a&&(s.push(`**${e}:**`),s.push(""),s.push(a),s.push(""))}if(a){let e=function(e){if(0===e.tasks.length)return"";let t=new Map(e.tasks.map(e=>[e.id,e.title.trim()])),a=["## Draft Tasks",""];return e.projectName&&a.push(`Project: ${e.projectName}`),e.buildStatus&&a.push(`Build status: ${e.buildStatus.replaceAll("_"," ")}`),(e.projectName||e.buildStatus)&&a.push(""),e.tasks.forEach((r,s)=>{let l=tx(r.title)||`Task ${s+1}`,n=tx(r.description),i=(r.dependsOn||[]).map(e=>t.get(e)?.trim()).filter(e=>!!e),o=e.builtTaskIds?.[r.id];a.push(`${s+1}. [ ] **${l}**`),n&&a.push(n),i.length>0&&a.push(`Depends on: ${i.join(", ")}`),o&&a.push(`agx task id: \`${o}\``),a.push("")}),a.join("\n").trim()}(a);e&&s.push(e)}return s.join("\n").trim()}function tj({projectSlug:e,initialThreadId:d,initialRootMessageId:c,showSidebar:u=!0}={}){let p=(0,r.useSearchParams)(),{threads:m,activeThreadId:h,selectThread:f,createThread:x,deleteThread:g,updateThreadMessages:v,isCreating:b,deletingThreadId:j,renamingThreadId:y,isLoading:w,isRestoringActiveThread:k,renameThread:N,updateThreadStatus:C,updateThreadOutcomeNote:I,updateMessageThreadStatus:S,updateMessageOutcomeNote:$}=(0,i.useThreadState)(d),{messages:M,setMessages:T,logs:P,sendMessage:E,loadHistory:D,clearLogs:O,chatRuns:z,setChatRuns:U,stop:L,stopThread:_}=function(e){let[t,r]=(0,a.useState)([]),[n,i]=(0,a.useState)([]),[o,d]=(0,a.useState)([]),c=(0,a.useRef)(e),u=(0,a.useRef)(e);c.current=e,u.current!==e&&(u.current=e,r([]),i([]),d([]));let p=(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){r([]),i([]);return}let a=s(t);try{let[e,s]=await Promise.all([fetch(`/api/history?${a}`),fetch(`/api/logs?${l(t)}`)]);if(c.current!==t)return;e.ok&&r(await e.json()),s.ok&&i(await s.json())}catch{}},[]),m=(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){r([]),i([]);return}let a=s(t);await Promise.all([fetch(`/api/history?${a}`,{method:"DELETE"}),fetch(`/api/logs?${l(t)}`,{method:"DELETE"})]),c.current===t&&(r([]),i([]))},[]),h=(0,a.useCallback)(async(e,t=10,a,s,l,n,i,o)=>{let u=a?.trim()||c.current?.trim();if(!u)return;let p=Date.now(),m=crypto.randomUUID(),h={id:m,role:"user",participantId:null,content:e,timestamp:p,rootMessageId:s||null,parentMessageId:s||null,depth:+!!s,...n&&n.length>0?{attachments:n}:{}};r(e=>[...e,h]);try{let a=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:u,prompt:e,maxRounds:t,userMessageId:m,rootMessageId:s||void 0,attachmentIds:l?.length?l:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0})}),r=await a.json().catch(()=>null);a.ok&&r?.chatRunId&&d(e=>[{chatRunId:r.chatRunId,threadId:u,rootMessageId:s||m,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==r.chatRunId)])}catch{}return m},[]),f=(0,a.useCallback)(async()=>{let e=c.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),x=(0,a.useCallback)(async e=>{let t=c.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:t,setMessages:r,logs:n,sendMessage:h,loadHistory:p,clearHistory:m,clearLogs:(0,a.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();t?(await fetch(`/api/logs?${l(t)}`,{method:"DELETE"}).catch(()=>{}),c.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:d,stop:f,stopThread:x}}(h),{activeAgents:F,processes:q,streaming:W,chatRuns:B,poll:H}=(0,n.useProcessPolling)(h?{workspaceId:h}:null,{messages:M,setMessages:T}),J=(0,a.useMemo)(()=>{let e=Date.now(),t=new Map(B.map(e=>[e.chatRunId,e]));for(let a of z)!(!a.optimistic||t.has(a.chatRunId))&&(e-(a.enqueuedAt??0)>5e3||t.set(a.chatRunId,a));return Array.from(t.values()).filter(e=>"queued"===e.status||"running"===e.status)},[z,B]),K=F.size>0||J.some(e=>"running"===e.status)?"working":J.some(e=>"queued"===e.status)?"queued":"ready";(0,a.useEffect)(()=>{U(e=>{let t=Date.now(),a=new Map(e.filter(e=>"string"==typeof e.chatRunId&&e.chatRunId.length>0).map(e=>[e.chatRunId,e]));for(let e of B)e?.chatRunId&&a.set(e.chatRunId,e);return Array.from(a.values()).filter(e=>!!(!e.optimistic||B.some(t=>t.chatRunId===e.chatRunId))||t-(e.enqueuedAt??0)<=5e3).sort((e,t)=>String(e.chatRunId||"").localeCompare(String(t.chatRunId||"")))})},[B,U]);let V=(0,a.useCallback)(async e=>{await fetch(`/api/chat-runs/${encodeURIComponent(e)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(()=>{})},[]),X=(0,a.useCallback)(async()=>{let e=J[0];e?.chatRunId&&await V(e.chatRunId),await L(),await H()},[J,V,L,H]),Y=(0,a.useCallback)(async e=>{let t=J.find(t=>t.rootMessageId===e);t?.chatRunId&&await V(t.chatRunId),await _(e),await H()},[J,V,_,H]),G=(0,a.useRef)(X);(0,a.useEffect)(()=>{G.current=X},[X]);let{projects:Z,createProject:Q,deleteProject:ee,addAgent:et,removeAgent:ea,reorderAgents:er}=(0,tl.useProjectsWithAgents)(),{projects:es,updateProject:el}=(0,tl.useProjects)(),[en,ei]=(0,a.useState)([]),[ed,ec]=(0,a.useState)(!1),[eu,ep]=(0,a.useState)([]),[em,ef]=(0,a.useState)(!1),[ex,ev]=(0,a.useState)(()=>{let e=window.localStorage.getItem(tf);return"dark"===e||"light"===e?e:document.documentElement.classList.contains("dark")?"dark":"light"}),[eb,ej]=(0,a.useState)(!1),ey=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=(0,e4.loadWorkspaceSidebarVisible)();ey.current=!0,ej(e)},[]),(0,a.useEffect)(()=>{let e="dark"===ex;document.documentElement.classList.toggle("dark",e),document.documentElement.style.colorScheme=ex,window.localStorage.setItem(tf,ex)},[ex]);let[ew,ek]=(0,a.useState)(!1),[eN,eC]=(0,a.useState)(new Set),[eI,eS]=(0,a.useState)(!1),[e$,eM]=(0,a.useState)(!1),[eT,eP]=(0,a.useState)(null),[eE,eD]=(0,a.useState)(c??null),eA=p.get("open")?.trim()||null,eR=eE?eN.has(eE):eI;(0,a.useEffect)(()=>{if(!eE)return;let e=!1,t=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(eE)}`).then(e=>e.json()).then(t=>{e||eC(e=>{let a=e.has(eE);if(t.active&&!a){let t=new Set(e);return t.add(eE),t}if(!t.active&&a){let t=new Set(e);return t.delete(eE),t}return e})}).catch(()=>{})};t();let a=setInterval(t,1e4);return()=>{e=!0,clearInterval(a)}},[eE]),(0,a.useEffect)(()=>{let e=!1,t=()=>{fetch("/api/schedules").then(e=>e.json()).then(t=>{!e&&t.activeRootMessageIds&&eC(e=>{let a=new Set(t.activeRootMessageIds);for(let t of e)a.add(t);return a.size===e.size&&[...a].every(t=>e.has(t))?e:a})}).catch(()=>{})};t();let a=setInterval(t,15e3);return()=>{e=!0,clearInterval(a)}},[]),(0,a.useEffect)(()=>{if(eE){let t=e?`/projects/${e}/thread/${encodeURIComponent(h??d??"")}?open=${encodeURIComponent(eE)}`:`/thread/${eE}`;window.history.replaceState(null,"",t)}else window.history.replaceState(null,"",e?`/projects/${e}/thread/${encodeURIComponent(h??d??"")}`:"/")},[h,d,eE,e]),(0,a.useEffect)(()=>{e&&eD(e=>e===eA?e:eA)},[e,eA]),(0,a.useEffect)(()=>{c&&(async()=>{try{let e=await fetch(`/api/messages/${c}`);if(!e.ok)return;let{threadId:t}=await e.json();t&&f(t)}catch{}})()},[c,f]);let[eO,ez]=(0,a.useState)(""),[eU,eL]=(0,a.useState)([]),[e_,eF]=(0,a.useState)(0),[eq,eW]=(0,a.useState)(!1),[eB,eH]=(0,a.useState)(null),[eJ,eK]=(0,a.useState)(null),[eV,eX]=(0,a.useState)(new Set),[eY,eG]=(0,a.useState)(null),[eZ,eQ]=(0,a.useState)(null),[e0,e1]=(0,a.useState)({}),e2=(0,a.useCallback)(e=>{e1(t=>{let a="function"==typeof e?e(t):e;if(h)for(let[e,r]of Object.entries(a))t[e]!==r&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,messageId:e,draft:r})}).catch(()=>{});return a})},[h]),[e5,e6]=(0,a.useState)(new Set),[e8,e7]=(0,a.useState)(new Set),e9=(0,a.useRef)(null),tr=(0,a.useRef)(null),tx=(0,a.useRef)(null),ty=(0,a.useRef)(""),tw=(0,a.useCallback)(async(e=!1)=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();if(!Array.isArray(t))return;ei(t)}finally{e&&ec(!0)}},[]),tk=(0,a.useCallback)(async e=>{try{await (0,ta.updateUserPreferences)({threadSidebarVisible:e})}catch(e){console.error("Unable to persist thread sidebar preference",e)}},[ta.updateUserPreferences]),tN=(0,a.useCallback)(e=>{(0,e4.persistWorkspaceSidebarVisible)(e),tk(e)},[tk]),tC=eO.trim(),tI=tC.length>0,tS=(0,a.useMemo)(()=>Object.fromEntries(m.map(e=>[e.id,e.title?.trim()||"Untitled thread"])),[m]),t$=(0,a.useMemo)(()=>{if(!eE)return[];let e=new Set([M.find(e=>e.id===eE),...M.filter(e=>e.rootMessageId===eE)].filter(Boolean).map(e=>e.participantId).filter(Boolean));return Object.keys(W).forEach(t=>{W[t].rootMessageId===eE&&e.add(t)}),en.filter(t=>e.has(t.id))},[eE,M,W,en]),tM=(0,a.useMemo)(()=>{let e=new Map(en.map(e=>[e.id,e]));return eu.map(t=>e.get(t)).filter(Boolean)},[en,eu]),tT=(0,a.useMemo)(()=>es.map(e=>({id:e.id,name:e.name,slug:e.slug})),[es]),tP=(0,a.useMemo)(()=>{if(!eE)return 0;let e=[M.find(e=>e.id===eE),...M.filter(e=>e.rootMessageId===eE)].filter(Boolean);return 0===e.length?0:Math.max(...e.map(e=>e.timestamp))},[eE,M]),tE=(0,a.useMemo)(()=>{if(!eE)return"";let e=M.find(e=>e.id===eE);if(!e)return"Discussion";let t=e.content.trim();return t.length>60?t.slice(0,60)+"...":t},[eE,M]),tD=(0,a.useMemo)(()=>{if(!eE)return null;let e=M.find(e=>e.id===eE),t=e?.threadStatus??"active";return{value:t,...{active:{label:"Active",color:"#f59e0b"},paused:{label:"Paused",color:"#f97316"},"in-review":{label:"In Review",color:"#6b7280"},done:{label:"Done",color:"#3b82f6"},archived:{label:"Archived",color:"#9ca3af"}}[t]}},[eE,M]),tA=(0,a.useCallback)(()=>{ez(""),eL([]),eF(0),eH(null),eW(!1)},[]);(0,a.useCallback)(()=>{let e=tb(M,en);navigator.clipboard.writeText(e).then(()=>{ef(!0),setTimeout(()=>ef(!1),2e3)})},[M,en]);let[tR,tO]=(0,a.useState)(null),tz=(0,a.useCallback)(e=>{let t=M.find(t=>t.id===e);if(!t)return;let a=[t,...M.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)];tO({title:t.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:e,messages:a})},[M]),tU=(0,a.useCallback)(e=>{let t=tb([M.find(t=>t.id===e),...M.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)].filter(Boolean),en,e0[e]);navigator.clipboard.writeText(t).catch(e=>console.error("Failed to copy thread",e))},[M,en,e0]),tL=(0,a.useCallback)(async()=>{if(eE){eM(!0);try{let t=["repo"];e&&t.push("project");let a=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:eE,scopes:t})}),r=await a.json().catch(()=>null);if(!a.ok)throw Error("string"==typeof r?.error?r.error:"Request failed");eP(r?.run??null)}catch(t){let e=t instanceof Error?t.message:"Request failed";window.alert(`Failed to extract knowledge: ${e}`)}finally{eM(!1)}}},[eE,e]);(0,a.useEffect)(()=>{if(!eE){eP(null),eM(!1);return}let e=!1;return(async()=>{try{let t=await tg(eE);if(e)return;eP(t)}catch{e||eP(null)}})(),()=>{e=!0}},[eE]),(0,a.useEffect)(()=>{if(!eE||eT?.status!=="running")return;let e=!1,t=async()=>{try{let t=await tg(eE);if(e)return;eP(t)}catch{}};t();let a=window.setInterval(()=>{t()},2e3);return()=>{e=!0,window.clearInterval(a)}},[eE,eT?.status]);let t_=eT?.status==="running",tF=e$||t_,tq=(eT?.repoInsertedCount??0)+(eT?.projectInsertedCount??0),tW=(0,a.useMemo)(()=>{if(!eT)return null;if("running"===eT.status)return"Learning in progress";if("failed"===eT.status)return"Last learning run failed";if(tq>0){let e=1===tq?"insight":"insights";return`Learned ${tq} ${e}`}return"No new learnings"},[tq,eT]);(0,a.useEffect)(()=>{tw(!0)},[tw]);let tB=(0,a.useMemo)(()=>{if(!ed)return[];let e=new Set(en.map(e=>e.id)),t=new Set;for(let a of M)"assistant"===a.role&&a.participantId&&(e.has(a.participantId)||t.add(a.participantId));for(let a of Object.keys(W))e.has(a)||t.add(a);return Array.from(t).sort()},[M,en,ed,W]);(0,a.useEffect)(()=>{if(!ed)return;let e=tB.join("|");if(!e){ty.current="";return}ty.current!==e&&(ty.current=e,tw(!1))},[ed,tw,tB]),(0,a.useEffect)(()=>{if(!ed)return;let e=tv(en,Z,h);if(!h)return void ep(e);let t=function(e){let t=e.trim();if(!t)return null;let a=te();return t in a.activeParticipantIdsByThread?[...a.activeParticipantIdsByThread[t]]:null}(h);if(null===t)return void ep(e);let a=function(e,t){if(null===t)return e;let a=new Set(t);return e.filter(e=>a.has(e))}(e,t),r=a.length>0?a:e;(r.length!==t.length||r.some((e,a)=>t[a]!==e))&&tt(h,r),ep(r)},[h,en,ed,Z]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await (0,ta.fetchUserPreferences)();if(e)return;ej(e=>e===t.threadSidebarVisible?e:ey.current?(tk(e),e):((0,e4.persistWorkspaceSidebarVisible)(t.threadSidebarVisible),t.threadSidebarVisible))}catch(e){console.error("Failed to load user preferences",e)}})(),()=>{e=!0}},[tk]),(0,a.useEffect)(()=>{w||b||0!==m.length||x({id:"global",title:"General"})},[w,b,m.length,x]),(0,a.useEffect)(()=>()=>{tx.current&&window.clearTimeout(tx.current)},[]),(0,a.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()){e.preventDefault(),e9.current?.focus(),e9.current?.select();return}"Escape"===e.key&&tC&&tA()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[tA,tC]),(0,a.useEffect)(()=>{if(!tC){eL([]),eF(0),eH(null),eW(!1);return}let e=!1;eW(!0);let t=window.setTimeout(()=>{(async()=>{try{let t=new URLSearchParams({q:tC,limit:"20",offset:"0"}),a=await fetch(`/api/search?${t.toString()}`),r=await a.json().catch(()=>null);if(e)return;if(!a.ok){let e=r&&"object"==typeof r&&"error"in r?String(r.error):"Search failed";eL([]),eF(0),eH(e);return}eL(Array.isArray(r.results)?r.results:[]),eF("number"==typeof r.total?r.total:0),eH(null)}catch(t){if(e)return;console.error("Search request failed",t),eL([]),eF(0),eH("Search failed")}finally{e||eW(!1)}})()},300);return()=>{e=!0,window.clearTimeout(t)}},[tC]);let tH=(0,a.useRef)(null);(0,a.useEffect)(()=>{null!==tH.current&&tH.current!==h&&(G.current(),tr.current?(eD(tr.current),tr.current=null):eD(null)),tH.current=h,h&&(D(h),fetch(`/api/task-drafts?threadId=${encodeURIComponent(h)}`).then(e=>e.json()).then(e=>{e.drafts&&Object.keys(e.drafts).length>0?e1(e.drafts):e1({})}).catch(()=>e1({})))},[h,D]),(0,a.useEffect)(()=>{h&&v(h,M)},[h,M,v]);let tJ=(0,a.useCallback)((t,a,r=10,s)=>{if(!h||0===tM.length)return;let l=tM.map(e=>e.id);E(a,r,h,t,void 0,void 0,s&&l.includes(s)?[s,...l.filter(e=>e!==s)]:l,e)},[h,E,tM,e]),tK=(0,a.useCallback)(async e=>{if(h){if(0===tM.length)return void window.alert("Enable at least one agent in this project.");eX(t=>new Set(t).add(e));try{let t=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,rootMessageId:e,activeParticipantIds:tM.map(e=>e.id)})});t.ok?await D(h):console.error("Summarize failed:",await t.text())}catch(e){console.error("Summarize error:",e)}finally{eX(t=>{let a=new Set(t);return a.delete(e),a})}}},[h,D,tM]),tV=(0,a.useCallback)(async e=>{if(h){if(0===tM.length)return void window.alert("Enable at least one agent in this project.");e6(t=>new Set(t).add(e));try{let t=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,rootMessageId:e,activeParticipantIds:tM.map(e=>e.id)})});if(t.ok){let a=await t.json(),r={draftId:crypto.randomUUID(),revision:0,tasks:a.tasks,buildStatus:"idle"};e2(t=>({...t,[e]:r}))}else console.error("Task extraction failed:",await t.text())}catch(e){console.error("Task extraction error:",e)}finally{e6(t=>{let a=new Set(t);return a.delete(e),a})}}},[h,tM]),tX=(0,a.useCallback)((e,t)=>{e2(a=>({...a,[e]:t}))},[]),tY=(0,a.useCallback)(async(e,t,a,r)=>{if(h){e7(e=>new Set(e).add(t.draftId)),e2(s=>({...s,[e]:{...t,buildStatus:"building",projectId:a,projectName:r}}));try{let r=crypto.randomUUID(),s=await A(t.tasks,a,r,t.builtTaskIds),l={...t.builtTaskIds},n=!1;for(let e of s.results)"created"===e.status&&e.remoteTaskId?l[e.clientTaskId]=e.remoteTaskId:n=!0;e2(t=>({...t,[e]:{...t[e],buildId:r,buildStatus:n?"partial_failure":"done",builtTaskIds:l}}))}catch(t){console.error("Build error:",t),e2(t=>({...t,[e]:{...t[e],buildStatus:"partial_failure"}}))}finally{e7(e=>{let a=new Set(e);return a.delete(t.draftId),a})}}},[h]),tG=(0,a.useCallback)(()=>{if(!h)return;let e=(()=>{if(eE)return eE;let e=new Set(M.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=M.length-1;t>=0;t-=1){let a=M[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?tV(e):console.warn("No thread with replies available to extract tasks from")},[h,tV,M,eE]);(0,a.useCallback)(e=>{eD(e)},[]);let tZ=(0,a.useCallback)(e=>{eD(e)},[]),tQ=(0,a.useCallback)(e=>{let t=e?.trim()??"";t&&ez(t),requestAnimationFrame(()=>{e9.current?.focus(),t||e9.current?.select()})},[]),t0=(0,a.useCallback)(()=>{if(!h)return;let e=(()=>{if(eE)return eE;let e=new Set(M.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=M.length-1;t>=0;t-=1){let a=M[t];if(!a.rootMessageId&&e.has(a.id))return a.id}return null})();e?tK(e):console.warn("No thread with replies available to summarize")},[h,tK,M,eE]),t1=(0,a.useCallback)(async(t,a,r,s,l)=>{let n=t.match(/^\/search(?:\s+([\s\S]+))?$/i);if(n)return void tQ(n[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(t))return void t0();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(t)||/^\/create(?:\s+[\s\S]+)?$/i.test(t))return void tG();eR&&eE&&(eC(e=>{let t=new Set(e);return t.delete(eE),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:eE})}).catch(e=>console.error("Failed to deactivate schedule:",e)));let i=h;i||(i=(await x()).id);let o=tM.map(e=>e.id);if(0===o.length)return void window.alert("Enable at least one agent in this project.");let d=l&&o.includes(l)?[l,...o.filter(e=>e!==l)]:o;if(eE)return void await E(t,a,i,eE,r,s,d,e);let c=await E(t,a,i,null,r,s,d,e);eI&&c&&(eS(!1),eC(e=>{let t=new Set(e);return t.add(c),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:c})}).catch(e=>console.error("Failed to activate schedule for new thread:",e)))},[h,eR,eI,x,tQ,t0,eE,tM,E,e]),t2=(0,a.useCallback)(async e=>{if(!eE)return void eS(e);eC(t=>{let a=new Set(t);return e?a.add(eE):a.delete(eE),a});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e?"activate":"stop",rootMessageId:eE})})}catch(e){console.error("Failed to toggle autonomous schedule:",e)}},[eE]),t5=(0,a.useCallback)(e=>{let t=e.rootMessageId||e.messageId;e.threadId!==h?(tr.current=t,f(e.threadId)):eD(t),eK(null),window.requestAnimationFrame(()=>{eK(e.messageId),tx.current&&window.clearTimeout(tx.current),tx.current=window.setTimeout(()=>{eK(t=>t===e.messageId?null:t)},2e3)}),tA()},[h,tA,f]),t3=(0,a.useCallback)(async e=>{X(),await g(e)},[g,X]),t4=(0,a.useCallback)(e=>{if(!h||!e)return;let t=M.find(t=>t.id===e);eQ({type:"thread",id:e,preview:t?.content?.slice(0,120)||void 0})},[h,M]),t6=(0,a.useCallback)(async e=>{if(h){eG(e),Y(e);try{let t=new URLSearchParams({threadId:h,rootMessageId:e}),a=await fetch(`/api/history?${t.toString()}`,{method:"DELETE"});if(!a.ok)return void console.error("Failed to delete message thread",await a.text());eD(t=>t===e?null:t),eK(null);let r=M.filter(t=>t.id!==e&&t.rootMessageId!==e);v(h,r),await D(h)}catch(e){console.error("Failed to delete message thread",e)}finally{eG(t=>t===e?null:t)}}},[h,D,M,Y,v]),t8=(0,a.useCallback)(e=>{if(!h||!e)return;let t=M.find(t=>t.id===e);eQ({type:"message",id:e,preview:t?.content?.slice(0,120)||void 0})},[h,M]),t7=(0,a.useCallback)(async e=>{if(h)try{let t=new URLSearchParams({threadId:h,messageId:e}),a=await fetch(`/api/history?${t.toString()}`,{method:"DELETE"});if(!a.ok)return void console.error("Failed to delete message",await a.text());let r=M.filter(t=>t.id!==e);v(h,r),await D(h)}catch(e){console.error("Failed to delete message",e)}},[h,D,M,v]),t9=(0,a.useCallback)(()=>{eZ&&("thread"===eZ.type?t6(eZ.id):t7(eZ.id),eQ(null))},[eZ,t6,t7]),ae=(0,a.useCallback)(()=>{eQ(null)},[]),at=(0,a.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>tQ()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>t0()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>tG()}],[tQ,t0,tG]),aa=(0,a.useMemo)(()=>h?Z.filter(e=>e.thread_ids?.includes(h)):Z,[Z,h]),ar=(0,a.useCallback)(e=>{let a=q.some(t=>["spawning","running"].includes(t.state)&&t.threadId===e)||Object.values(W).some(t=>t.rootMessageId===e)?"working":J.some(t=>t.rootMessageId===e&&"queued"===t.status)?"queued":"ready";return(0,t.jsx)(e3,{onSend:(t,a,r,s,l)=>tJ(e,t,a,l),onStop:()=>Y(e),loading:"ready"!==a,activityStatus:a,participants:tM,projectGroups:aa,projects:tT,messages:M,commands:at,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:eR,onAutoModeChange:t2})},[tJ,Y,W,tM,aa,tT,at,M,eR,t2,q,J]),as=(0,a.useCallback)(()=>{ej(e=>{let t=!e;return tN(t),t})},[tN]),al=async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();ei(t=>t.map(t=>t.id===e.id?e:t))}},an=(0,a.useCallback)((e,t)=>{ep(a=>{let r=tv(en,Z,h);if(!new Set(r).has(e))return a;let s=new Set(a);t?s.add(e):s.delete(e);let l=r.filter(e=>s.has(e));return h&&tt(h,l),l})},[h,en,Z]),ai=(0,a.useCallback)(e=>{let t=Z.find(t=>t.id===e);if(!t||h&&!t.thread_ids?.includes(h))return;let a=t.agents.map(e=>e.agent_id);ep(a),h&&tt(h,a)},[Z,h]),ao=(0,a.useCallback)(()=>{ev(e=>"dark"===e?"light":"dark")},[]),ad=()=>(0,t.jsx)("button",{type:"button",onClick:ao,"aria-label":"dark"===ex?"Switch to light theme":"Switch to dark theme",title:"dark"===ex?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===ex?(0,t.jsx)(tu,{className:"h-4 w-4",strokeWidth:1.75}):(0,t.jsx)(tc,{className:"h-4 w-4",strokeWidth:1.75})}),ac=(0,t.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,t.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:u&&!eb&&(0,t.jsx)("button",{type:"button",onClick:as,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,t.jsx)(td,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,t.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,t.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,t.jsx)(tn.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:2}),(0,t.jsx)("input",{ref:e9,type:"text",value:eO,onChange:e=>ez(e.target.value),onKeyDown:e=>{"Escape"===e.key&&tA()},placeholder:"Search messages…",className:"h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),tC?(0,t.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:eq?"…":e_}),(0,t.jsx)("button",{type:"button",onClick:tA,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,t.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[ad(),(0,t.jsx)(th,{}),eE&&(0,t.jsx)("button",{type:"button",onClick:()=>ek(!ew),"aria-label":ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,"aria-pressed":ew,title:ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ew?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,t.jsx)(to,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,t.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[u?(0,t.jsx)(o.WorkspaceSidebar,{threads:m,participants:en,activeThreadId:h,isLoading:w,isRestoringActiveThread:k,isCreating:b,deletingThreadId:j,renamingThreadId:y,onSelectThread:f,onCreateThread:x,onRenameThread:N,onDeleteThread:t3,activeParticipantIds:eu,onToggleParticipantActive:an,visible:eb,onToggle:as,projects:Z,onCreateProject:Q,onUpdateProject:el,onDeleteProject:ee,onAddAgentToProject:et,onRemoveAgentFromProject:ea,onReorderProjectAgents:er,onUpdateParticipant:al,onSelectProject:ai}):null,(0,t.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:k?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,t.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[eE?(0,t.jsx)("div",{className:"border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,t.jsx)("button",{onClick:()=>eD(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,t.jsx)(ti.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,t.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:tE}),tD&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0",style:{borderColor:tD.color+"40",color:tD.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:tD.color}}),tD.label]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,t.jsxs)("span",{className:"opacity-80",children:[t$.length," agents"]}),(0,t.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,t.jsxs)("span",{className:"opacity-80",children:["Updated ",function(e){if(!e)return"recently";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let a=Math.floor(t/60);if(a<60)return`${a}m ago`;let r=Math.floor(a/60);return r<24?`${r}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(tP)]}),tW&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,t.jsx)("span",{className:"opacity-80",children:tW})]})]})]}),(0,t.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:t$.map(e=>(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:e.name},e.id))}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>void tL(),disabled:tF,title:t_?"Learning is already running for this discussion":"Learn from this discussion",className:`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${tF?"cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:[tF?(0,t.jsx)(R,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,t.jsx)(tp.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,t.jsx)("span",{className:"hidden sm:inline",children:t_?"Learning...":"Learn from discussion"})]}),ad(),(0,t.jsx)(th,{}),(0,t.jsx)("button",{type:"button",onClick:()=>ek(!ew),"aria-label":ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,"aria-pressed":ew,title:ew?"Hide logs":`Show logs${P.length>0?` (${P.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ew?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,t.jsx)(to,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):ac,tI?(0,t.jsx)(eg,{query:tC,results:eU,total:e_,participants:en,threadTitleById:tS,isLoading:eq,error:eB,onSelectResult:t5}):eE?(0,t.jsx)(eh,{messages:M,streaming:W,participants:en,rootMessageId:eE,queued:J.some(e=>e.rootMessageId===eE&&"queued"===e.status),onClose:()=>eD(null),onCopyThread:tU,onAddToChat:tz,onDeleteThreadRoot:t4,onDeleteMessage:t8,highlightedMessageId:eJ||void 0,renderReplyComposer:ar,activeProcesses:q.filter(e=>["spawning","running"].includes(e.state)&&e.threadId===eE)}):(0,t.jsx)(eo,{messages:M,streaming:W,participants:en,onOpenThread:tZ,onCopyThread:tU,onAddToChat:tz,onDeleteThreadRoot:t4,onSummarize:tK,onCreateTasks:tV,onUpdateTaskDraft:tX,onBuildTasks:tY,summarizingThreads:eV,extractingTasks:e5,buildingDrafts:e8,taskDrafts:e0,deletingThreadRootId:eY,highlightedMessageId:eJ,shipModeThreads:eN,onUpdateMessageThreadStatus:h?(e,t)=>{T(a=>a.map(a=>a.id===e?{...a,threadStatus:t}:a)),S(h,e,t),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:t})})}:void 0,onUpdateMessageOutcomeNote:h?(e,t)=>{T(a=>a.map(a=>a.id===e?{...a,outcomeNote:t}:a)),$(h,e,t);let a=M.find(t=>t.id===e);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:a?.threadStatus??null,outcomeNote:t})})}:void 0}),!tI&&!eE&&(0,t.jsx)(e3,{onSend:t1,onStop:X,loading:"ready"!==K,activityStatus:K,participants:tM,projects:tT,projectGroups:aa,messages:M,commands:at,pendingThreadInsert:tR,onClearPendingThread:()=>tO(null),autoMode:eR,onAutoModeChange:t2})]})})}),c&&(0,t.jsx)(tm,{logs:P,participants:en,onClear:()=>void O(h),open:ew,onToggle:()=>ek(!1)}),(0,t.jsx)(ts,{isOpen:null!==eZ,title:eZ?.type==="thread"?"Delete Discussion":"Delete Message",message:eZ?.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:eZ?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:t9,onCancel:ae})]})}e.s(["ChatContainer",()=>tj],30426)}]);