@mndrk/agx 2.4.5 → 2.4.7

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 (360) hide show
  1. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +4 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +33 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/app-paths-manifest.json +3 -0
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/build-manifest.json +11 -0
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/server-reference-manifest.json +4 -0
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js +13 -0
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.map +5 -0
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.nft.json +1 -0
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route_client-reference-manifest.js +2 -0
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/app-paths-manifest.json +3 -0
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/build-manifest.json +11 -0
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/server-reference-manifest.json +4 -0
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js +11 -0
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.map +5 -0
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.nft.json +1 -0
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route_client-reference-manifest.js +2 -0
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/app-paths-manifest.json +3 -0
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/build-manifest.json +11 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/server-reference-manifest.json +4 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js +11 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.map +5 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.nft.json +1 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route_client-reference-manifest.js +2 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +2 -2
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +2 -2
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/app-paths-manifest.json +3 -0
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/build-manifest.json +18 -0
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +11 -0
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/react-loadable-manifest.json +1 -0
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/server-reference-manifest.json +4 -0
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +16 -0
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.map +5 -0
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -0
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +2 -0
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +4 -0
  197. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_export_route_actions_e161f108.js +3 -0
  198. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_import_route_actions_10d2bce2.js +3 -0
  199. package/cloud-runtime/standalone/apps/local/.next/server/chunks/7255d_app_api_projects_[id]_objectives_[objectiveId]_program_route_actions_e6cdbc76.js +3 -0
  200. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1563ebff._.js +2 -2
  201. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3fdd57cb._.js +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__45af4365._.js +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__683b7ad7._.js +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__736d5859._.js +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__96b5ea56._.js +3 -0
  206. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ba72d342._.js +5 -5
  207. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3188470._.js +1 -1
  208. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb69343e._.js +3 -0
  209. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4d88e4dc._.js +91 -0
  211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c530bd77._.js +11 -0
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d69937f2._.js +91 -0
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e2867b32._.js +3 -0
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e32b0cab._.js +91 -0
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0da96_local__next-internal_server_app_projects_[slug]_thread_page_actions_3ceeb59b.js +3 -0
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__1e0fd816._.js +3 -0
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__42499ecf._.js +3 -0
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5f31e40b._.js +3 -0
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__636799fb._.js +3 -0
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__4bf7d5b9._.js → [root-of-the-server]__74436f61._.js} +2 -2
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9434d6d7._.js +3 -0
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd339da0._.js +3 -0
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +3 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e02a457c._.js +3 -0
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +3 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f802e7d1._.js +3 -0
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ff96bb77._.js +3 -0
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_6a2ba8f0._.js +3 -0
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7cb6b08a._.js +3 -0
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a0f42923._.js +7 -0
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a93c1059._.js +3 -0
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_components_PromptJobBoard_tsx_281b2873._.js → apps_local_04cb9fd5._.js} +3 -3
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_15502af8._.js +3 -0
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +3 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3c11c068._.js +8 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_89b49aad._.js +7 -0
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ae1a134f._.js +7 -0
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_2a02508d._.js +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_6dcfdd52._.js +1 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b8e580cc._.js +4 -0
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +2 -2
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js → apps_local_components_chat-ui_ChatContainer_tsx_47371955._.js} +2 -2
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +3 -3
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eb223411._.js +18 -0
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_7d1abfbf._.js → apps_local_f1c9872a._.js} +2 -2
  259. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +3 -0
  260. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  261. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  263. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  264. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  265. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08e75b35d6c52269.js +1 -0
  268. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +1 -0
  269. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{cb19d71dd7ffb935.js → 1585dd5f9ec4866a.js} +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +1 -0
  271. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +16 -0
  272. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2aa24a251622fd06.js +5 -0
  273. package/cloud-runtime/standalone/apps/local/.next/static/chunks/39513207112d6828.js +1 -0
  274. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{74e3a3e93be78db8.js → 40857295bb9226c4.js} +7 -7
  275. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8b5d6f5bade8c4ea.js → 41ae15220fc19bf7.js} +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5092f14c2bf43204.js +16 -0
  277. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5159169343ce6d2f.css +1 -0
  278. package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +1 -0
  279. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7bfbfcd072f8d61e.js +20 -0
  280. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7cf26dd04166f32f.js +6 -0
  281. package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dcb743d23feeca.js +16 -0
  282. package/cloud-runtime/standalone/apps/local/.next/static/chunks/93749b45e2700808.js +16 -0
  283. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{48feca51cf97c8a7.js → 9bb8f1406365af81.js} +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b4aa71020acae46f.js +16 -0
  285. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +1 -0
  286. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +16 -0
  287. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1600dd6ff8607d8f.js → c9a2c4b55bb76f4f.js} +6 -6
  288. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d6a9cc66254693b8.js +1 -0
  289. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{9e703dd5d95e9557.js → e3bdd1e0f385114e.js} +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{93b2b6aa0c9593f6.js → e6d4118b7c32d11c.js} +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6ffcd12eabd7c65e.js → f71d73895d228547.js} +1 -1
  292. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f750d2f1882d31a8.js +5 -0
  293. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -10
  294. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/program/route.ts +77 -0
  295. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/export/route.ts +35 -0
  296. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/import/route.ts +91 -0
  297. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +1 -8
  298. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  299. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +58 -2
  300. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/thread/page.tsx +14 -0
  301. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +15 -15
  302. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +80 -45
  303. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +51 -196
  304. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +662 -784
  305. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +85 -249
  306. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
  307. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +118 -0
  308. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSettings.tsx +81 -7
  309. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +15 -5
  310. package/cloud-runtime/standalone/apps/local/hooks/useProjectWorkspace.ts +117 -0
  311. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +14 -10
  312. package/cloud-runtime/standalone/apps/local/lib/project-workspace.ts +80 -0
  313. package/cloud-runtime/standalone/apps/local/lib/task-context.ts +39 -4
  314. package/cloud-runtime/standalone/apps/local/lib/workspace-yaml.ts +164 -0
  315. package/cloud-runtime/standalone/apps/local/src/objectives/program/index.ts +7 -0
  316. package/cloud-runtime/standalone/apps/local/src/objectives/program/repository.ts +60 -0
  317. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +12 -0
  318. package/cloud-runtime/standalone/apps/local/src/scheduling/status.ts +42 -0
  319. package/cloud-runtime/standalone/apps/local/worker/index.js +15 -10
  320. package/lib/commands/workspace.js +145 -7
  321. package/package.json +1 -1
  322. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_09d85861._.js +0 -91
  323. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +0 -11
  324. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2caf4398._.js +0 -91
  325. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_31ca7a35._.js +0 -91
  326. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +0 -3
  327. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +0 -3
  328. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +0 -3
  329. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +0 -3
  330. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +0 -3
  331. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +0 -3
  332. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7e3c2ea1._.js +0 -7
  333. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +0 -3
  334. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__dbda910b._.js +0 -7
  335. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +0 -3
  336. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +0 -7
  337. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_917d90b4._.js +0 -3
  338. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +0 -3
  339. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +0 -18
  340. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +0 -3
  341. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_a2835b49._.js +0 -3
  342. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_8cc1a335._.js +0 -3
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +0 -16
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/55a31773f8c2833f.js +0 -20
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +0 -16
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +0 -1
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7c8515a24aeea102.js +0 -1
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +0 -16
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/80446e085a3aad56.css +0 -1
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/87e4fb11329a358d.js +0 -1
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +0 -16
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/94a66d2d19268d25.js +0 -5
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9c29ef447bef1576.js +0 -5
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a9111ccc979d4933.js +0 -5
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +0 -1
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d2b34ade19d9d8da.js +0 -1
  357. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +0 -16
  358. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_buildManifest.js +0 -0
  359. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_clientMiddlewareManifest.json +0 -0
  360. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,574957,e=>{"use strict";var t=e.i(762281),a=e.i(935851),r=e.i(810605),s=e.i(66386),l=e.i(945028),n=e.i(490011),i=e.i(969039),o=e.i(44054),d=e.i(749410),c=e.i(307241),u=e.i(208343),p=e.i(884564),h=e.i(423709);function m(){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px] ml-1",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})}function f({participantId:e,participantName:a,participantColor:r,content:s}){let l=(0,h.stripMarkers)(s),n=l.length>0;return(0,t.jsxs)("div",{className:"flex gap-4 py-4 group transition-colors animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,t.jsx)(c.default,{href:`/agents/${e}`,className:"w-9 h-9 rounded-full bg-[var(--muted)] overflow-hidden shrink-0 shadow-sm border border-[var(--border)] hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e,36,r),alt:"",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[(0,t.jsx)(c.default,{href:`/agents/${e}`,className:"font-bold text-[15px] hover:underline",style:{color:r},children:a}),(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[var(--muted-foreground)] font-bold opacity-0 group-hover:opacity-100 transition-opacity",children:"Streaming"})]}),(0,t.jsx)("div",{className:"text-[15px] text-[var(--foreground)] leading-relaxed min-h-[1.5rem] flex items-center",children:n?(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(u.Markdown,{content:l}),(0,t.jsx)("span",{className:"inline-flex items-baseline ml-0.5",children:(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-indigo-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"})})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[var(--muted-foreground)] italic",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:"working"}),(0,t.jsx)(m,{})]})})]})]})}var x=e.i(575479),g=e.i(80673);function v({attachments:e,compact:a=!1}){if(0===e.length)return null;let r=e.filter(e=>e.mimeType.startsWith("image/")),s=e.filter(e=>!e.mimeType.startsWith("image/")),l=a?"max-w-[120px]":"max-w-[240px]",n=a?"max-h-[90px]":"max-h-[180px]";return(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[r.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.map(e=>(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"block rounded-lg overflow-hidden border border-[var(--border)] hover:border-[var(--border)] transition-colors",children:(0,t.jsx)("img",{src:e.url,alt:e.filename,className:`${l} ${n} object-cover`,loading:"lazy"})},e.id))}),s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>{var r;return(0,t.jsxs)("a",{href:e.url,download:e.filename,className:`inline-flex items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:border-[var(--border)] transition-colors ${a?"px-2 py-0.5 text-[11px]":"px-2.5 py-1 text-xs"}`,children:[(0,t.jsx)(x.FileText,{className:`text-[var(--muted-foreground)] shrink-0 ${a?"w-3 h-3":"w-3.5 h-3.5"}`}),(0,t.jsx)("span",{className:`truncate ${a?"max-w-[100px]":"max-w-[150px]"}`,children:e.filename}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0",children:(r=e.size)<1024?`${r}B`:r<1048576?`${(r/1024).toFixed(0)}KB`:`${(r/1048576).toFixed(1)}MB`}),(0,t.jsx)(g.Download,{className:`text-[var(--muted-foreground)] shrink-0 ${a?"w-2.5 h-2.5":"w-3 h-3"}`})]},e.id)})})]})}let b=(0,a.forwardRef)(({children:e,className:a="",...r},s)=>{let{isTouchLayout:l}=(0,o.useInputCapabilities)(),n=`absolute top-4 right-4 flex items-center gap-1 ${l?"opacity-100":"opacity-0 group-hover:opacity-100"} transition-opacity duration-200 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] shadow-md rounded-lg p-1 z-10 backdrop-blur-sm`,i=`${n} ${a}`.trim();return(0,t.jsx)("div",{ref:s,className:i,"data-touch-visible":l?"true":void 0,...r,children:e})});b.displayName="ActionToolbar";let j=()=>(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)] mx-1"}),w=(0,a.forwardRef)(({className:e="",variant:a="neutral",size:r="md",children:s,...l},n)=>{let{isTouchLayout:i}=(0,o.useInputCapabilities)(),d=`inline-flex items-center justify-center rounded-md transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:pointer-events-none ${i?({sm:"h-11 w-11 p-2",md:"h-11 w-11 p-2",lg:"h-12 w-12 p-2.5"})[r]:({sm:"p-1 w-6 h-6",md:"p-1.5 w-8 h-8",lg:"p-2 w-10 h-10"})[r]} ${({neutral:"text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]",ghost:"text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]",primary:"text-[var(--primary)] hover:text-[var(--primary-foreground)] hover:bg-[var(--primary-hover)]",destructive:"text-[var(--app-shell-muted)] hover:text-[var(--destructive)] hover:bg-[var(--destructive-muted)]"})[a]} ${e}`.trim();return(0,t.jsx)("button",{ref:n,className:d,"data-touch-target":i?"true":void 0,...l,children:s})});w.displayName="IconButton";var y=e.i(597628),N=e.i(19035),k=e.i(629155),S=e.i(906724),I=e.i(794731),C=e.i(169610),M=e.i(580873),T=e.i(363732);let R=(0,T.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),$=(0,T.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),A=(0,T.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);var P=e.i(878001),E=e.i(507193),_=e.i(638703);let z=[{value:"active",label:"Active",color:"#f59e0b"},{value:"paused",label:"Paused",color:"#f97316"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"done",label:"Done",color:"#3b82f6"},{value:"archived",label:"Archived",color:"#9ca3af"}],U=new Set(["done","in-review","archived"]),O="<!-- thread-summary -->";function L({messages:e,streaming:r,participants:s,onOpenThread:l,onCopyThread:n,onAddToChat:i,onDeleteThreadRoot:o,onSummarize:d,summarizingThreads:m,deletingThreadRootId:x,highlightedMessageId:g,onUpdateMessageThreadStatus:T,onUpdateMessageOutcomeNote:L,shipModeThreads:D}){let W=(0,a.useRef)(new Map),B=(0,a.useRef)(null),[F,q]=(0,a.useState)(null),[V,H]=(0,a.useState)("active"),[J,K]=(0,a.useState)("asc"),[G,Y]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=B.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:a,clientHeight:r}=e;Y(a-t-r>200)};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[]);let X=(0,a.useCallback)(()=>{let e=B.current;if(!e)return;let t="asc"===J?e.scrollHeight:0;e.scrollTo({top:t,behavior:"smooth"})},[J]),Q=Object.fromEntries(s.map(e=>[e.id,e])),Z=(0,a.useMemo)(()=>{let t=e.filter(e=>!e.rootMessageId);return"asc"===J?[...t].sort((e,t)=>e.timestamp-t.timestamp):[...t].sort((e,t)=>t.timestamp-e.timestamp)},[e,J]),ee=(0,a.useRef)(0);(0,a.useEffect)(()=>{if("asc"!==J){ee.current=Z.length;return}Z.length>ee.current&&B.current?.scrollTo({top:B.current.scrollHeight,behavior:"smooth"}),ee.current=Z.length},[Z.length,J]);let et={active:new Set(["active"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),done:new Set(["done"]),archived:new Set(["archived"])},ea=(0,a.useMemo)(()=>Z.filter(e=>et[V].has(e.threadStatus??"active")),[Z,V]),er=(0,a.useMemo)(()=>({active:Z.filter(e=>et.active.has(e.threadStatus??"active")).length,paused:Z.filter(e=>et.paused.has(e.threadStatus??"active")).length,"in-review":Z.filter(e=>et["in-review"].has(e.threadStatus??"active")).length,done:Z.filter(e=>et.done.has(e.threadStatus??"active")).length,archived:Z.filter(e=>et.archived.has(e.threadStatus??"active")).length}),[Z]),es=(0,a.useMemo)(()=>(function(e){let t=new Map;for(let a of e){let e=a.rootMessageId;if(!e)continue;let r=t.get(e);r||(r={rootMessageId:e,replyCount:0,participants:[],lastActivityAt:0,allReplies:[]},t.set(e,r)),r.replyCount++,r.lastActivityAt=Math.max(r.lastActivityAt,a.timestamp),r.lastReply=a,r.allReplies.push(a),a.participantId&&!r.participants.includes(a.participantId)?r.participants.push(a.participantId):a.participantId||r.participants.includes("user")||r.participants.push("user")}for(let e of t.values())e.allReplies.sort((e,t)=>e.timestamp-t.timestamp);return t})(e),[e]),el=(0,a.useCallback)((e,t)=>{t?W.current.set(e,t):W.current.delete(e)},[]),en=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!g){en.current=null;return}if(g===en.current)return;en.current=g;let e=W.current.get(g);e&&e.scrollIntoView({behavior:"smooth",block:"center"})},[g,e]),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,t.jsx)("div",{ref:B,className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[Z.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 mb-4",children:[(0,t.jsx)("div",{className:"flex items-center gap-1 p-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)]",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"done",label:"Done"},{key:"archived",label:"Archived"}].map(e=>{let a=er[e.key],r=V===e.key;return(0,t.jsxs)("button",{type:"button",onClick:()=>H(e.key),className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${r?"bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm":"text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"}`,children:[e.label,a>0&&(0,t.jsx)("span",{className:`ml-1.5 text-[10px] ${r?"opacity-60":"opacity-50"}`,children:a})]},e.key)})}),(0,t.jsxs)("button",{type:"button",onClick:()=>K(e=>"asc"===e?"desc":"asc"),title:"asc"===J?"Newest at bottom — click to flip":"Newest at top — click to flip",className:"inline-flex items-center gap-1 px-2 py-1.5 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)] hover:text-[var(--foreground)] text-[10px] font-bold transition-colors",children:["asc"===J?(0,t.jsx)(E.ArrowUp,{className:"w-3 h-3"}):(0,t.jsx)(P.ArrowDown,{className:"w-3 h-3"}),"asc"===J?"Oldest first":"Newest first"]})]}),0===Z.length&&0===Object.keys(r).length&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3",children:[(0,t.jsx)(y.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),Z.length>0&&0===ea.length&&(0,t.jsx)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2",children:(0,t.jsxs)("span",{className:"text-sm font-medium",children:["No ",V," threads"]})}),ea.map(e=>{let a,s=e.participantId?Q[e.participantId]:null,g=es.get(e.id),y=x===e.id,P=g?.allReplies.find(e=>e.content.startsWith(O)),E=P?P.content.slice(O.length).trim():null,_=e.threadStatus??"active",L=U.has(_),W=z.find(e=>e.value===_)??z[0],B=Object.values(r).some(t=>t.rootMessageId===e.id);if(L){let a;return(0,t.jsx)("div",{ref:t=>el(e.id,t),"data-message-id":e.id,className:`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${F===e.id?"z-50":""}`,onClick:()=>l?.(e.id),children:(0,t.jsxs)("div",{className:"px-4 py-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(k.Hash,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1",children:(0,h.stripMarkers)(e.content.split("\n")[0])}),D?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,t.jsx)(A,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),B&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),e.outcomeNote&&(0,t.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]",children:e.outcomeNote}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)] shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e.timestamp)}),T&&(a=F===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),q(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]",style:{borderColor:W.color+"40",color:W.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:W.color}}),W.label]}),a&&(0,t.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:z.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===_?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:t=>{t.stopPropagation(),T(e.id,a.value),q(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value))})]})),g&&g.replyCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] shrink-0",children:[g.replyCount," replies"]})]}),E&&(0,t.jsx)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:(0,t.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none",children:(0,t.jsx)(u.Markdown,{content:E,isUser:!1})})})]})},e.id)}return(0,t.jsxs)("div",{className:`max-w-2xl mx-auto surface-card mb-6 group relative ${F===e.id?"z-50":""}`,children:[(n||i||o)&&(0,t.jsxs)(b,{className:"z-10",children:[i&&(0,t.jsx)(w,{type:"button",variant:"primary",size:"sm",onClick:()=>i(e.id),title:"Mention in chat",children:(0,t.jsx)($,{className:"w-3.5 h-3.5"})}),(0,t.jsx)(w,{type:"button",variant:"neutral",size:"sm",onClick:()=>{navigator.clipboard.writeText(e.id)},title:"Copy message ID",children:(0,t.jsx)(R,{className:"w-3.5 h-3.5"})}),n&&(0,t.jsx)(w,{type:"button",variant:"neutral",size:"sm",onClick:()=>n(e.id),title:"Copy thread as markdown",children:(0,t.jsx)(N.Copy,{className:"w-3.5 h-3.5"})}),o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{}),(0,t.jsx)(w,{type:"button",variant:"destructive",size:"sm",onClick:()=>o(e.id),disabled:y,title:"Delete this thread",children:y?(0,t.jsx)(S.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,t.jsx)(I.Trash2,{className:"w-3.5 h-3.5"})})]})]}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"p-5",children:(0,t.jsxs)("div",{ref:t=>el(e.id,t),"data-message-id":e.id,className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==e.role&&(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow",children:s?(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(s.id,40,s.color),alt:s.name,className:"w-full h-full object-cover"}):(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e.participantId||"assistant",40),alt:e.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==e.role&&(0,t.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",children:s?.name||e.participantId||"Assistant"})}),(0,t.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>l?.(e.id),children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1",children:(0,h.stripMarkers)(e.content.split("\n")[0])}),(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)]",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(e.timestamp)}),T&&(a=F===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),q(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]",style:{borderColor:W.color+"40",color:W.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:W.color}}),W.label]}),a&&(0,t.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:z.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===_?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:t=>{t.stopPropagation(),T(e.id,a.value),q(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value))})]})),D?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,t.jsx)(A,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),B&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(e.content.length>80||e.content.includes("\n"))&&(0,t.jsx)("div",{className:"mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3",children:(0,t.jsx)(u.Markdown,{content:(0,h.stripMarkers)(e.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===e.role})})]})]})]}),e.attachments&&e.attachments.length>0&&(0,t.jsx)("div",{className:`mb-4 ${"user"!==e.role?"ml-[52px]":""}`,children:(0,t.jsx)(v,{attachments:e.attachments,compact:!0})}),E&&(0,t.jsx)("div",{className:"mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed",children:(0,t.jsx)(u.Markdown,{content:E,isUser:!1})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-2 mt-2 border-t border-[var(--card-border)]",children:[d&&g&&g.replyCount>0&&(0,t.jsxs)("button",{type:"button",onClick:()=>d(e.id),disabled:m?.has(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[m?.has(e.id)?(0,t.jsx)(S.Loader2,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,t.jsx)(M.Clock,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),m?.has(e.id)?"Summarizing…":"Summarize"]}),g&&g.replyCount>0&&l&&(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>l(e.id),children:[(0,t.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:[g.replyCount," replies"]}),(0,t.jsx)("div",{className:"flex -space-x-2",children:g.participants.slice(0,3).map(e=>{if("user"===e)return(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] flex items-center justify-center z-10",children:(0,t.jsx)(C.User,{className:"w-3 h-3 text-[var(--muted-foreground)]"})},"user");let a=Q[e];return a?(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e,24,a.color),alt:a.name,className:"w-6 h-6 rounded-full border-2 border-[var(--card-bg)] object-cover z-10"},e):(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] z-10"},e)})})]})]})]})}),Object.entries(r).filter(([,t])=>t.rootMessageId===e.id).map(([e,a])=>{let r=Q[e];return(0,t.jsx)("div",{className:"px-6 pb-4",children:(0,t.jsx)(f,{participantId:e,participantName:r?.name||e,participantColor:r?.color||"#888",content:a.content})},`streaming-${e}`)})]})]},e.id)})]})}),(0,t.jsx)(_.JumpToLatestButton,{visible:G&&Z.length>10,onClick:X})]})}let D=(0,T.default)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var W=e.i(519132);let B={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function F({type:e,count:a,participantIds:r}){let s=B[e],l=r.join(", "),n=l?`${s.label}: ${l}`:s.label;return(0,t.jsxs)("span",{title:n,className:"inline-flex items-center gap-1 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-2 py-0.5 text-xs text-[var(--foreground)]",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:s.symbol}),(0,t.jsx)("span",{className:"tabular-nums",children:a})]})}function q({reactions:e}){if(!e||0===e.length)return null;let a=[...e].sort((e,t)=>t.count!==e.count?t.count-e.count:e.type.localeCompare(t.type));return(0,t.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:a.map(e=>(0,t.jsx)(F,{type:e.type,count:e.count,participantIds:e.participantIds},e.type))})}var V=e.i(133232);function H({messages:e,streaming:r,participants:s,rootMessageId:l,queued:n=!1,onClose:i,onCopyThread:o,onAddToChat:d,onDeleteThreadRoot:m,onDeleteMessage:f,highlightedMessageId:x,renderReplyComposer:g,activeProcesses:y=[]}){let k=(0,a.useRef)(null),S=(0,a.useRef)(new Map),M=Object.fromEntries(s.map(e=>[e.id,e])),T=(0,a.useMemo)(()=>{let t=e.find(e=>e.id===l),a=e.filter(e=>e.rootMessageId===l).sort((e,t)=>e.timestamp-t.timestamp);return t?[t,...a]:a},[e,l]),$=(0,a.useRef)(null),A=(0,a.useRef)(!1),P=(0,a.useRef)(null),[E,z]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=$.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:a,clientHeight:r}=e,s=a-t-r;A.current=s>80,z(s>200)};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[]);let U=(0,a.useCallback)(()=>{k.current?.scrollIntoView({behavior:"smooth"})},[]);return(0,a.useEffect)(()=>{if(x&&x!==P.current){P.current=x;let e=S.current.get(x);e&&e.scrollIntoView({behavior:"smooth",block:"center"})}else x||A.current||(P.current=null,k.current?.scrollIntoView({behavior:"smooth"}))},[x,T,r]),(0,t.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-[var(--app-shell-bg)] transition-colors",children:[y.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] backdrop-blur-md transition-colors",children:[(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,t.jsx)(W.Sparkles,{className:"h-3.5 w-3.5 text-indigo-500",strokeWidth:1.75}),(0,t.jsx)("span",{className:"uppercase tracking-[0.16em]",children:"Working"})]}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:y.map(e=>{let a=M[e.agentId];return(0,t.jsxs)("div",{className:"relative",title:`${a?.name||e.agentId} — ${e.state}`,children:[(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e.agentId,24,a?.color),alt:a?.name||e.agentId,className:"w-6 h-6 rounded-full border-2 border-[var(--app-shell-surface)] shadow-sm"}),(0,t.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-[var(--app-shell-surface)] animate-pulse"})]},e.agentId)})})]}),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,t.jsx)("div",{ref:$,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,t.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[T.map(e=>{let a,r="user"===e.role,s=e.participantId?M[e.participantId]:null;return(0,t.jsxs)("div",{ref:t=>{var a;return a=e.id,void(t?S.current.set(a,t):S.current.delete(a))},"data-message-id":e.id,className:"group relative flex gap-4 ",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:r?(0,t.jsx)("div",{className:"w-9 h-9 bg-[var(--app-shell-subtle)] rounded-full flex items-center justify-center text-[var(--app-shell-muted)] shadow-sm",children:(0,t.jsx)(C.User,{className:"w-5 h-5"})}):(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,t.jsx)("img",{src:s?(0,p.agentAvatarUrl)(s.id,36,s.color):(0,p.agentAvatarUrl)(e.participantId||"assistant",36),alt:s?.name||e.participantId||"Assistant",className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[r?(0,t.jsx)("span",{className:"font-bold text-sm text-[var(--foreground)]",children:"You"}):(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:s?.color?{color:s.color}:void 0,children:s?.name||e.participantId||"Assistant"}),void 0===e.rootMessageId&&e.id===l&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] rounded font-mono uppercase",children:"ROOT"}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:(a=e.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a))})]}),(0,t.jsxs)("div",{className:`text-[15px] leading-relaxed ${e.id===x?"ring-2 ring-[var(--ring)] rounded-2xl p-2 -m-2":""}`,children:[r?(0,t.jsx)(u.Markdown,{content:(0,h.stripMarkers)(e.content),isUser:!0}):(0,t.jsx)(V.StreamingSegments,{content:(0,h.stripMarkers)(e.content)}),e.attachments&&e.attachments.length>0&&(0,t.jsx)(v,{attachments:e.attachments})]}),e.reactions&&e.reactions.length>0&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(q,{reactions:e.reactions})}),(0,t.jsxs)(b,{children:[e.id===l&&(0,t.jsx)(w,{variant:"primary",size:"sm",onClick:()=>navigator.clipboard.writeText(e.id),title:"Copy message ID",children:(0,t.jsx)(R,{className:"w-3.5 h-3.5"})}),e.id===l&&o&&(0,t.jsx)(w,{variant:"neutral",size:"sm",onClick:()=>o(e.id),title:"Copy Thread",children:(0,t.jsx)(D,{className:"w-3.5 h-3.5"})}),(0,t.jsx)(w,{variant:"neutral",size:"sm",onClick:()=>navigator.clipboard.writeText(e.content),title:"Copy as Markdown",children:(0,t.jsx)(N.Copy,{className:"w-3.5 h-3.5"})}),e.id===l&&m&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{}),(0,t.jsx)(w,{variant:"destructive",size:"sm",onClick:()=>m(e.id),title:"Delete Thread",children:(0,t.jsx)(I.Trash2,{className:"w-3.5 h-3.5"})})]}),e.id!==l&&f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{}),(0,t.jsx)(w,{variant:"destructive",size:"sm",onClick:()=>f(e.id),title:"Delete Message",children:(0,t.jsx)(I.Trash2,{className:"w-3.5 h-3.5"})})]})]})]})]},e.id)}),n&&0===y.length&&(0,t.jsxs)("div",{className:"flex gap-3 group relative opacity-80 animate-in fade-in slide-in-from-bottom-1 duration-300",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:(0,t.jsx)("div",{className:"w-7 h-7 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] flex items-center justify-center",children:(0,t.jsx)(W.Sparkles,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)]",strokeWidth:1.5})})}),(0,t.jsx)("div",{className:"flex-1 max-w-full overflow-hidden",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("span",{className:"text-xs tracking-wide text-[var(--app-shell-soft-text)]",children:"Processing"}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]})})]}),Object.entries(r).filter(([,e])=>e.rootMessageId===l).map(([e,a])=>{let r=M[e],s=a.content.trim().length>0,l=y.some(t=>t.agentId===e);return(0,t.jsxs)("div",{className:"flex gap-4 group relative animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,t.jsx)(c.default,{href:`/agents/${r?.id||e}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,t.jsx)("img",{src:r?(0,p.agentAvatarUrl)(r.id,36,r.color):(0,p.agentAvatarUrl)(e,36),alt:r?.name||e,className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(c.default,{href:`/agents/${r?.id||e}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:r?.color?{color:r.color}:void 0,children:r?.name||e}),!s&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),s&&(0,t.jsx)(V.StreamingSegments,{content:a.content,thoughts:a.thoughts}),s&&l&&(0,t.jsx)("div",{className:"flex items-center gap-2 pt-1",children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})})]})]},`streaming-${e}`)}),(0,t.jsx)("div",{ref:k,className:"h-4"})]})}),(0,t.jsx)(_.JumpToLatestButton,{visible:E&&T.length>10,onClick:U})]}),(0,t.jsx)("div",{className:"z-20 transition-colors duration-200",children:g(l)})]})}var J=e.i(51297);let K=(0,T.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function G({query:e,results:a,total:r,participants:s,threadTitleById:l,isLoading:n,error:i,onSelectResult:o,headerSlot:d}){let u=Object.fromEntries(s.map(e=>[e.id,e]));return(0,t.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[d?(0,t.jsx)("div",{className:"sticky top-0 z-20 bg-[var(--app-shell-subtle)]/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,t.jsx)("div",{className:"max-w-2xl mx-auto",children:d})}):null,(0,t.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Search results"}),(0,t.jsx)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:n?"Searching…":`${r} result${1===r?"":"s"} for "${e}"`}),i?(0,t.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:i}):null]}),n||i||0!==a.length?null:(0,t.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-[var(--app-shell-muted)]",children:[(0,t.jsx)(K,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,t.jsx)("div",{className:"space-y-3 pb-6",children:a.map(e=>{var a;let r=e.participantId?u[e.participantId]:null,s=l[e.threadId]||"Untitled thread",n="user"===e.role?"You":r?.name||e.participantId||"Assistant";return(0,t.jsxs)("button",{type:"button",onClick:()=>o(e),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-4 text-left transition hover:border-[var(--border)] hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-[var(--muted)]",children:"user"===e.role?(0,t.jsx)(C.User,{className:"h-4 w-4 text-[var(--foreground)]"}):r?(0,t.jsx)(c.default,{href:`/agents/${r.id}`,onClick:e=>e.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(r.id,32,r.color),alt:"",className:"h-full w-full object-cover"})}):(0,t.jsx)(J.Bot,{className:"h-4 w-4 text-[var(--foreground)]"})}),(0,t.jsxs)("div",{className:"min-w-0",children:["user"!==e.role&&r?(0,t.jsx)(c.default,{href:`/agents/${r.id}`,onClick:e=>e.stopPropagation(),className:"truncate text-sm font-semibold text-[var(--foreground)] hover:underline block",children:n}):(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:n}),(0,t.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:s})]})]}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:(a=e.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(a))})]}),(0,t.jsx)("p",{className:"text-sm leading-relaxed text-[var(--foreground)]",children:function(e){let a=e.split(/(<\/?mark>)/g),r=!1,s=[];for(let[e,l]of a.entries()){if("<mark>"===l){r=!0;continue}if("</mark>"===l){r=!1;continue}l&&s.push(r?(0,t.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:l},`${e}-mark`):(0,t.jsx)("span",{children:l},`${e}-text`))}return s}(e.snippet)})]},`${e.threadId}-${e.messageId}`)})})]})})}var Y=e.i(984242),X=e.i(481248),Q=e.i(169433);let Z="agx-chat:project-agent-config",ee={activeParticipantIdsByThread:{}};function et(){return void 0!==window.localStorage}function ea(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 er(){if(!et())return{...ee};let e=window.localStorage.getItem(Z);if(!e)return{...ee};try{let t=JSON.parse(e).activeParticipantIdsByThread;if(!t||"object"!=typeof t)return{...ee};return{activeParticipantIdsByThread:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,ea(t)]))}}catch{return{...ee}}}function es(e,t){let a=e.trim();if(!a)return;let r=er();r.activeParticipantIdsByThread[a]=ea(t);if(et())try{window.localStorage.setItem(Z,JSON.stringify(r))}catch{}}let el={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,fileIgnorePatterns:[]};function en(e){return e&&"object"==typeof e?{threadSidebarVisible:"boolean"==typeof e.threadSidebarVisible?e.threadSidebarVisible:el.threadSidebarVisible,workspaceRoots:Array.isArray(e.workspaceRoots)?e.workspaceRoots.filter(e=>"string"==typeof e):el.workspaceRoots,homeSearchConsent:"boolean"==typeof e.homeSearchConsent?e.homeSearchConsent:el.homeSearchConsent,fileIgnorePatterns:Array.isArray(e.fileIgnorePatterns)?e.fileIgnorePatterns.filter(e=>"string"==typeof e):el.fileIgnorePatterns}:el}let ei="/api/userPreferences";function eo(e){return e.json().then(e=>e&&"object"==typeof e?en(e.preferences??e):en(e)).catch(()=>en(null))}function ed(e){return e.statusText||`Failed to reach ${ei} (${e.status})`}async function ec(){let e=await fetch(ei,{cache:"no-store"});if(!e.ok)throw Error(ed(e));return eo(e)}async function eu(e){let t=await fetch(ei,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:e})});if(!t.ok)throw Error(ed(t));return eo(t)}var ep=e.i(990933),eh=e.i(352687),em=e.i(524123),ef=e.i(8707),ex=e.i(493141),eg=e.i(846279),eg=eg,ev=e.i(169729),eb=e.i(721571),ej=e.i(468947),ew=e.i(837958),ey=e.i(595807),ey=ey;function eN({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)(null),[h,m]=(0,a.useState)(!1),f=(0,a.useRef)(!1),x=(0,a.useRef)(0),g=(0,a.useRef)(0),v=Object.fromEntries(r.map(e=>[e.id,e]));(0,a.useEffect)(()=>{l&&u.current?.scrollIntoView({behavior:"smooth"})},[e.length,l]),(0,a.useEffect)(()=>{let e=p.current;if(!e)return;let t=()=>{m(e.scrollHeight-e.scrollTop-e.clientHeight>200)};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[l]);let b=(0,a.useCallback)(()=>{u.current?.scrollIntoView({behavior:"smooth"})},[]),j=(0,a.useCallback)(e=>{e.preventDefault(),f.current=!0,x.current=e.clientX,g.current=i,e.target.setPointerCapture(e.pointerId)},[i]),w=(0,a.useCallback)(e=>{if(!f.current)return;let t=x.current-e.clientX;o(Math.max(280,Math.min(g.current+t,.6*window.innerWidth)))},[]),y=(0,a.useCallback)(()=>{f.current=!1},[]);if(!l)return null;let N=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:j,onPointerMove:w,onPointerUp:y,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:"relative flex-1 min-h-0 flex flex-col",children:[(0,t.jsxs)("div",{ref:p,className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[N.map((e,a)=>{let r=v[e.participantId]?.name||e.participantId,s=v[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})]}),(0,t.jsx)(_.JumpToLatestButton,{visible:h&&N.length>20,onClick:b})]})]})]})}var ek=e.i(524780);let eS="agx-theme";async function eI(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(e=>(console.warn("[ChatContainer] failed to parse thread knowledge response:",e),null));return a?.run??null}function eC(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 eM(e,t){let a=Object.fromEntries(t.map(e=>[e.id,e])),r=[];for(let t of e){let e="user"===t.role?"You":t.participantId?a[t.participantId]?.name||t.participantId:"Assistant",s=function(e,t=!1){return(t?e.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():e).replaceAll("<!-- thread-summary -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}(t.content,"user"!==t.role);s&&(r.push(`**${e}:**`),r.push(""),r.push(s),r.push(""))}return r.join("\n").trim()}function eT({projectSlug:e,initialThreadId:c,initialRootMessageId:u,showSidebar:p=!0}={}){let{isTouchLayout:h}=(0,o.useInputCapabilities)(),{getSelection:m,pushSelection:f,replaceSelection:x}=(0,s.useUrlSelection)(),{threads:g,activeThreadId:v,selectThread:b,createThread:j,deleteThread:w,updateThreadMessages:y,isCreating:N,deletingThreadId:k,renamingThreadId:S,isLoading:I,isRestoringActiveThread:C,renameThread:M,updateThreadStatus:T,updateThreadOutcomeNote:R,updateMessageThreadStatus:$,updateMessageOutcomeNote:A}=(0,i.useThreadState)(c),{messages:P,setMessages:E,logs:_,sendMessage:z,loadHistory:U,clearLogs:O,chatRuns:D,setChatRuns:W,stop:B,stopThread:F}=(0,l.useGroupChat)(v),{activeAgents:q,processes:V,streaming:J,chatRuns:K,poll:Z}=(0,n.useProcessPolling)(v?{workspaceId:v}:null,{messages:P,setMessages:E}),ee=(0,a.useMemo)(()=>{let e=Date.now(),t=new Map(K.map(e=>[e.chatRunId,e]));for(let a of D)!(!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)},[D,K]),et=q.size>0||ee.some(e=>"running"===e.status)?"working":ee.some(e=>"queued"===e.status)?"queued":"ready";(0,a.useEffect)(()=>{W(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 K)e?.chatRunId&&a.set(e.chatRunId,e);return Array.from(a.values()).filter(e=>!!(!e.optimistic||K.some(t=>t.chatRunId===e.chatRunId))||t-(e.enqueuedAt??0)<=5e3).sort((e,t)=>String(e.chatRunId||"").localeCompare(String(t.chatRunId||"")))})},[K,W]);let ea=(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(e=>console.warn("[ChatContainer] cancel chat run failed:",e))},[]),el=(0,a.useCallback)(async()=>{let e=ee[0];e?.chatRunId&&await ea(e.chatRunId),await B(),await Z()},[ee,ea,B,Z]),en=(0,a.useCallback)(async e=>{let t=ee.find(t=>t.rootMessageId===e);t?.chatRunId&&await ea(t.chatRunId),await F(e),await Z()},[ee,ea,F,Z]),ei=(0,a.useRef)(el);(0,a.useEffect)(()=>{ei.current=el},[el]);let{projects:eo,createProject:ed,deleteProject:eR,addAgent:e$,removeAgent:eA,reorderAgents:eP}=(0,em.useProjectsWithAgents)(),{projects:eE,updateProject:e_}=(0,em.useProjects)(),ez=(0,a.useMemo)(()=>v?eo.filter(e=>e.thread_ids?.includes(v)):eo,[eo,v]),eU=(0,a.useMemo)(()=>e||ez[0]?.slug||void 0,[e,ez]),eO=(0,a.useMemo)(()=>ez[0]?.id??void 0,[ez]),[eL,eD]=(0,a.useState)([]),[eW,eB]=(0,a.useState)(!1),[eF,eq]=(0,a.useState)([]),[eV,eH]=(0,a.useState)(!1),[eJ,eK]=(0,a.useState)(()=>{let e=window.localStorage.getItem(eS);return"dark"===e||"light"===e?e:document.documentElement.classList.contains("dark")?"dark":"light"}),[eG,eY]=(0,a.useState)(!1),[eX,eQ]=(0,a.useState)(368),eZ=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=(0,X.loadWorkspaceSidebarVisible)();eZ.current=!0,eY(e),eQ((0,Q.loadWorkspaceWidth)()||368)},[]),(0,a.useEffect)(()=>{let e="dark"===eJ;document.documentElement.classList.toggle("dark",e),document.documentElement.style.colorScheme=eJ,window.localStorage.setItem(eS,eJ)},[eJ]);let[e0,e1]=(0,a.useState)(!1),[e5,e2]=(0,a.useState)(new Set),[e3,e4]=(0,a.useState)(!1),[e6,e8]=(0,a.useState)(!1),[e7,e9]=(0,a.useState)(null),te=m("open"),tt=m("message"),ta=e?te??u??null:u??null,tr=ta?e5.has(ta):e3;(0,a.useEffect)(()=>{if(!ta)return;let e=!1,t=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(ta)}`).then(e=>e.json()).then(t=>{e||e2(e=>{let a=e.has(ta);if(t.active&&!a){let t=new Set(e);return t.add(ta),t}if(!t.active&&a){let t=new Set(e);return t.delete(ta),t}return e})}).catch(e=>console.warn("[ChatContainer] check auto-mode status failed:",e))};t();let a=setInterval(t,r.UI_POLL_CHAT_CHECK_MS);return()=>{e=!0,clearInterval(a)}},[ta]),(0,a.useEffect)(()=>{let e=!1,t=()=>{fetch("/api/schedules").then(e=>e.json()).then(t=>{!e&&t.activeRootMessageIds&&e2(e=>{let a=new Set(t.activeRootMessageIds);return a.size===e.size&&[...a].every(t=>e.has(t))?e:a})}).catch(e=>console.warn("[ChatContainer] fetch schedules failed:",e))};t();let a=setInterval(t,r.UI_POLL_CHAT_ALT_MS);return()=>{e=!0,clearInterval(a)}},[]);let ts=(0,a.useCallback)((t,a={})=>{let r=a.replace?x:f;if(e){let s=a.threadId??v??c??null;if(!s)return;r({open:t,message:a.messageId??null},`/projects/${e}/thread/${encodeURIComponent(s)}`);return}t?r({message:a.messageId??null},`/thread/${encodeURIComponent(t)}`):r({message:null},"/")},[v,c,e,f,x]);(0,a.useEffect)(()=>{u&&(async()=>{try{let e=await fetch(`/api/messages/${u}`);if(!e.ok)return;let{threadId:t}=await e.json();t&&b(t)}catch{}})()},[u,b]);let[tl,tn]=(0,a.useState)(""),[ti,to]=(0,a.useState)([]),[td,tc]=(0,a.useState)(0),[tu,tp]=(0,a.useState)(!1),[th,tm]=(0,a.useState)(null),[tf,tx]=(0,a.useState)(new Set),[tg,tv]=(0,a.useState)(null),[tb,tj]=(0,a.useState)(null),tw=(0,a.useRef)(null),ty=(0,a.useRef)(""),tN=(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;eD(t)}finally{e&&eB(!0)}},[]),tk=(0,a.useCallback)(async e=>{try{await eu({threadSidebarVisible:e})}catch(e){console.error("Unable to persist thread sidebar preference",e)}},[eu]),tS=(0,a.useCallback)(e=>{(0,X.persistWorkspaceSidebarVisible)(e),tk(e)},[tk]),tI=tl.trim(),tC=tI.length>0,tM=(0,a.useMemo)(()=>Object.fromEntries(g.map(e=>[e.id,e.title?.trim()||"Untitled thread"])),[g]),tT=(0,a.useMemo)(()=>{if(!ta)return[];let e=new Set([P.find(e=>e.id===ta),...P.filter(e=>e.rootMessageId===ta)].filter(Boolean).map(e=>e.participantId).filter(Boolean));return Object.keys(J).forEach(t=>{J[t].rootMessageId===ta&&e.add(t)}),eL.filter(t=>e.has(t.id))},[ta,P,J,eL]),tR=(0,a.useMemo)(()=>{let e=new Map(eL.map(e=>[e.id,e]));return eF.map(t=>e.get(t)).filter(Boolean)},[eL,eF]),t$=(0,a.useMemo)(()=>eE.map(e=>({id:e.id,name:e.name,slug:e.slug})),[eE]),tA=(0,a.useMemo)(()=>{if(!ta)return 0;let e=[P.find(e=>e.id===ta),...P.filter(e=>e.rootMessageId===ta)].filter(Boolean);return 0===e.length?0:Math.max(...e.map(e=>e.timestamp))},[ta,P]),tP=(0,a.useMemo)(()=>{if(!ta)return"";let e=P.find(e=>e.id===ta);if(!e)return"Discussion";let t=e.content.trim();return t.length>60?t.slice(0,60)+"...":t},[ta,P]),tE=(0,a.useMemo)(()=>{if(!ta)return null;let e=P.find(e=>e.id===ta),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]}},[ta,P]);(0,a.useEffect)(()=>{if(!tt)return;let e=P.find(e=>e.id===tt)??null;if(e){let t=e.rootMessageId||e.id;t!==ta&&ts(t,{messageId:tt,replace:!0});return}!ta||[P.find(e=>e.id===ta),...P.filter(e=>e.rootMessageId===ta)].filter(Boolean).length>0&&x({message:null})},[P,ts,ta,x,tt]);let t_=(0,a.useCallback)(()=>{tn(""),to([]),tc(0),tm(null),tp(!1)},[]);(0,a.useCallback)(()=>{let e=eM(P,eL);navigator.clipboard.writeText(e).then(()=>{eH(!0),setTimeout(()=>eH(!1),2e3)})},[P,eL]);let[tz,tU]=(0,a.useState)(null),tO=(0,a.useCallback)(e=>{let t=P.find(t=>t.id===e);if(!t)return;let a=[t,...P.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)];tU({title:t.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:e,messages:a})},[P]),tL=(0,a.useCallback)(e=>{let t=eM([P.find(t=>t.id===e),...P.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)].filter(Boolean),eL);navigator.clipboard.writeText(t).catch(e=>console.error("Failed to copy thread",e))},[P,eL]),tD=(0,a.useCallback)(async()=>{if(ta){e8(!0);try{let e=["repo"];eU&&e.push("project");let t=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:ta,scopes:e})}),a=await t.json().catch(e=>(console.warn("[ChatContainer] failed to parse knowledge extraction response:",e),null));if(!t.ok)throw Error("string"==typeof a?.error?a.error:"Request failed");e9(a?.run??null)}catch(t){let e=t instanceof Error?t.message:"Request failed";window.alert(`Failed to extract knowledge: ${e}`)}finally{e8(!1)}}},[ta,eU]);(0,a.useEffect)(()=>{if(!ta){e9(null),e8(!1);return}let e=!1;return(async()=>{try{let t=await eI(ta);if(e)return;e9(t)}catch{e||e9(null)}})(),()=>{e=!0}},[ta]),(0,a.useEffect)(()=>{if(!ta||e7?.status!=="running")return;let e=!1,t=async()=>{try{let t=await eI(ta);if(e)return;e9(t)}catch{}};t();let a=window.setInterval(()=>{t()},2e3);return()=>{e=!0,window.clearInterval(a)}},[ta,e7?.status]);let tW=e7?.status==="running",tB=e6||tW,tF=(e7?.repoInsertedCount??0)+(e7?.projectInsertedCount??0),tq=(0,a.useMemo)(()=>{if(!e7)return null;if("running"===e7.status)return"Learning in progress";if("failed"===e7.status)return"Last learning run failed";if(tF>0){let e=1===tF?"insight":"insights";return`Learned ${tF} ${e}`}return"No new learnings"},[tF,e7]);(0,a.useEffect)(()=>{tN(!0)},[tN]);let tV=(0,a.useMemo)(()=>{if(!eW)return[];let e=new Set(eL.map(e=>e.id)),t=new Set;for(let a of P)"assistant"===a.role&&a.participantId&&(e.has(a.participantId)||t.add(a.participantId));for(let a of Object.keys(J))e.has(a)||t.add(a);return Array.from(t).sort()},[P,eL,eW,J]);(0,a.useEffect)(()=>{if(!eW)return;let e=tV.join("|");if(!e){ty.current="";return}ty.current!==e&&(ty.current=e,tN(!1))},[eW,tN,tV]),(0,a.useEffect)(()=>{if(!eW)return;let e=eC(eL,eo,v);if(!v)return void eq(e);let t=function(e){let t=e.trim();if(!t)return null;let a=er();return t in a.activeParticipantIdsByThread?[...a.activeParticipantIdsByThread[t]]:null}(v);if(null===t)return void eq(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))&&es(v,r),eq(r)},[v,eL,eW,eo]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await ec();if(e)return;eY(e=>e===t.threadSidebarVisible?e:eZ.current?(tk(e),e):((0,X.persistWorkspaceSidebarVisible)(t.threadSidebarVisible),t.threadSidebarVisible))}catch(e){console.error("Failed to load user preferences",e)}})(),()=>{e=!0}},[tk]),(0,a.useEffect)(()=>{I||N||0!==g.length||j({id:"global",title:"General"})},[I,N,g.length,j]),(0,a.useEffect)(()=>{if(e)return;let t=e=>{if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()){e.preventDefault(),tw.current?.focus(),tw.current?.select();return}"Escape"===e.key&&tI&&t_()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[t_,tI,e]),(0,a.useEffect)(()=>{if(!tI){to([]),tc(0),tm(null),tp(!1);return}let e=!1;tp(!0);let t=window.setTimeout(()=>{(async()=>{try{let t=new URLSearchParams({q:tI,limit:"20",offset:"0"}),a=await fetch(`/api/search?${t.toString()}`),r=await a.json().catch(e=>(console.warn("[ChatContainer] failed to parse search response:",e),null));if(e)return;if(!a.ok){let e=r&&"object"==typeof r&&"error"in r?String(r.error):"Search failed";to([]),tc(0),tm(e);return}to(Array.isArray(r.results)?r.results:[]),tc("number"==typeof r.total?r.total:0),tm(null)}catch(t){if(e)return;console.error("Search request failed",t),to([]),tc(0),tm("Search failed")}finally{e||tp(!1)}})()},300);return()=>{e=!0,window.clearTimeout(t)}},[tI]);let tH=(0,a.useRef)(null);(0,a.useEffect)(()=>{null!==tH.current&&tH.current!==v&&ei.current(),tH.current=v,v&&U(v)},[v,U]),(0,a.useEffect)(()=>{v&&y(v,P)},[v,P,y]);let tJ=(0,a.useCallback)((e,t,a=10,r,s,l)=>{v&&0!==tR.length&&z(t,a,v,e,void 0,void 0,(0,ep.orderParticipantIds)(tR.map(e=>e.id),r),eU,s,l)},[v,z,tR,eU]),tK=(0,a.useCallback)(async e=>{if(v){if(0===tR.length)return void window.alert("Enable at least one agent in this project.");tx(t=>new Set(t).add(e));try{let t=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:v,rootMessageId:e,activeParticipantIds:tR.map(e=>e.id)})});t.ok?await U(v):console.error("Summarize failed:",await t.text())}catch(e){console.error("Summarize error:",e)}finally{tx(t=>{let a=new Set(t);return a.delete(e),a})}}},[v,U,tR]);(0,a.useCallback)(e=>{ts(e)},[ts]);let tG=(0,a.useCallback)(e=>{ts(e)},[ts]),tY=(0,a.useCallback)(e=>{let t=e?.trim()??"";t&&tn(t),requestAnimationFrame(()=>{tw.current?.focus(),t||tw.current?.select()})},[]),tX=(0,a.useCallback)(()=>{if(!v)return;let e=(()=>{if(ta)return ta;let e=new Set(P.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=P.length-1;t>=0;t-=1){let a=P[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")},[v,tK,P,ta]),tQ=(0,a.useCallback)(async(e,t,a,r,s,l,n)=>{let i=e.match(/^\/search(?:\s+([\s\S]+))?$/i);if(i)return void tY(i[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(e))return void tX();let o=v;o||(o=(await j()).id);let d=tR.map(e=>e.id);if(0===d.length)return void window.alert("Enable at least one agent in this project.");let c=(0,ep.orderParticipantIds)(d,s);if(ta)return void await z(e,t,o,ta,a,r,c,eU,l,n);let u=await z(e,t,o,null,a,r,c,eU,l,n);e3&&u&&(e4(!1),e2(e=>{let t=new Set(e);return t.add(u),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:u})}).catch(e=>console.error("Failed to activate schedule for new thread:",e)))},[v,e3,j,tY,tX,ta,tR,z,eU]),tZ=(0,a.useCallback)(async e=>{if(!ta)return void e4(e);e2(t=>{let a=new Set(t);return e?a.add(ta):a.delete(ta),a});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e?"activate":"stop",rootMessageId:ta})})}catch(e){console.error("Failed to toggle autonomous schedule:",e)}},[ta]),t0=(0,a.useCallback)(e=>{ts(e.rootMessageId||e.messageId,{messageId:e.messageId,threadId:e.threadId}),t_()},[t_,ts]),t1=(0,a.useCallback)(async e=>{el(),await w(e)},[w,el]),t5=(0,a.useCallback)(e=>{if(!v||!e)return;let t=P.find(t=>t.id===e);tj({type:"thread",id:e,preview:t?.content?.slice(0,120)||void 0})},[v,P]),t2=(0,a.useCallback)(async e=>{if(v){tv(e),en(e);try{let t=new URLSearchParams({threadId:v,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());let r=tt?P.find(e=>e.id===tt)??null:null,s=r?r.rootMessageId||r.id:null;ta===e?ts(null,{replace:!0}):s===e&&x({message:null});let l=P.filter(t=>t.id!==e&&t.rootMessageId!==e);y(v,l),await U(v)}catch(e){console.error("Failed to delete message thread",e)}finally{tv(t=>t===e?null:t)}}},[v,en,U,P,ts,ta,x,tt,y]),t3=(0,a.useCallback)(e=>{if(!v||!e)return;let t=P.find(t=>t.id===e);tj({type:"message",id:e,preview:t?.content?.slice(0,120)||void 0})},[v,P]),t4=(0,a.useCallback)(async e=>{if(v)try{let t=new URLSearchParams({threadId:v,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());tt===e&&x({message:null});let r=P.filter(t=>t.id!==e);y(v,r),await U(v)}catch(e){console.error("Failed to delete message",e)}},[v,U,P,x,tt,y]),t6=(0,a.useCallback)(()=>{tb&&("thread"===tb.type?t2(tb.id):t4(tb.id),tj(null))},[tb,t2,t4]),t8=(0,a.useCallback)(()=>{tj(null)},[]),t7=(0,a.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>tY()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>tX()}],[tY,tX]),t9=(0,a.useMemo)(()=>{let e=eU?ez.find(e=>e.slug===eU):ez[0];return e?.repos??[]},[ez,eU]),[ae,at]=(0,a.useState)(new Set),aa=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!ta){at(new Set),aa.current=null;return}aa.current!==ta&&(at(new Set),aa.current=ta,fetch(`/api/thread-repos?rootMessageId=${encodeURIComponent(ta)}`).then(e=>e.json()).then(e=>{aa.current===ta&&e.repoIds&&e.repoIds.length>0&&at(new Set(e.repoIds))}).catch(e=>console.warn("[ChatContainer] load thread repos failed:",e)))},[ta]);let ar=(0,a.useCallback)(e=>{at(e),ta&&fetch("/api/thread-repos",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:ta,repoIds:[...e]})}).catch(e=>console.warn("[ChatContainer] save thread repos failed:",e))},[ta]),as=(0,a.useCallback)(e=>{let a=V.some(t=>["spawning","running"].includes(t.state)&&t.threadId===e)||Object.values(J).some(t=>t.rootMessageId===e)?"working":ee.some(t=>t.rootMessageId===e&&"queued"===t.status)?"queued":"ready";return(0,t.jsx)(Y.Composer,{onSend:(t,a,r,s,l,n,i)=>tJ(e,t,a,l,n,i),onStop:()=>en(e),loading:"ready"!==a,activityStatus:a,participants:tR,projectGroups:ez,projects:t$,projectId:eO,projectSlug:eU,messages:P,commands:t7,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:tr,onAutoModeChange:tZ,repos:t9,selectedRepoIds:ae,onRepoSelectionChange:ar})},[tJ,en,J,tR,ez,t$,eO,eU,t7,P,tr,tZ,V,ee,t9,ae,ar]),al=(0,a.useCallback)(()=>{eY(e=>{let t=!e;return tS(t),t})},[tS]),an=(0,a.useCallback)(e=>{eQ(e),(0,Q.persistWorkspaceWidth)(e)},[]),ai=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();eD(t=>t.map(t=>t.id===e.id?e:t))}},ao=(0,a.useCallback)((e,t)=>{eq(a=>{let r=eC(eL,eo,v);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 v&&es(v,l),l})},[v,eL,eo]),ad=(0,a.useCallback)(e=>{let t=eo.find(t=>t.id===e);if(!t||v&&!t.thread_ids?.includes(v))return;let a=t.agents.map(e=>e.agent_id);eq(a),v&&es(v,a)},[eo,v]),ac=(0,a.useCallback)(()=>{eK(e=>"dark"===e?"light":"dark")},[]),au=()=>(0,t.jsx)("button",{type:"button",onClick:ac,"aria-label":"dark"===eJ?"Switch to light theme":"Switch to dark theme",title:"dark"===eJ?"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"===eJ?(0,t.jsx)(ej.Sun,{className:"h-4 w-4",strokeWidth:1.75}):(0,t.jsx)(eb.Moon,{className:"h-4 w-4",strokeWidth:1.75})}),ap=(0,t.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,t.jsx)(ef.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:tw,type:"text",value:tl,onChange:e=>tn(e.target.value),onKeyDown:e=>{"Escape"===e.key&&t_()},placeholder:"Search messages…",className:`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)] ${e?"h-7 text-xs":"h-9"}`}),tI?(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:tu?"…":td}),(0,t.jsx)("button",{type:"button",onClick:t_,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):h?null:(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"})]}),ah=e?null:(0,t.jsx)("div",{className:"desktop-titlebar 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:p&&!eG&&(0,t.jsx)("button",{type:"button",onClick:al,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)(ev.PanelLeftOpen,{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:[ap,(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[au(),(0,t.jsx)(ek.StatusIndicator,{}),ta&&(0,t.jsx)("button",{type:"button",onClick:()=>e1(!e0),"aria-label":e0?"Hide logs":`Show logs${_.length>0?` (${_.length})`:""}`,"aria-pressed":e0,title:e0?"Hide logs":`Show logs${_.length>0?` (${_.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)] ${e0?"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)(eg.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,t.jsxs)("div",{className:`flex ${e?"h-full":"h-screen"} bg-[var(--app-shell-bg)] text-[var(--foreground)]`,children:[p?(0,t.jsx)(d.WorkspaceSidebar,{threads:g,participants:eL,activeThreadId:v,isLoading:I,isRestoringActiveThread:C,isCreating:N,deletingThreadId:k,renamingThreadId:S,onSelectThread:b,onCreateThread:j,onRenameThread:M,onDeleteThread:t1,activeParticipantIds:eF,onToggleParticipantActive:ao,visible:eG,onToggle:al,width:eX,onWidthChange:an,projects:eo,onCreateProject:ed,onUpdateProject:e_,onDeleteProject:eR,onAddAgentToProject:e$,onRemoveAgentFromProject:eA,onReorderProjectAgents:eP,onUpdateParticipant:ai,onSelectProject:ad}):null,(0,t.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:C?(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:[ta?(0,t.jsx)("div",{className:"desktop-titlebar 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:[p&&!eG?(0,t.jsx)("button",{type:"button",onClick:al,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)(ev.PanelLeftOpen,{className:"h-4 w-4",strokeWidth:1.75})}):null,(0,t.jsx)("button",{onClick:()=>ts(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)(ex.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:tP}),tE&&(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:tE.color+"40",color:tE.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:tE.color}}),tE.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:[tT.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)}(tA)]}),tq&&(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:tq})]})]})]}),(0,t.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:tT.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 tD(),disabled:tB,title:tW?"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)] ${tB?"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:[tB?(0,t.jsx)(ey.default,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,t.jsx)(ew.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,t.jsx)("span",{className:"hidden sm:inline",children:tW?"Learning...":"Learn from discussion"})]}),!e&&au(),!e&&(0,t.jsx)(ek.StatusIndicator,{}),(0,t.jsx)("button",{type:"button",onClick:()=>e1(!e0),"aria-label":e0?"Hide logs":`Show logs${_.length>0?` (${_.length})`:""}`,"aria-pressed":e0,title:e0?"Hide logs":`Show logs${_.length>0?` (${_.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)] ${e0?"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)(eg.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):ah,tC?(0,t.jsx)(G,{query:tI,results:ti,total:td,participants:eL,threadTitleById:tM,isLoading:tu,error:th,onSelectResult:t0}):ta?(0,t.jsx)(H,{messages:P,streaming:J,participants:eL,rootMessageId:ta,queued:ee.some(e=>e.rootMessageId===ta&&"queued"===e.status),onClose:()=>ts(null),onCopyThread:tL,onAddToChat:tO,onDeleteThreadRoot:t5,onDeleteMessage:t3,highlightedMessageId:tt||void 0,renderReplyComposer:as,activeProcesses:V.filter(e=>["spawning","running"].includes(e.state)&&e.threadId===ta)}):(0,t.jsx)(L,{messages:P,streaming:J,participants:eL,onOpenThread:tG,onCopyThread:tL,onAddToChat:tO,onDeleteThreadRoot:t5,onSummarize:tK,summarizingThreads:tf,deletingThreadRootId:tg,highlightedMessageId:tt,shipModeThreads:e5,onUpdateMessageThreadStatus:v?(e,t)=>{E(a=>a.map(a=>a.id===e?{...a,threadStatus:t}:a)),$(v,e,t),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:t})})}:void 0,onUpdateMessageOutcomeNote:v?(e,t)=>{E(a=>a.map(a=>a.id===e?{...a,outcomeNote:t}:a)),A(v,e,t);let a=P.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}),!tC&&!ta&&(0,t.jsx)(Y.Composer,{onSend:tQ,onStop:el,loading:"ready"!==et,activityStatus:et,participants:tR,projects:t$,projectGroups:ez,projectId:eO,projectSlug:eU,messages:P,commands:t7,pendingThreadInsert:tz,onClearPendingThread:()=>tU(null),autoMode:tr,onAutoModeChange:tZ,repos:t9,selectedRepoIds:ae,onRepoSelectionChange:ar})]})})}),u&&(0,t.jsx)(eN,{logs:_,participants:eL,onClear:()=>void O(v),open:e0,onToggle:()=>e1(!1)}),(0,t.jsx)(eh.default,{isOpen:null!==tb,title:tb?.type==="thread"?"Delete Discussion":"Delete Message",message:tb?.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:tb?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:t6,onCancel:t8})]})}function eR({params:e}){let{slug:r,threadId:s}=(0,a.use)(e);return(0,t.jsx)(eT,{projectSlug:r,initialThreadId:s,showSidebar:!1})}e.s(["default",()=>eR],574957)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,186552,e=>{"use strict";var t=e.i(762281),a=e.i(935851),r=e.i(810605),s=e.i(66386),l=e.i(945028),n=e.i(490011),i=e.i(969039),o=e.i(44054),d=e.i(749410),c=e.i(307241),u=e.i(208343),p=e.i(884564),h=e.i(423709);function m(){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px] ml-1",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})}function f({participantId:e,participantName:a,participantColor:r,content:s}){let l=(0,h.stripMarkers)(s),n=l.length>0;return(0,t.jsxs)("div",{className:"flex gap-4 py-4 group transition-colors animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,t.jsx)(c.default,{href:`/agents/${e}`,className:"w-9 h-9 rounded-full bg-[var(--muted)] overflow-hidden shrink-0 shadow-sm border border-[var(--border)] hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e,36,r),alt:"",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[(0,t.jsx)(c.default,{href:`/agents/${e}`,className:"font-bold text-[15px] hover:underline",style:{color:r},children:a}),(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[var(--muted-foreground)] font-bold opacity-0 group-hover:opacity-100 transition-opacity",children:"Streaming"})]}),(0,t.jsx)("div",{className:"text-[15px] text-[var(--foreground)] leading-relaxed min-h-[1.5rem] flex items-center",children:n?(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)(u.Markdown,{content:l}),(0,t.jsx)("span",{className:"inline-flex items-baseline ml-0.5",children:(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-indigo-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"})})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[var(--muted-foreground)] italic",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:"working"}),(0,t.jsx)(m,{})]})})]})]})}var x=e.i(575479),g=e.i(80673);function v({attachments:e,compact:a=!1}){if(0===e.length)return null;let r=e.filter(e=>e.mimeType.startsWith("image/")),s=e.filter(e=>!e.mimeType.startsWith("image/")),l=a?"max-w-[120px]":"max-w-[240px]",n=a?"max-h-[90px]":"max-h-[180px]";return(0,t.jsxs)("div",{className:"mt-2 space-y-2",children:[r.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.map(e=>(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"block rounded-lg overflow-hidden border border-[var(--border)] hover:border-[var(--border)] transition-colors",children:(0,t.jsx)("img",{src:e.url,alt:e.filename,className:`${l} ${n} object-cover`,loading:"lazy"})},e.id))}),s.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>{var r;return(0,t.jsxs)("a",{href:e.url,download:e.filename,className:`inline-flex items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:border-[var(--border)] transition-colors ${a?"px-2 py-0.5 text-[11px]":"px-2.5 py-1 text-xs"}`,children:[(0,t.jsx)(x.FileText,{className:`text-[var(--muted-foreground)] shrink-0 ${a?"w-3 h-3":"w-3.5 h-3.5"}`}),(0,t.jsx)("span",{className:`truncate ${a?"max-w-[100px]":"max-w-[150px]"}`,children:e.filename}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0",children:(r=e.size)<1024?`${r}B`:r<1048576?`${(r/1024).toFixed(0)}KB`:`${(r/1048576).toFixed(1)}MB`}),(0,t.jsx)(g.Download,{className:`text-[var(--muted-foreground)] shrink-0 ${a?"w-2.5 h-2.5":"w-3 h-3"}`})]},e.id)})})]})}let b=(0,a.forwardRef)(({children:e,className:a="",...r},s)=>{let{isTouchLayout:l}=(0,o.useInputCapabilities)(),n=`absolute top-4 right-4 flex items-center gap-1 ${l?"opacity-100":"opacity-0 group-hover:opacity-100"} transition-opacity duration-200 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] shadow-md rounded-lg p-1 z-10 backdrop-blur-sm`,i=`${n} ${a}`.trim();return(0,t.jsx)("div",{ref:s,className:i,"data-touch-visible":l?"true":void 0,...r,children:e})});b.displayName="ActionToolbar";let j=()=>(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)] mx-1"}),w=(0,a.forwardRef)(({className:e="",variant:a="neutral",size:r="md",children:s,...l},n)=>{let{isTouchLayout:i}=(0,o.useInputCapabilities)(),d=`inline-flex items-center justify-center rounded-md transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:pointer-events-none ${i?({sm:"h-11 w-11 p-2",md:"h-11 w-11 p-2",lg:"h-12 w-12 p-2.5"})[r]:({sm:"p-1 w-6 h-6",md:"p-1.5 w-8 h-8",lg:"p-2 w-10 h-10"})[r]} ${({neutral:"text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]",ghost:"text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]",primary:"text-[var(--primary)] hover:text-[var(--primary-foreground)] hover:bg-[var(--primary-hover)]",destructive:"text-[var(--app-shell-muted)] hover:text-[var(--destructive)] hover:bg-[var(--destructive-muted)]"})[a]} ${e}`.trim();return(0,t.jsx)("button",{ref:n,className:d,"data-touch-target":i?"true":void 0,...l,children:s})});w.displayName="IconButton";var y=e.i(597628),N=e.i(19035),k=e.i(629155),S=e.i(906724),C=e.i(794731),I=e.i(169610),M=e.i(580873),T=e.i(363732);let R=(0,T.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),$=(0,T.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),A=(0,T.default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);var P=e.i(878001),E=e.i(507193),_=e.i(638703);let z=[{value:"active",label:"Active",color:"#f59e0b"},{value:"paused",label:"Paused",color:"#f97316"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"done",label:"Done",color:"#3b82f6"},{value:"archived",label:"Archived",color:"#9ca3af"}],U=new Set(["done","in-review","archived"]),O="<!-- thread-summary -->";function L({messages:e,streaming:r,participants:s,onOpenThread:l,onCopyThread:n,onAddToChat:i,onDeleteThreadRoot:o,onSummarize:d,summarizingThreads:m,deletingThreadRootId:x,highlightedMessageId:g,onUpdateMessageThreadStatus:T,onUpdateMessageOutcomeNote:L,shipModeThreads:D}){let W=(0,a.useRef)(new Map),B=(0,a.useRef)(null),[F,q]=(0,a.useState)(null),[V,H]=(0,a.useState)("active"),[J,K]=(0,a.useState)("asc"),[G,Y]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=B.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:a,clientHeight:r}=e;Y(a-t-r>200)};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[]);let X=(0,a.useCallback)(()=>{let e=B.current;if(!e)return;let t="asc"===J?e.scrollHeight:0;e.scrollTo({top:t,behavior:"smooth"})},[J]),Q=Object.fromEntries(s.map(e=>[e.id,e])),Z=(0,a.useMemo)(()=>{let t=e.filter(e=>!e.rootMessageId);return"asc"===J?[...t].sort((e,t)=>e.timestamp-t.timestamp):[...t].sort((e,t)=>t.timestamp-e.timestamp)},[e,J]),ee=(0,a.useRef)(0);(0,a.useEffect)(()=>{if("asc"!==J){ee.current=Z.length;return}Z.length>ee.current&&B.current?.scrollTo({top:B.current.scrollHeight,behavior:"smooth"}),ee.current=Z.length},[Z.length,J]);let et={active:new Set(["active"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),done:new Set(["done"]),archived:new Set(["archived"])},ea=(0,a.useMemo)(()=>Z.filter(e=>et[V].has(e.threadStatus??"active")),[Z,V]),er=(0,a.useMemo)(()=>({active:Z.filter(e=>et.active.has(e.threadStatus??"active")).length,paused:Z.filter(e=>et.paused.has(e.threadStatus??"active")).length,"in-review":Z.filter(e=>et["in-review"].has(e.threadStatus??"active")).length,done:Z.filter(e=>et.done.has(e.threadStatus??"active")).length,archived:Z.filter(e=>et.archived.has(e.threadStatus??"active")).length}),[Z]),es=(0,a.useMemo)(()=>(function(e){let t=new Map;for(let a of e){let e=a.rootMessageId;if(!e)continue;let r=t.get(e);r||(r={rootMessageId:e,replyCount:0,participants:[],lastActivityAt:0,allReplies:[]},t.set(e,r)),r.replyCount++,r.lastActivityAt=Math.max(r.lastActivityAt,a.timestamp),r.lastReply=a,r.allReplies.push(a),a.participantId&&!r.participants.includes(a.participantId)?r.participants.push(a.participantId):a.participantId||r.participants.includes("user")||r.participants.push("user")}for(let e of t.values())e.allReplies.sort((e,t)=>e.timestamp-t.timestamp);return t})(e),[e]),el=(0,a.useCallback)((e,t)=>{t?W.current.set(e,t):W.current.delete(e)},[]),en=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!g){en.current=null;return}if(g===en.current)return;en.current=g;let e=W.current.get(g);e&&e.scrollIntoView({behavior:"smooth",block:"center"})},[g,e]),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,t.jsx)("div",{ref:B,className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[Z.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 mb-4",children:[(0,t.jsx)("div",{className:"flex items-center gap-1 p-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)]",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"done",label:"Done"},{key:"archived",label:"Archived"}].map(e=>{let a=er[e.key],r=V===e.key;return(0,t.jsxs)("button",{type:"button",onClick:()=>H(e.key),className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${r?"bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm":"text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"}`,children:[e.label,a>0&&(0,t.jsx)("span",{className:`ml-1.5 text-[10px] ${r?"opacity-60":"opacity-50"}`,children:a})]},e.key)})}),(0,t.jsxs)("button",{type:"button",onClick:()=>K(e=>"asc"===e?"desc":"asc"),title:"asc"===J?"Newest at bottom — click to flip":"Newest at top — click to flip",className:"inline-flex items-center gap-1 px-2 py-1.5 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)] hover:text-[var(--foreground)] text-[10px] font-bold transition-colors",children:["asc"===J?(0,t.jsx)(E.ArrowUp,{className:"w-3 h-3"}):(0,t.jsx)(P.ArrowDown,{className:"w-3 h-3"}),"asc"===J?"Oldest first":"Newest first"]})]}),0===Z.length&&0===Object.keys(r).length&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3",children:[(0,t.jsx)(y.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),Z.length>0&&0===ea.length&&(0,t.jsx)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2",children:(0,t.jsxs)("span",{className:"text-sm font-medium",children:["No ",V," threads"]})}),ea.map(e=>{let a,s=e.participantId?Q[e.participantId]:null,g=es.get(e.id),y=x===e.id,P=g?.allReplies.find(e=>e.content.startsWith(O)),E=P?P.content.slice(O.length).trim():null,_=e.threadStatus??"active",L=U.has(_),W=z.find(e=>e.value===_)??z[0],B=Object.values(r).some(t=>t.rootMessageId===e.id);if(L){let a;return(0,t.jsx)("div",{ref:t=>el(e.id,t),"data-message-id":e.id,className:`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${F===e.id?"z-50":""}`,onClick:()=>l?.(e.id),children:(0,t.jsxs)("div",{className:"px-4 py-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(k.Hash,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1",children:(0,h.stripMarkers)(e.content.split("\n")[0])}),D?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,t.jsx)(A,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),B&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),e.outcomeNote&&(0,t.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]",children:e.outcomeNote}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)] shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e.timestamp)}),T&&(a=F===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),q(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]",style:{borderColor:W.color+"40",color:W.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:W.color}}),W.label]}),a&&(0,t.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:z.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===_?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:t=>{t.stopPropagation(),T(e.id,a.value),q(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value))})]})),g&&g.replyCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] shrink-0",children:[g.replyCount," replies"]})]}),E&&(0,t.jsx)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:(0,t.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none",children:(0,t.jsx)(u.Markdown,{content:E,isUser:!1})})})]})},e.id)}return(0,t.jsxs)("div",{className:`max-w-2xl mx-auto surface-card mb-6 group relative ${F===e.id?"z-50":""}`,children:[(n||i||o)&&(0,t.jsxs)(b,{className:"z-10",children:[i&&(0,t.jsx)(w,{type:"button",variant:"primary",size:"sm",onClick:()=>i(e.id),title:"Mention in chat",children:(0,t.jsx)($,{className:"w-3.5 h-3.5"})}),(0,t.jsx)(w,{type:"button",variant:"neutral",size:"sm",onClick:()=>{navigator.clipboard.writeText(e.id)},title:"Copy message ID",children:(0,t.jsx)(R,{className:"w-3.5 h-3.5"})}),n&&(0,t.jsx)(w,{type:"button",variant:"neutral",size:"sm",onClick:()=>n(e.id),title:"Copy thread as markdown",children:(0,t.jsx)(N.Copy,{className:"w-3.5 h-3.5"})}),o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{}),(0,t.jsx)(w,{type:"button",variant:"destructive",size:"sm",onClick:()=>o(e.id),disabled:y,title:"Delete this thread",children:y?(0,t.jsx)(S.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,t.jsx)(C.Trash2,{className:"w-3.5 h-3.5"})})]})]}),(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"p-5",children:(0,t.jsxs)("div",{ref:t=>el(e.id,t),"data-message-id":e.id,className:"flex flex-col",children:[(0,t.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==e.role&&(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow",children:s?(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(s.id,40,s.color),alt:s.name,className:"w-full h-full object-cover"}):(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e.participantId||"assistant",40),alt:e.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==e.role&&(0,t.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",children:s?.name||e.participantId||"Assistant"})}),(0,t.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>l?.(e.id),children:[(0,t.jsx)("h3",{className:"text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1",children:(0,h.stripMarkers)(e.content.split("\n")[0])}),(0,t.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)]",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(e.timestamp)}),T&&(a=F===e.id,(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),q(a?null:e.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]",style:{borderColor:W.color+"40",color:W.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:W.color}}),W.label]}),a&&(0,t.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:e=>e.stopPropagation(),children:z.map(a=>(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${a.value===_?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:t=>{t.stopPropagation(),T(e.id,a.value),q(null)},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:a.color}}),a.label]},a.value))})]})),D?.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,t.jsx)(A,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),B&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(e.content.length>80||e.content.includes("\n"))&&(0,t.jsx)("div",{className:"mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3",children:(0,t.jsx)(u.Markdown,{content:(0,h.stripMarkers)(e.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===e.role})})]})]})]}),e.attachments&&e.attachments.length>0&&(0,t.jsx)("div",{className:`mb-4 ${"user"!==e.role?"ml-[52px]":""}`,children:(0,t.jsx)(v,{attachments:e.attachments,compact:!0})}),E&&(0,t.jsx)("div",{className:"mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed",children:(0,t.jsx)(u.Markdown,{content:E,isUser:!1})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-2 mt-2 border-t border-[var(--card-border)]",children:[d&&g&&g.replyCount>0&&(0,t.jsxs)("button",{type:"button",onClick:()=>d(e.id),disabled:m?.has(e.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[m?.has(e.id)?(0,t.jsx)(S.Loader2,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,t.jsx)(M.Clock,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),m?.has(e.id)?"Summarizing…":"Summarize"]}),g&&g.replyCount>0&&l&&(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>l(e.id),children:[(0,t.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:[g.replyCount," replies"]}),(0,t.jsx)("div",{className:"flex -space-x-2",children:g.participants.slice(0,3).map(e=>{if("user"===e)return(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] flex items-center justify-center z-10",children:(0,t.jsx)(I.User,{className:"w-3 h-3 text-[var(--muted-foreground)]"})},"user");let a=Q[e];return a?(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e,24,a.color),alt:a.name,className:"w-6 h-6 rounded-full border-2 border-[var(--card-bg)] object-cover z-10"},e):(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] z-10"},e)})})]})]})]})}),Object.entries(r).filter(([,t])=>t.rootMessageId===e.id).map(([e,a])=>{let r=Q[e];return(0,t.jsx)("div",{className:"px-6 pb-4",children:(0,t.jsx)(f,{participantId:e,participantName:r?.name||e,participantColor:r?.color||"#888",content:a.content})},`streaming-${e}`)})]})]},e.id)})]})}),(0,t.jsx)(_.JumpToLatestButton,{visible:G&&Z.length>10,onClick:X})]})}let D=(0,T.default)("message-square-text",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var W=e.i(519132);let B={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function F({type:e,count:a,participantIds:r}){let s=B[e],l=r.join(", "),n=l?`${s.label}: ${l}`:s.label;return(0,t.jsxs)("span",{title:n,className:"inline-flex items-center gap-1 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-2 py-0.5 text-xs text-[var(--foreground)]",children:[(0,t.jsx)("span",{"aria-hidden":!0,children:s.symbol}),(0,t.jsx)("span",{className:"tabular-nums",children:a})]})}function q({reactions:e}){if(!e||0===e.length)return null;let a=[...e].sort((e,t)=>t.count!==e.count?t.count-e.count:e.type.localeCompare(t.type));return(0,t.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:a.map(e=>(0,t.jsx)(F,{type:e.type,count:e.count,participantIds:e.participantIds},e.type))})}var V=e.i(133232);function H({messages:e,streaming:r,participants:s,rootMessageId:l,queued:n=!1,onClose:i,onCopyThread:o,onAddToChat:d,onDeleteThreadRoot:m,onDeleteMessage:f,highlightedMessageId:x,renderReplyComposer:g,activeProcesses:y=[]}){let k=(0,a.useRef)(null),S=(0,a.useRef)(new Map),M=Object.fromEntries(s.map(e=>[e.id,e])),T=(0,a.useMemo)(()=>{let t=e.find(e=>e.id===l),a=e.filter(e=>e.rootMessageId===l).sort((e,t)=>e.timestamp-t.timestamp);return t?[t,...a]:a},[e,l]),$=(0,a.useRef)(null),A=(0,a.useRef)(!1),P=(0,a.useRef)(null),[E,z]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=$.current;if(!e)return;let t=()=>{let{scrollTop:t,scrollHeight:a,clientHeight:r}=e,s=a-t-r;A.current=s>80,z(s>200)};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[]);let U=(0,a.useCallback)(()=>{k.current?.scrollIntoView({behavior:"smooth"})},[]);return(0,a.useEffect)(()=>{if(x&&x!==P.current){P.current=x;let e=S.current.get(x);e&&e.scrollIntoView({behavior:"smooth",block:"center"})}else x||A.current||(P.current=null,k.current?.scrollIntoView({behavior:"smooth"}))},[x,T,r]),(0,t.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-[var(--app-shell-bg)] transition-colors",children:[y.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] backdrop-blur-md transition-colors",children:[(0,t.jsxs)("div",{className:"inline-flex items-center gap-2 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,t.jsx)(W.Sparkles,{className:"h-3.5 w-3.5 text-indigo-500",strokeWidth:1.75}),(0,t.jsx)("span",{className:"uppercase tracking-[0.16em]",children:"Working"})]}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:y.map(e=>{let a=M[e.agentId];return(0,t.jsxs)("div",{className:"relative",title:`${a?.name||e.agentId} — ${e.state}`,children:[(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(e.agentId,24,a?.color),alt:a?.name||e.agentId,className:"w-6 h-6 rounded-full border-2 border-[var(--app-shell-surface)] shadow-sm"}),(0,t.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-[var(--app-shell-surface)] animate-pulse"})]},e.agentId)})})]}),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,t.jsx)("div",{ref:$,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,t.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[T.map(e=>{let a,r="user"===e.role,s=e.participantId?M[e.participantId]:null;return(0,t.jsxs)("div",{ref:t=>{var a;return a=e.id,void(t?S.current.set(a,t):S.current.delete(a))},"data-message-id":e.id,className:"group relative flex gap-4 ",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:r?(0,t.jsx)("div",{className:"w-9 h-9 bg-[var(--app-shell-subtle)] rounded-full flex items-center justify-center text-[var(--app-shell-muted)] shadow-sm",children:(0,t.jsx)(I.User,{className:"w-5 h-5"})}):(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,t.jsx)("img",{src:s?(0,p.agentAvatarUrl)(s.id,36,s.color):(0,p.agentAvatarUrl)(e.participantId||"assistant",36),alt:s?.name||e.participantId||"Assistant",className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[r?(0,t.jsx)("span",{className:"font-bold text-sm text-[var(--foreground)]",children:"You"}):(0,t.jsx)(c.default,{href:`/agents/${s?.id||e.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:s?.color?{color:s.color}:void 0,children:s?.name||e.participantId||"Assistant"}),void 0===e.rootMessageId&&e.id===l&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] rounded font-mono uppercase",children:"ROOT"}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:(a=e.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a))})]}),(0,t.jsxs)("div",{className:`text-[15px] leading-relaxed ${e.id===x?"ring-2 ring-[var(--ring)] rounded-2xl p-2 -m-2":""}`,children:[r?(0,t.jsx)(u.Markdown,{content:(0,h.stripMarkers)(e.content),isUser:!0}):(0,t.jsx)(V.StreamingSegments,{content:(0,h.stripMarkers)(e.content)}),e.attachments&&e.attachments.length>0&&(0,t.jsx)(v,{attachments:e.attachments})]}),e.reactions&&e.reactions.length>0&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(q,{reactions:e.reactions})}),(0,t.jsxs)(b,{children:[e.id===l&&(0,t.jsx)(w,{variant:"primary",size:"sm",onClick:()=>navigator.clipboard.writeText(e.id),title:"Copy message ID",children:(0,t.jsx)(R,{className:"w-3.5 h-3.5"})}),e.id===l&&o&&(0,t.jsx)(w,{variant:"neutral",size:"sm",onClick:()=>o(e.id),title:"Copy Thread",children:(0,t.jsx)(D,{className:"w-3.5 h-3.5"})}),(0,t.jsx)(w,{variant:"neutral",size:"sm",onClick:()=>navigator.clipboard.writeText(e.content),title:"Copy as Markdown",children:(0,t.jsx)(N.Copy,{className:"w-3.5 h-3.5"})}),e.id===l&&m&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{}),(0,t.jsx)(w,{variant:"destructive",size:"sm",onClick:()=>m(e.id),title:"Delete Thread",children:(0,t.jsx)(C.Trash2,{className:"w-3.5 h-3.5"})})]}),e.id!==l&&f&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{}),(0,t.jsx)(w,{variant:"destructive",size:"sm",onClick:()=>f(e.id),title:"Delete Message",children:(0,t.jsx)(C.Trash2,{className:"w-3.5 h-3.5"})})]})]})]})]},e.id)}),n&&0===y.length&&(0,t.jsxs)("div",{className:"flex gap-3 group relative opacity-80 animate-in fade-in slide-in-from-bottom-1 duration-300",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:(0,t.jsx)("div",{className:"w-7 h-7 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] flex items-center justify-center",children:(0,t.jsx)(W.Sparkles,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)]",strokeWidth:1.5})})}),(0,t.jsx)("div",{className:"flex-1 max-w-full overflow-hidden",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("span",{className:"text-xs tracking-wide text-[var(--app-shell-soft-text)]",children:"Processing"}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]})})]}),Object.entries(r).filter(([,e])=>e.rootMessageId===l).map(([e,a])=>{let r=M[e],s=a.content.trim().length>0,l=y.some(t=>t.agentId===e);return(0,t.jsxs)("div",{className:"flex gap-4 group relative animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,t.jsx)(c.default,{href:`/agents/${r?.id||e}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,t.jsx)("img",{src:r?(0,p.agentAvatarUrl)(r.id,36,r.color):(0,p.agentAvatarUrl)(e,36),alt:r?.name||e,className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,t.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(c.default,{href:`/agents/${r?.id||e}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:r?.color?{color:r.color}:void 0,children:r?.name||e}),!s&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),s&&(0,t.jsx)(V.StreamingSegments,{content:a.content,thoughts:a.thoughts}),s&&l&&(0,t.jsx)("div",{className:"flex items-center gap-2 pt-1",children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})})]})]},`streaming-${e}`)}),(0,t.jsx)("div",{ref:k,className:"h-4"})]})}),(0,t.jsx)(_.JumpToLatestButton,{visible:E&&T.length>10,onClick:U})]}),(0,t.jsx)("div",{className:"z-20 transition-colors duration-200",children:g(l)})]})}var J=e.i(51297);let K=(0,T.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function G({query:e,results:a,total:r,participants:s,threadTitleById:l,isLoading:n,error:i,onSelectResult:o,headerSlot:d}){let u=Object.fromEntries(s.map(e=>[e.id,e]));return(0,t.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[d?(0,t.jsx)("div",{className:"sticky top-0 z-20 bg-[var(--app-shell-subtle)]/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,t.jsx)("div",{className:"max-w-2xl mx-auto",children:d})}):null,(0,t.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Search results"}),(0,t.jsx)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:n?"Searching…":`${r} result${1===r?"":"s"} for "${e}"`}),i?(0,t.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:i}):null]}),n||i||0!==a.length?null:(0,t.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-[var(--app-shell-muted)]",children:[(0,t.jsx)(K,{className:"h-6 w-6",strokeWidth:1.5}),(0,t.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,t.jsx)("div",{className:"space-y-3 pb-6",children:a.map(e=>{var a;let r=e.participantId?u[e.participantId]:null,s=l[e.threadId]||"Untitled thread",n="user"===e.role?"You":r?.name||e.participantId||"Assistant";return(0,t.jsxs)("button",{type:"button",onClick:()=>o(e),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-4 text-left transition hover:border-[var(--border)] hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-[var(--muted)]",children:"user"===e.role?(0,t.jsx)(I.User,{className:"h-4 w-4 text-[var(--foreground)]"}):r?(0,t.jsx)(c.default,{href:`/agents/${r.id}`,onClick:e=>e.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,t.jsx)("img",{src:(0,p.agentAvatarUrl)(r.id,32,r.color),alt:"",className:"h-full w-full object-cover"})}):(0,t.jsx)(J.Bot,{className:"h-4 w-4 text-[var(--foreground)]"})}),(0,t.jsxs)("div",{className:"min-w-0",children:["user"!==e.role&&r?(0,t.jsx)(c.default,{href:`/agents/${r.id}`,onClick:e=>e.stopPropagation(),className:"truncate text-sm font-semibold text-[var(--foreground)] hover:underline block",children:n}):(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:n}),(0,t.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:s})]})]}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:(a=e.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(a))})]}),(0,t.jsx)("p",{className:"text-sm leading-relaxed text-[var(--foreground)]",children:function(e){let a=e.split(/(<\/?mark>)/g),r=!1,s=[];for(let[e,l]of a.entries()){if("<mark>"===l){r=!0;continue}if("</mark>"===l){r=!1;continue}l&&s.push(r?(0,t.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:l},`${e}-mark`):(0,t.jsx)("span",{children:l},`${e}-text`))}return s}(e.snippet)})]},`${e.threadId}-${e.messageId}`)})})]})})}var Y=e.i(984242),X=e.i(481248),Q=e.i(169433);let Z="agx-chat:project-agent-config",ee={activeParticipantIdsByThread:{}};function et(){return void 0!==window.localStorage}function ea(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 er(){if(!et())return{...ee};let e=window.localStorage.getItem(Z);if(!e)return{...ee};try{let t=JSON.parse(e).activeParticipantIdsByThread;if(!t||"object"!=typeof t)return{...ee};return{activeParticipantIdsByThread:Object.fromEntries(Object.entries(t).map(([e,t])=>[e,ea(t)]))}}catch{return{...ee}}}function es(e,t){let a=e.trim();if(!a)return;let r=er();r.activeParticipantIdsByThread[a]=ea(t);if(et())try{window.localStorage.setItem(Z,JSON.stringify(r))}catch{}}let el={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,fileIgnorePatterns:[]};function en(e){return e&&"object"==typeof e?{threadSidebarVisible:"boolean"==typeof e.threadSidebarVisible?e.threadSidebarVisible:el.threadSidebarVisible,workspaceRoots:Array.isArray(e.workspaceRoots)?e.workspaceRoots.filter(e=>"string"==typeof e):el.workspaceRoots,homeSearchConsent:"boolean"==typeof e.homeSearchConsent?e.homeSearchConsent:el.homeSearchConsent,fileIgnorePatterns:Array.isArray(e.fileIgnorePatterns)?e.fileIgnorePatterns.filter(e=>"string"==typeof e):el.fileIgnorePatterns}:el}let ei="/api/userPreferences";function eo(e){return e.json().then(e=>e&&"object"==typeof e?en(e.preferences??e):en(e)).catch(()=>en(null))}function ed(e){return e.statusText||`Failed to reach ${ei} (${e.status})`}async function ec(){let e=await fetch(ei,{cache:"no-store"});if(!e.ok)throw Error(ed(e));return eo(e)}async function eu(e){let t=await fetch(ei,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:e})});if(!t.ok)throw Error(ed(t));return eo(t)}var ep=e.i(990933),eh=e.i(352687),em=e.i(524123),ef=e.i(8707),ex=e.i(493141),eg=e.i(846279),eg=eg,ev=e.i(169729),eb=e.i(721571),ej=e.i(468947),ew=e.i(837958),ey=e.i(595807),ey=ey;function eN({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)(null),[h,m]=(0,a.useState)(!1),f=(0,a.useRef)(!1),x=(0,a.useRef)(0),g=(0,a.useRef)(0),v=Object.fromEntries(r.map(e=>[e.id,e]));(0,a.useEffect)(()=>{l&&u.current?.scrollIntoView({behavior:"smooth"})},[e.length,l]),(0,a.useEffect)(()=>{let e=p.current;if(!e)return;let t=()=>{m(e.scrollHeight-e.scrollTop-e.clientHeight>200)};return e.addEventListener("scroll",t,{passive:!0}),()=>e.removeEventListener("scroll",t)},[l]);let b=(0,a.useCallback)(()=>{u.current?.scrollIntoView({behavior:"smooth"})},[]),j=(0,a.useCallback)(e=>{e.preventDefault(),f.current=!0,x.current=e.clientX,g.current=i,e.target.setPointerCapture(e.pointerId)},[i]),w=(0,a.useCallback)(e=>{if(!f.current)return;let t=x.current-e.clientX;o(Math.max(280,Math.min(g.current+t,.6*window.innerWidth)))},[]),y=(0,a.useCallback)(()=>{f.current=!1},[]);if(!l)return null;let N=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:j,onPointerMove:w,onPointerUp:y,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:"relative flex-1 min-h-0 flex flex-col",children:[(0,t.jsxs)("div",{ref:p,className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[N.map((e,a)=>{let r=v[e.participantId]?.name||e.participantId,s=v[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})]}),(0,t.jsx)(_.JumpToLatestButton,{visible:h&&N.length>20,onClick:b})]})]})]})}var ek=e.i(524780);let eS="agx-theme";async function eC(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(e=>(console.warn("[ChatContainer] failed to parse thread knowledge response:",e),null));return a?.run??null}function eI(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 eM(e,t){let a=Object.fromEntries(t.map(e=>[e.id,e])),r=[];for(let t of e){let e="user"===t.role?"You":t.participantId?a[t.participantId]?.name||t.participantId:"Assistant",s=function(e,t=!1){return(t?e.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():e).replaceAll("<!-- thread-summary -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}(t.content,"user"!==t.role);s&&(r.push(`**${e}:**`),r.push(""),r.push(s),r.push(""))}return r.join("\n").trim()}function eT({projectSlug:e,initialThreadId:c,initialRootMessageId:u,showSidebar:p=!0}={}){let{isTouchLayout:h}=(0,o.useInputCapabilities)(),{getSelection:m,pushSelection:f,replaceSelection:x}=(0,s.useUrlSelection)(),{threads:g,activeThreadId:v,selectThread:b,createThread:j,deleteThread:w,updateThreadMessages:y,isCreating:N,deletingThreadId:k,renamingThreadId:S,isLoading:C,isRestoringActiveThread:I,renameThread:M,updateThreadStatus:T,updateThreadOutcomeNote:R,updateMessageThreadStatus:$,updateMessageOutcomeNote:A}=(0,i.useThreadState)(c),{messages:P,setMessages:E,logs:_,sendMessage:z,loadHistory:U,clearLogs:O,chatRuns:D,setChatRuns:W,stop:B,stopThread:F}=(0,l.useGroupChat)(v),{activeAgents:q,processes:V,streaming:J,chatRuns:K,poll:Z}=(0,n.useProcessPolling)(v?{workspaceId:v}:null,{messages:P,setMessages:E}),ee=(0,a.useMemo)(()=>{let e=Date.now(),t=new Map(K.map(e=>[e.chatRunId,e]));for(let a of D)!(!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)},[D,K]),et=q.size>0||ee.some(e=>"running"===e.status)?"working":ee.some(e=>"queued"===e.status)?"queued":"ready";(0,a.useEffect)(()=>{W(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 K)e?.chatRunId&&a.set(e.chatRunId,e);return Array.from(a.values()).filter(e=>!!(!e.optimistic||K.some(t=>t.chatRunId===e.chatRunId))||t-(e.enqueuedAt??0)<=5e3).sort((e,t)=>String(e.chatRunId||"").localeCompare(String(t.chatRunId||"")))})},[K,W]);let ea=(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(e=>console.warn("[ChatContainer] cancel chat run failed:",e))},[]),el=(0,a.useCallback)(async()=>{let e=ee[0];e?.chatRunId&&await ea(e.chatRunId),await B(),await Z()},[ee,ea,B,Z]),en=(0,a.useCallback)(async e=>{let t=ee.find(t=>t.rootMessageId===e);t?.chatRunId&&await ea(t.chatRunId),await F(e),await Z()},[ee,ea,F,Z]),ei=(0,a.useRef)(el);(0,a.useEffect)(()=>{ei.current=el},[el]);let{projects:eo,createProject:ed,deleteProject:eR,addAgent:e$,removeAgent:eA,reorderAgents:eP}=(0,em.useProjectsWithAgents)(),{projects:eE,updateProject:e_}=(0,em.useProjects)(),ez=(0,a.useMemo)(()=>v?eo.filter(e=>e.thread_ids?.includes(v)):eo,[eo,v]),eU=(0,a.useMemo)(()=>e||ez[0]?.slug||void 0,[e,ez]),eO=(0,a.useMemo)(()=>ez[0]?.id??void 0,[ez]),[eL,eD]=(0,a.useState)([]),[eW,eB]=(0,a.useState)(!1),[eF,eq]=(0,a.useState)([]),[eV,eH]=(0,a.useState)(!1),[eJ,eK]=(0,a.useState)(()=>{let e=window.localStorage.getItem(eS);return"dark"===e||"light"===e?e:document.documentElement.classList.contains("dark")?"dark":"light"}),[eG,eY]=(0,a.useState)(!1),[eX,eQ]=(0,a.useState)(368),eZ=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=(0,X.loadWorkspaceSidebarVisible)();eZ.current=!0,eY(e),eQ((0,Q.loadWorkspaceWidth)()||368)},[]),(0,a.useEffect)(()=>{let e="dark"===eJ;document.documentElement.classList.toggle("dark",e),document.documentElement.style.colorScheme=eJ,window.localStorage.setItem(eS,eJ)},[eJ]);let[e0,e1]=(0,a.useState)(!1),[e5,e2]=(0,a.useState)(new Set),[e3,e4]=(0,a.useState)(!1),[e6,e8]=(0,a.useState)(!1),[e7,e9]=(0,a.useState)(null),te=m("open"),tt=m("message"),ta=e?te??u??null:u??null,tr=ta?e5.has(ta):e3;(0,a.useEffect)(()=>{if(!ta)return;let e=!1,t=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(ta)}`).then(e=>e.json()).then(t=>{e||e2(e=>{let a=e.has(ta);if(t.active&&!a){let t=new Set(e);return t.add(ta),t}if(!t.active&&a){let t=new Set(e);return t.delete(ta),t}return e})}).catch(e=>console.warn("[ChatContainer] check auto-mode status failed:",e))};t();let a=setInterval(t,r.UI_POLL_CHAT_CHECK_MS);return()=>{e=!0,clearInterval(a)}},[ta]),(0,a.useEffect)(()=>{let e=!1,t=()=>{fetch("/api/schedules").then(e=>e.json()).then(t=>{!e&&t.activeRootMessageIds&&e2(e=>{let a=new Set(t.activeRootMessageIds);return a.size===e.size&&[...a].every(t=>e.has(t))?e:a})}).catch(e=>console.warn("[ChatContainer] fetch schedules failed:",e))};t();let a=setInterval(t,r.UI_POLL_CHAT_ALT_MS);return()=>{e=!0,clearInterval(a)}},[]);let ts=(0,a.useCallback)((t,a={})=>{let r=a.replace?x:f;if(e){let s=a.threadId??v??c??null;if(!s)return;r({open:t,message:a.messageId??null},`/projects/${e}/thread/${encodeURIComponent(s)}`);return}t?r({message:a.messageId??null},`/thread/${encodeURIComponent(t)}`):r({message:null},"/")},[v,c,e,f,x]);(0,a.useEffect)(()=>{u&&(async()=>{try{let e=await fetch(`/api/messages/${u}`);if(!e.ok)return;let{threadId:t}=await e.json();t&&b(t)}catch{}})()},[u,b]);let[tl,tn]=(0,a.useState)(""),[ti,to]=(0,a.useState)([]),[td,tc]=(0,a.useState)(0),[tu,tp]=(0,a.useState)(!1),[th,tm]=(0,a.useState)(null),[tf,tx]=(0,a.useState)(new Set),[tg,tv]=(0,a.useState)(null),[tb,tj]=(0,a.useState)(null),tw=(0,a.useRef)(null),ty=(0,a.useRef)(""),tN=(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;eD(t)}finally{e&&eB(!0)}},[]),tk=(0,a.useCallback)(async e=>{try{await eu({threadSidebarVisible:e})}catch(e){console.error("Unable to persist thread sidebar preference",e)}},[eu]),tS=(0,a.useCallback)(e=>{(0,X.persistWorkspaceSidebarVisible)(e),tk(e)},[tk]),tC=tl.trim(),tI=tC.length>0,tM=(0,a.useMemo)(()=>Object.fromEntries(g.map(e=>[e.id,e.title?.trim()||"Untitled thread"])),[g]),tT=(0,a.useMemo)(()=>{if(!ta)return[];let e=new Set([P.find(e=>e.id===ta),...P.filter(e=>e.rootMessageId===ta)].filter(Boolean).map(e=>e.participantId).filter(Boolean));return Object.keys(J).forEach(t=>{J[t].rootMessageId===ta&&e.add(t)}),eL.filter(t=>e.has(t.id))},[ta,P,J,eL]),tR=(0,a.useMemo)(()=>{let e=new Map(eL.map(e=>[e.id,e]));return eF.map(t=>e.get(t)).filter(Boolean)},[eL,eF]),t$=(0,a.useMemo)(()=>eE.map(e=>({id:e.id,name:e.name,slug:e.slug})),[eE]),tA=(0,a.useMemo)(()=>{if(!ta)return 0;let e=[P.find(e=>e.id===ta),...P.filter(e=>e.rootMessageId===ta)].filter(Boolean);return 0===e.length?0:Math.max(...e.map(e=>e.timestamp))},[ta,P]),tP=(0,a.useMemo)(()=>{if(!ta)return"";let e=P.find(e=>e.id===ta);if(!e)return"Discussion";let t=e.content.trim();return t.length>60?t.slice(0,60)+"...":t},[ta,P]),tE=(0,a.useMemo)(()=>{if(!ta)return null;let e=P.find(e=>e.id===ta),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]}},[ta,P]);(0,a.useEffect)(()=>{if(!tt)return;let e=P.find(e=>e.id===tt)??null;if(e){let t=e.rootMessageId||e.id;t!==ta&&ts(t,{messageId:tt,replace:!0});return}!ta||[P.find(e=>e.id===ta),...P.filter(e=>e.rootMessageId===ta)].filter(Boolean).length>0&&x({message:null})},[P,ts,ta,x,tt]);let t_=(0,a.useCallback)(()=>{tn(""),to([]),tc(0),tm(null),tp(!1)},[]);(0,a.useCallback)(()=>{let e=eM(P,eL);navigator.clipboard.writeText(e).then(()=>{eH(!0),setTimeout(()=>eH(!1),2e3)})},[P,eL]);let[tz,tU]=(0,a.useState)(null),tO=(0,a.useCallback)(e=>{let t=P.find(t=>t.id===e);if(!t)return;let a=[t,...P.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)];tU({title:t.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:e,messages:a})},[P]),tL=(0,a.useCallback)(e=>{let t=eM([P.find(t=>t.id===e),...P.filter(t=>t.rootMessageId===e).sort((e,t)=>e.timestamp-t.timestamp)].filter(Boolean),eL);navigator.clipboard.writeText(t).catch(e=>console.error("Failed to copy thread",e))},[P,eL]),tD=(0,a.useCallback)(async()=>{if(ta){e8(!0);try{let e=["repo"];eU&&e.push("project");let t=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:ta,scopes:e})}),a=await t.json().catch(e=>(console.warn("[ChatContainer] failed to parse knowledge extraction response:",e),null));if(!t.ok)throw Error("string"==typeof a?.error?a.error:"Request failed");e9(a?.run??null)}catch(t){let e=t instanceof Error?t.message:"Request failed";window.alert(`Failed to extract knowledge: ${e}`)}finally{e8(!1)}}},[ta,eU]);(0,a.useEffect)(()=>{if(!ta){e9(null),e8(!1);return}let e=!1;return(async()=>{try{let t=await eC(ta);if(e)return;e9(t)}catch{e||e9(null)}})(),()=>{e=!0}},[ta]),(0,a.useEffect)(()=>{if(!ta||e7?.status!=="running")return;let e=!1,t=async()=>{try{let t=await eC(ta);if(e)return;e9(t)}catch{}};t();let a=window.setInterval(()=>{t()},2e3);return()=>{e=!0,window.clearInterval(a)}},[ta,e7?.status]);let tW=e7?.status==="running",tB=e6||tW,tF=(e7?.repoInsertedCount??0)+(e7?.projectInsertedCount??0),tq=(0,a.useMemo)(()=>{if(!e7)return null;if("running"===e7.status)return"Learning in progress";if("failed"===e7.status)return"Last learning run failed";if(tF>0){let e=1===tF?"insight":"insights";return`Learned ${tF} ${e}`}return"No new learnings"},[tF,e7]);(0,a.useEffect)(()=>{tN(!0)},[tN]);let tV=(0,a.useMemo)(()=>{if(!eW)return[];let e=new Set(eL.map(e=>e.id)),t=new Set;for(let a of P)"assistant"===a.role&&a.participantId&&(e.has(a.participantId)||t.add(a.participantId));for(let a of Object.keys(J))e.has(a)||t.add(a);return Array.from(t).sort()},[P,eL,eW,J]);(0,a.useEffect)(()=>{if(!eW)return;let e=tV.join("|");if(!e){ty.current="";return}ty.current!==e&&(ty.current=e,tN(!1))},[eW,tN,tV]),(0,a.useEffect)(()=>{if(!eW)return;let e=eI(eL,eo,v);if(!v)return void eq(e);let t=function(e){let t=e.trim();if(!t)return null;let a=er();return t in a.activeParticipantIdsByThread?[...a.activeParticipantIdsByThread[t]]:null}(v);if(null===t)return void eq(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))&&es(v,r),eq(r)},[v,eL,eW,eo]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await ec();if(e)return;eY(e=>e===t.threadSidebarVisible?e:eZ.current?(tk(e),e):((0,X.persistWorkspaceSidebarVisible)(t.threadSidebarVisible),t.threadSidebarVisible))}catch(e){console.error("Failed to load user preferences",e)}})(),()=>{e=!0}},[tk]),(0,a.useEffect)(()=>{C||N||0!==g.length||j({id:"global",title:"General"})},[C,N,g.length,j]),(0,a.useEffect)(()=>{if(e)return;let t=e=>{if((e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()){e.preventDefault(),tw.current?.focus(),tw.current?.select();return}"Escape"===e.key&&tC&&t_()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[t_,tC,e]),(0,a.useEffect)(()=>{if(!tC){to([]),tc(0),tm(null),tp(!1);return}let e=!1;tp(!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(e=>(console.warn("[ChatContainer] failed to parse search response:",e),null));if(e)return;if(!a.ok){let e=r&&"object"==typeof r&&"error"in r?String(r.error):"Search failed";to([]),tc(0),tm(e);return}to(Array.isArray(r.results)?r.results:[]),tc("number"==typeof r.total?r.total:0),tm(null)}catch(t){if(e)return;console.error("Search request failed",t),to([]),tc(0),tm("Search failed")}finally{e||tp(!1)}})()},300);return()=>{e=!0,window.clearTimeout(t)}},[tC]);let tH=(0,a.useRef)(null);(0,a.useEffect)(()=>{null!==tH.current&&tH.current!==v&&ei.current(),tH.current=v,v&&U(v)},[v,U]),(0,a.useEffect)(()=>{v&&y(v,P)},[v,P,y]);let tJ=(0,a.useCallback)((e,t,a=10,r,s,l)=>{v&&0!==tR.length&&z(t,a,v,e,void 0,void 0,(0,ep.orderParticipantIds)(tR.map(e=>e.id),r),eU,s,l)},[v,z,tR,eU]),tK=(0,a.useCallback)(async e=>{if(v){if(0===tR.length)return void window.alert("Enable at least one agent in this project.");tx(t=>new Set(t).add(e));try{let t=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:v,rootMessageId:e,activeParticipantIds:tR.map(e=>e.id)})});t.ok?await U(v):console.error("Summarize failed:",await t.text())}catch(e){console.error("Summarize error:",e)}finally{tx(t=>{let a=new Set(t);return a.delete(e),a})}}},[v,U,tR]);(0,a.useCallback)(e=>{ts(e)},[ts]);let tG=(0,a.useCallback)(e=>{ts(e)},[ts]),tY=(0,a.useCallback)(e=>{let t=e?.trim()??"";t&&tn(t),requestAnimationFrame(()=>{tw.current?.focus(),t||tw.current?.select()})},[]),tX=(0,a.useCallback)(()=>{if(!v)return;let e=(()=>{if(ta)return ta;let e=new Set(P.map(e=>e.rootMessageId).filter(e=>!!e));for(let t=P.length-1;t>=0;t-=1){let a=P[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")},[v,tK,P,ta]),tQ=(0,a.useCallback)(async(e,t,a,r,s,l,n)=>{let i=e.match(/^\/search(?:\s+([\s\S]+))?$/i);if(i)return void tY(i[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(e))return void tX();let o=v;o||(o=(await j()).id);let d=tR.map(e=>e.id);if(0===d.length)return void window.alert("Enable at least one agent in this project.");let c=(0,ep.orderParticipantIds)(d,s);if(ta)return void await z(e,t,o,ta,a,r,c,eU,l,n);let u=await z(e,t,o,null,a,r,c,eU,l,n);e3&&u&&(e4(!1),e2(e=>{let t=new Set(e);return t.add(u),t}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:u})}).catch(e=>console.error("Failed to activate schedule for new thread:",e)))},[v,e3,j,tY,tX,ta,tR,z,eU]),tZ=(0,a.useCallback)(async e=>{if(!ta)return void e4(e);e2(t=>{let a=new Set(t);return e?a.add(ta):a.delete(ta),a});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e?"activate":"stop",rootMessageId:ta})})}catch(e){console.error("Failed to toggle autonomous schedule:",e)}},[ta]),t0=(0,a.useCallback)(e=>{ts(e.rootMessageId||e.messageId,{messageId:e.messageId,threadId:e.threadId}),t_()},[t_,ts]),t1=(0,a.useCallback)(async e=>{el(),await w(e)},[w,el]),t5=(0,a.useCallback)(e=>{if(!v||!e)return;let t=P.find(t=>t.id===e);tj({type:"thread",id:e,preview:t?.content?.slice(0,120)||void 0})},[v,P]),t2=(0,a.useCallback)(async e=>{if(v){tv(e),en(e);try{let t=new URLSearchParams({threadId:v,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());let r=tt?P.find(e=>e.id===tt)??null:null,s=r?r.rootMessageId||r.id:null;ta===e?ts(null,{replace:!0}):s===e&&x({message:null});let l=P.filter(t=>t.id!==e&&t.rootMessageId!==e);y(v,l),await U(v)}catch(e){console.error("Failed to delete message thread",e)}finally{tv(t=>t===e?null:t)}}},[v,en,U,P,ts,ta,x,tt,y]),t3=(0,a.useCallback)(e=>{if(!v||!e)return;let t=P.find(t=>t.id===e);tj({type:"message",id:e,preview:t?.content?.slice(0,120)||void 0})},[v,P]),t4=(0,a.useCallback)(async e=>{if(v)try{let t=new URLSearchParams({threadId:v,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());tt===e&&x({message:null});let r=P.filter(t=>t.id!==e);y(v,r),await U(v)}catch(e){console.error("Failed to delete message",e)}},[v,U,P,x,tt,y]),t6=(0,a.useCallback)(()=>{tb&&("thread"===tb.type?t2(tb.id):t4(tb.id),tj(null))},[tb,t2,t4]),t8=(0,a.useCallback)(()=>{tj(null)},[]),t7=(0,a.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>tY()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>tX()}],[tY,tX]),t9=(0,a.useMemo)(()=>{let e=eU?ez.find(e=>e.slug===eU):ez[0];return e?.repos??[]},[ez,eU]),[ae,at]=(0,a.useState)(new Set),aa=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!ta){at(new Set),aa.current=null;return}aa.current!==ta&&(at(new Set),aa.current=ta,fetch(`/api/thread-repos?rootMessageId=${encodeURIComponent(ta)}`).then(e=>e.json()).then(e=>{aa.current===ta&&e.repoIds&&e.repoIds.length>0&&at(new Set(e.repoIds))}).catch(e=>console.warn("[ChatContainer] load thread repos failed:",e)))},[ta]);let ar=(0,a.useCallback)(e=>{at(e),ta&&fetch("/api/thread-repos",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:ta,repoIds:[...e]})}).catch(e=>console.warn("[ChatContainer] save thread repos failed:",e))},[ta]),as=(0,a.useCallback)(e=>{let a=V.some(t=>["spawning","running"].includes(t.state)&&t.threadId===e)||Object.values(J).some(t=>t.rootMessageId===e)?"working":ee.some(t=>t.rootMessageId===e&&"queued"===t.status)?"queued":"ready";return(0,t.jsx)(Y.Composer,{onSend:(t,a,r,s,l,n,i)=>tJ(e,t,a,l,n,i),onStop:()=>en(e),loading:"ready"!==a,activityStatus:a,participants:tR,projectGroups:ez,projects:t$,projectId:eO,projectSlug:eU,messages:P,commands:t7,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:tr,onAutoModeChange:tZ,repos:t9,selectedRepoIds:ae,onRepoSelectionChange:ar})},[tJ,en,J,tR,ez,t$,eO,eU,t7,P,tr,tZ,V,ee,t9,ae,ar]),al=(0,a.useCallback)(()=>{eY(e=>{let t=!e;return tS(t),t})},[tS]),an=(0,a.useCallback)(e=>{eQ(e),(0,Q.persistWorkspaceWidth)(e)},[]),ai=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();eD(t=>t.map(t=>t.id===e.id?e:t))}},ao=(0,a.useCallback)((e,t)=>{eq(a=>{let r=eI(eL,eo,v);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 v&&es(v,l),l})},[v,eL,eo]),ad=(0,a.useCallback)(e=>{let t=eo.find(t=>t.id===e);if(!t||v&&!t.thread_ids?.includes(v))return;let a=t.agents.map(e=>e.agent_id);eq(a),v&&es(v,a)},[eo,v]),ac=(0,a.useCallback)(()=>{eK(e=>"dark"===e?"light":"dark")},[]),au=()=>(0,t.jsx)("button",{type:"button",onClick:ac,"aria-label":"dark"===eJ?"Switch to light theme":"Switch to dark theme",title:"dark"===eJ?"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"===eJ?(0,t.jsx)(ej.Sun,{className:"h-4 w-4",strokeWidth:1.75}):(0,t.jsx)(eb.Moon,{className:"h-4 w-4",strokeWidth:1.75})}),ap=(0,t.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,t.jsx)(ef.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:tw,type:"text",value:tl,onChange:e=>tn(e.target.value),onKeyDown:e=>{"Escape"===e.key&&t_()},placeholder:"Search messages…",className:`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)] ${e?"h-7 text-xs":"h-9"}`}),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:tu?"…":td}),(0,t.jsx)("button",{type:"button",onClick:t_,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):h?null:(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"})]}),ah=e?null:(0,t.jsx)("div",{className:"desktop-titlebar 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:p&&!eG&&(0,t.jsx)("button",{type:"button",onClick:al,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)(ev.PanelLeftOpen,{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:[ap,(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[au(),(0,t.jsx)(ek.StatusIndicator,{}),ta&&(0,t.jsx)("button",{type:"button",onClick:()=>e1(!e0),"aria-label":e0?"Hide logs":`Show logs${_.length>0?` (${_.length})`:""}`,"aria-pressed":e0,title:e0?"Hide logs":`Show logs${_.length>0?` (${_.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)] ${e0?"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)(eg.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,t.jsxs)("div",{className:`flex ${e?"h-full":"h-screen"} bg-[var(--app-shell-bg)] text-[var(--foreground)]`,children:[p?(0,t.jsx)(d.WorkspaceSidebar,{threads:g,participants:eL,activeThreadId:v,isLoading:C,isRestoringActiveThread:I,isCreating:N,deletingThreadId:k,renamingThreadId:S,onSelectThread:b,onCreateThread:j,onRenameThread:M,onDeleteThread:t1,activeParticipantIds:eF,onToggleParticipantActive:ao,visible:eG,onToggle:al,width:eX,onWidthChange:an,projects:eo,onCreateProject:ed,onUpdateProject:e_,onDeleteProject:eR,onAddAgentToProject:e$,onRemoveAgentFromProject:eA,onReorderProjectAgents:eP,onUpdateParticipant:ai,onSelectProject:ad}):null,(0,t.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:I?(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:[ta?(0,t.jsx)("div",{className:"desktop-titlebar 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:[p&&!eG?(0,t.jsx)("button",{type:"button",onClick:al,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)(ev.PanelLeftOpen,{className:"h-4 w-4",strokeWidth:1.75})}):null,(0,t.jsx)("button",{onClick:()=>ts(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)(ex.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:tP}),tE&&(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:tE.color+"40",color:tE.color},children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:tE.color}}),tE.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:[tT.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)}(tA)]}),tq&&(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:tq})]})]})]}),(0,t.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:tT.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 tD(),disabled:tB,title:tW?"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)] ${tB?"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:[tB?(0,t.jsx)(ey.default,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,t.jsx)(ew.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,t.jsx)("span",{className:"hidden sm:inline",children:tW?"Learning...":"Learn from discussion"})]}),!e&&au(),!e&&(0,t.jsx)(ek.StatusIndicator,{}),(0,t.jsx)("button",{type:"button",onClick:()=>e1(!e0),"aria-label":e0?"Hide logs":`Show logs${_.length>0?` (${_.length})`:""}`,"aria-pressed":e0,title:e0?"Hide logs":`Show logs${_.length>0?` (${_.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)] ${e0?"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)(eg.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):ah,tI?(0,t.jsx)(G,{query:tC,results:ti,total:td,participants:eL,threadTitleById:tM,isLoading:tu,error:th,onSelectResult:t0}):ta?(0,t.jsx)(H,{messages:P,streaming:J,participants:eL,rootMessageId:ta,queued:ee.some(e=>e.rootMessageId===ta&&"queued"===e.status),onClose:()=>ts(null),onCopyThread:tL,onAddToChat:tO,onDeleteThreadRoot:t5,onDeleteMessage:t3,highlightedMessageId:tt||void 0,renderReplyComposer:as,activeProcesses:V.filter(e=>["spawning","running"].includes(e.state)&&e.threadId===ta)}):(0,t.jsx)(L,{messages:P,streaming:J,participants:eL,onOpenThread:tG,onCopyThread:tL,onAddToChat:tO,onDeleteThreadRoot:t5,onSummarize:tK,summarizingThreads:tf,deletingThreadRootId:tg,highlightedMessageId:tt,shipModeThreads:e5,onUpdateMessageThreadStatus:v?(e,t)=>{E(a=>a.map(a=>a.id===e?{...a,threadStatus:t}:a)),$(v,e,t),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e,status:t})})}:void 0,onUpdateMessageOutcomeNote:v?(e,t)=>{E(a=>a.map(a=>a.id===e?{...a,outcomeNote:t}:a)),A(v,e,t);let a=P.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&&!ta&&(0,t.jsx)(Y.Composer,{onSend:tQ,onStop:el,loading:"ready"!==et,activityStatus:et,participants:tR,projects:t$,projectGroups:ez,projectId:eO,projectSlug:eU,messages:P,commands:t7,pendingThreadInsert:tz,onClearPendingThread:()=>tU(null),autoMode:tr,onAutoModeChange:tZ,repos:t9,selectedRepoIds:ae,onRepoSelectionChange:ar})]})})}),u&&(0,t.jsx)(eN,{logs:_,participants:eL,onClear:()=>void O(v),open:e0,onToggle:()=>e1(!1)}),(0,t.jsx)(eh.default,{isOpen:null!==tb,title:tb?.type==="thread"?"Delete Discussion":"Delete Message",message:tb?.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:tb?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:t6,onCancel:t8})]})}e.s(["ChatContainer",()=>eT],186552)}]);
@@ -0,0 +1,16 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],640481)},558201,e=>{"use strict";let t=(0,e.i(363732).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],558201)},794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],794731)},203096,e=>{"use strict";let t=(0,e.i(363732).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],203096)},580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function r(e,r){let n=new Set,a=new Set;!function e(t,r){if(t)for(let n of t)r(n),e(n.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",s="string"==typeof t.kind?t.kind:"agent";r&&"agent"===s&&(n.add(r),"parallel"===t.mode&&a.add(r))});let s=t(r);return{...s?{pinnedParticipantId:s}:{},mentionedParticipantIds:Array.from(n),parallelParticipantIds:Array.from(a)}}function n(e,r){let n=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let n of e){if("string"!=typeof n)continue;let e=n.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),a=t(r);return a&&n.includes(a)?[a,...n.filter(e=>e!==a)]:n}e.s(["extractComposerRouting",()=>r,"orderParticipantIds",()=>n])},66386,e=>{"use strict";var t=e.i(935851),r=e.i(506420);function n(e){return"string"!=typeof e?null:e.trim()||null}function a(e,t){return(e.get(t)?.trim()??"")||null}function s(){let e=(0,r.useRouter)(),s=(0,r.usePathname)(),l=(0,r.useSearchParams)(),i=(0,t.useCallback)(e=>a(l,e),[l]),o=(0,t.useCallback)((e,t)=>(function(e,t,r){let s=function(e,t){let r={...t},s=e=>Object.prototype.hasOwnProperty.call(t,e);if(s("issue")&&!s("run")){let s=a(e,"issue");n(t.issue)!==s&&(r.run=null)}if(s("job")&&!s("run")){let s=a(e,"job");n(t.job)!==s&&(r.run=null)}if(s("open")&&!s("message")){let s=a(e,"open");n(t.open)!==s&&(r.message=null)}if(s("group")&&!s("issue")){let s=a(e,"group");n(t.group)!==s&&(r.issue=null,r.run=null)}if(s("issue")&&!s("group")){let s=a(e,"issue");n(t.issue)!==s&&(r.group=null)}return r}(t,r),l=new URLSearchParams(t.toString());for(let[e,t]of Object.entries(s)){let r=n(t);r?l.set(e,r):l.delete(e)}let i=l.toString();return i?`${e}?${i}`:e})(t??s,l,e),[s,l]),u=(0,t.useCallback)((t,r)=>{e.push(o(t,r))},[o,e]),c=(0,t.useCallback)((t,r)=>{e.replace(o(t,r))},[o,e]);return{pathname:s,searchParams:l,getSelection:i,buildHref:o,pushSelection:u,replaceSelection:c}}e.s(["useUrlSelection",()=>s])},352687,e=>{"use strict";var t=e.i(762281),r=e.i(935851);function n({isOpen:e,title:n,message:a,preview:s,confirmLabel:l="Confirm",cancelLabel:i="Cancel",variant:o="default",onConfirm:u,onCancel:c}){let d=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(e){let e=setTimeout(()=>d.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let f=(0,r.useCallback)(e=>{"Escape"===e.key&&c()},[c]);if(!e)return null;let m="danger"===o;return(0,t.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&c(),onKeyDown:f,children:[(0,t.jsxs)("div",{ref:p,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,t.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[m&&(0,t.jsx)("div",{className:"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",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,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"})})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:n}),(0,t.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:a})]})]})}),s&&(0,t.jsx)("div",{className:"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:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",s,"”"]})}),(0,t.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,t.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,t.jsx)("button",{onClick:c,className:"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:d,onClick:u,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${m?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:l})]})]}),(0,t.jsx)("style",{children:`
2
+ @keyframes confirm-overlay-in {
3
+ from { opacity: 0; }
4
+ to { opacity: 1; }
5
+ }
6
+ @keyframes confirm-dialog-in {
7
+ from {
8
+ opacity: 0;
9
+ transform: scale(0.9) translateY(10px);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ transform: scale(1) translateY(0);
14
+ }
15
+ }
16
+ `})]})}e.s(["default",()=>n])},945028,490011,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function n(e){return`workspaceId=${encodeURIComponent(e)}`}function a(e){let[a,s]=(0,t.useState)([]),[l,i]=(0,t.useState)([]),[o,u]=(0,t.useState)([]),c=(0,t.useRef)(e),d=(0,t.useRef)(e);c.current=e,d.current!==e&&(d.current=e,s([]),i([]),u([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){s([]),i([]);return}let a=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${a}`),fetch(`/api/logs?${n(t)}`)]);if(c.current!==t)return;e.ok&&s(await e.json()),r.ok&&i(await r.json())}catch{}},[]),f=(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){s([]),i([]);return}let a=r(t);await Promise.all([fetch(`/api/history?${a}`,{method:"DELETE"}),fetch(`/api/logs?${n(t)}`,{method:"DELETE"})]),c.current===t&&(s([]),i([]))},[]),m=(0,t.useCallback)(async(e,t=10,r,n,a,l,i,o,d,p)=>{let f=r?.trim()||c.current?.trim();if(!f)return;let m=Date.now(),h=crypto.randomUUID(),g={id:h,role:"user",participantId:null,content:e,timestamp:m,rootMessageId:n||null,parentMessageId:n||null,depth:+!!n,...l&&l.length>0?{attachments:l}:{}};s(e=>[...e,g]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:f,prompt:e,promptPrefix:d||void 0,maxRounds:t,userMessageId:h,rootMessageId:n||void 0,attachmentIds:a?.length?a:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0,routing:p})}),l=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&l?.chatRunId?u(e=>[{chatRunId:l.chatRunId,threadId:f,rootMessageId:n||h,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==l.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,l?.error||r.statusText),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e))}return h},[]),h=(0,t.useCallback)(async()=>{let e=c.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),g=(0,t.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:a,setMessages:s,logs:l,sendMessage:m,loadHistory:p,clearHistory:f,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();t?(await fetch(`/api/logs?${n(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),c.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:u,stop:h,stopThread:g}}e.s(["useGroupChat",()=>a],945028);let s=new Set(["spawning","running"]);function l(e,r){let n=r?.intervalMs??1500,a=r?.idleIntervalMs??1e4,[l,i]=(0,t.useState)(new Set),[o,u]=(0,t.useState)([]),[c,d]=(0,t.useState)({}),[p,f]=(0,t.useState)([]),m=(0,t.useRef)(e);m.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let h=(0,t.useRef)(r?.setMessages);h.current=r?.setMessages;let g=(0,t.useRef)(0),y=(0,t.useRef)(new Map),I=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of y.current.values())e.close();y.current.clear()},[]);let b=(0,t.useCallback)(async()=>{let e=m.current;if(!e){i(new Set),u([]),d({}),f([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){i(new Set),u([]),d({}),f([]);return}try{let n=e.workspaceId||e.threadId,a=n?`/api/history?threadId=${encodeURIComponent(n)}&since=${g.current}`:null,l=n?`/api/chat-runs?threadId=${encodeURIComponent(n)}&limit=20`:null,o=[fetch(t)];a&&o.push(fetch(a)),l&&o.push(fetch(l));let[c,d,p]=await Promise.all(o),y=m.current;if(y?.threadId!==e.threadId||y?.workspaceId!==e.workspaceId)return;if(c.ok){let e=await c.json();u(e);let t=new Set(e.filter(e=>s.has(e.state)).map(e=>e.agentId));i(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.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,n="string"==typeof e.status?e.status:null,a="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&n&&("queued"===n||"running"===n||"awaiting_user"===n||"blocked"===n||"completed"===n||"failed"===n||"cancelled"===n)?{chatRunId:t,threadId:r,rootMessageId:a,status:n,optimistic:!1}:null}).filter(e=>!!e):[]);f(e)}if(d?.ok&&h.current){let e=await d.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t),h.current(t=>{let r=new Set(t.map(e=>e.id)),n=e.filter(e=>!r.has(e.id)),a=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===n.length?a:[...a,...n].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of y.current.entries())t.has(e)||(r.close(),y.current.delete(e),I.current.delete(e));for(let t of e){if(y.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);y.current.set(t.chatRunId,e);let r=new Map;I.current.set(t.chatRunId,r);let n=new Set;e.addEventListener("chat",a=>{let s;try{s=JSON.parse(a.data)}catch{return}switch(s.type){case"participant-start":case"participant-thinking":n.add(s.participantId),r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]}),d(e=>e[s.participantId]?e:{...e,[s.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]});let e=r.get(s.participantId);e&&(e.text+=s.delta,d(r=>{let n={...r},a=t.rootMessageId??null;return n[s.participantId]={content:e.text,rootMessageId:a},n}));break}case"participant-thought":{let e=r.get(s.participantId);e&&(e.thoughts.push(s.content),d(t=>{let r=t[s.participantId];return r?{...t,[s.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":n.delete(s.participantId),b().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"participant-error":n.delete(s.participantId),b().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"done":e.close(),y.current.delete(t.chatRunId),I.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),y.current.delete(t.chatRunId),I.current.delete(t.chatRunId)}}},[p]);let x=e?.threadId||e?.workspaceId||null,k=p.some(e=>"queued"===e.status||"running"===e.status),v=o.some(e=>s.has(e.state)),j=k||v?n:a;return(0,t.useEffect)(()=>{if(!x){i(new Set),u([]),d({}),f([]);return}b();let e=setInterval(b,j);return()=>clearInterval(e)},[x,j,b]),{activeAgents:l,processes:o,streaming:c,chatRuns:p,poll:b}}e.s(["useProcessPolling",()=>l],490011)},781873,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return a}});let n=e.r(804984);function a({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},373512,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},974052,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let n=e.r(762281),a=e.r(866389),s=e.r(721014),l=e.r(373512),i=e.r(162998);function o({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,i.getDeploymentIdQueryOrEmptyString)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,a.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},184790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}});let n=e.r(762281),a=e.r(935851),s=e.r(781873),l=e.r(974052);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},r=(0,a.lazy)(()=>t.loader().then(i)),u=t.loading;function c(e){let i=u?(0,n.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?a.Suspense:a.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(c,{...o?{fallback:i}:{},children:d})}return c.displayName="LoadableComponent",c}},353899,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(555682)._(e.r(184790));function a(e,t){let r={};"function"==typeof e&&(r.loader=e);let a={...r,...t};return(0,n.default)({...a,modules:a.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},544832,e=>{"use strict";var t=e.i(762281),r=e.i(935851),n=e.i(524123),a=e.i(827430);function s({params:e}){let{slug:s}=(0,r.use)(e),{projects:l,isLoading:i}=(0,n.useProjects)(),o=l.find(e=>e.slug===s);return i?(0,t.jsx)("div",{className:"px-6 py-6 text-sm text-[var(--muted-foreground)]",children:"Loading automations..."}):o?(0,t.jsx)(a.default,{projectId:o.id,requireProjectId:!0}):(0,t.jsx)("div",{className:"px-6 py-6 text-sm text-[var(--muted-foreground)]",children:"Project not found."})}e.s(["default",()=>s])},501223,e=>{e.v(t=>Promise.all(["static/chunks/d5607ac80145f3b7.js","static/chunks/42a62b80b32a97f7.js","static/chunks/94f26a112344ab1b.css"].map(t=>e.l(t))).then(()=>t(844118)))},469612,e=>{e.v(t=>Promise.all(["static/chunks/256961ed1522219b.js"].map(t=>e.l(t))).then(()=>t(668610)))}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,524123,e=>{"use strict";var t=e.i(935851);function r(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!1),[o,s]=(0,t.useState)(null),i=(0,t.useCallback)(async()=>{n(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),s(null)}catch(e){s(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[]);(0,t.useEffect)(()=>{i()},[i]);let l=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:o,refetch:i,createProject:l,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?n:t)),n},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}}function a(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!0),o=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,n]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),n.ok&&(r=((await n.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{n(!1)}},[]);(0,t.useEffect)(()=>{o()},[o]);let s=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,n=a.name.trim(),o=(a.slug||n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),s=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:n,slug:o})});if(!s.ok)return null;let{project:i}=await s.json(),l=Array.isArray(t)?t:t?[t]:[];for(let e of l)await fetch(`/api/projects/${i.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(e=>console.warn("[useProjects] link thread failed:",e));let c={...i,repos:i.repos??[],agents:[],thread_ids:l,workspace_ids:l};return r(e=>[...e,c].sort((e,t)=>e.name.localeCompare(t.name))),c}catch{return null}},[]),i=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),l=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...n,repos:n.repos??t.repos}:t)),n}catch{return null}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:s,updateProject:c,renameProject:i,deleteProject:l,addAgent:d,removeAgent:u,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await o()}catch{}},[o]),refresh:o}}e.s(["useProjects",()=>r,"useProjectsWithAgents",()=>a])},506420,(e,t,r)=>{t.exports=e.r(27944)},902572,e=>{"use strict";let t="project_objectives_workspace",r="project_goals_workspace",a=new Set(["on_track","at_risk","off_track","done"]);function n(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function o(e){return`${e}_${Math.random().toString(36).slice(2,10)}`}function s(e){return[...e].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))}function i(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function l(e){return[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}function c(e,t=""){return"string"==typeof e?e:t}function d(e){return Array.isArray(e)?Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[]}function u(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}function p(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function f(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}function m(e,t="objective"){let r=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return r||t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function h(e,t,r="objective"){let a=m(r),n=m(e,a),o=n,s=2;for(;t.has(o);){let e=`-${s}`,t=Math.max(1,32-e.length);o=`${n.slice(0,t)}${e}`,s+=1}return t.add(o),o}function b(e,t,r){return h(e,new Set(t.filter(e=>e.id!==r).map(e=>m(e.key||e.title||e.id))),r??e)}function y(e){var t;if(!n(e))return null;let r=u(e.updatedAt??e.createdAt),s=u(e.createdAt,r);return{id:c(e.id,o("objective")),title:c(e.title,"Untitled objective"),teamId:c(e.teamId??e.team_id??e.ownerTeamId),key:m(c(e.key??e.slug??e.label),c(e.title??e.id,"objective")),threadId:c(e.threadId)||null,chatSessionVersion:f(e.chatSessionVersion,0),scheduledTaskIds:d(e.scheduledTaskIds??e.promptJobIds),summary:c(e.summary),progress:p(e.progress),status:"string"==typeof(t=e.status)&&a.has(t)?t:"on_track",createdAt:s,updatedAt:r}}function v(e){if(!n(e))return null;let t=u(e.updatedAt??e.createdAt),r=u(e.createdAt,t),a=c(e.objectiveId??e.goalId);return a?{id:c(e.id,o("objective_activity")),objectiveId:a,sourceType:"note",sourceLabel:c(e.sourceLabel,"Update"),title:c(e.title,"Untitled activity"),body:c(e.body),createdAt:r,updatedAt:t,relatedTaskId:c(e.relatedTaskId)||null}:null}function g(e){if(!n(e))return null;let t=c(e.activityId);return t?{id:c(e.id,o("objective_thread_message")),activityId:t,author:c(e.author,"You"),body:c(e.body),createdAt:u(e.createdAt)}:null}function x(){return{objectives:[],activities:[],activityThreads:{}}}function j(e){let t;if(!n(e))return x();let r=Array.isArray(e.objectives)?e.objectives.map(e=>y(e)).filter(e=>null!==e):[],a=Array.isArray(e.activities)?e.activities.map(e=>v(e)).filter(e=>null!==e):[],o=n(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,i(Array.isArray(t)?t.map(e=>g(e)).filter(e=>null!==e):[])])):{};return{objectives:s((t=new Set,r.map(e=>{let r=h(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===r?e:{...e,key:r}}))),activities:l(a),activityThreads:o}}function _(e){if(!n(e))return x();let a=e[t];if(void 0!==a){let e=j(a);if(e.objectives.length>0||e.activities.length>0||Object.keys(e.activityThreads).length>0)return e}let o=e[r];if(void 0!==o){if(!n(o))return x();let e=Array.isArray(o.goals)?o.goals.map(e=>(function(e){if(!n(e))return null;let t=c(e.target),r=[c(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return y({...e,summary:r})})(e)).filter(e=>null!==e):[],t=Array.isArray(o.manualActivities)?o.manualActivities.map(e=>v({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=n(o.activityThreads)?Object.fromEntries(Object.entries(o.activityThreads).map(([e,t])=>[e,i(Array.isArray(t)?t.map(t=>g({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:s(e),activities:l(t),activityThreads:r}}return x()}function w(e,a){let n={...e};return delete n[r],n[t]=j(a),n}function N(e){return{id:e.id??o("objective"),title:e.title.trim(),teamId:e.teamId.trim(),key:m(e.key?.trim()??e.title.trim(),e.id??e.title),threadId:"string"==typeof e.threadId&&e.threadId.trim()?e.threadId.trim():null,chatSessionVersion:f(e.chatSessionVersion??2,2),scheduledTaskIds:d(e.scheduledTaskIds??[]),summary:e.summary?.trim()??"",progress:p(e.progress??0),status:e.status??"on_track",createdAt:e.now,updatedAt:e.now}}function C(e,t){let r=e.objectives.findIndex(e=>e.id===t.id)>=0?e.objectives.map(e=>e.id===t.id?t:e):[t,...e.objectives];return{...e,objectives:s(r)}}function k(e,t){let r=new Set(e.activities.filter(e=>e.objectiveId===t).map(e=>e.id)),a=Object.fromEntries(Object.entries(e.activityThreads).filter(([e])=>!r.has(e)));return{objectives:e.objectives.filter(e=>e.id!==t),activities:e.activities.filter(e=>e.objectiveId!==t),activityThreads:a}}function T({objective:e,workspace:t}){return t.activities.filter(t=>t.objectiveId===e.id).map(e=>({...e,threadCount:t.activityThreads[e.id]?.length??0})).sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}e.s(["CURRENT_OBJECTIVE_CHAT_SESSION_VERSION",0,2,"LEGACY_PROJECT_GOALS_METADATA_KEY",0,r,"PROJECT_HEALTH_METADATA_KEY",0,"project_health_snapshot","PROJECT_OBJECTIVES_METADATA_KEY",0,t,"buildObjectiveTimelineActivities",()=>T,"createProjectObjective",()=>N,"generateProjectObjectiveKey",()=>b,"readProjectObjectivesWorkspace",()=>_,"removeProjectObjective",()=>k,"upsertProjectObjective",()=>C,"writeProjectObjectivesWorkspace",()=>w])},571278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return l},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return i}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function o(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,s(e));else t.set(r,s(a));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},13168,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(190809)._(e.r(571278)),s=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",i=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(o.urlQueryToSearchParams(l)));let d=e.search||l&&`?${l}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||s.test(a))&&!1!==c?(c="//"+(c||""),n&&"/"!==n[0]&&(n="/"+n)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),d&&"?"!==d[0]&&(d="?"+d),n=n.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${a}${c}${n}${d}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},950581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(935851);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=o(e,a)),t&&(n.current=o(t,a))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},692942,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return x},NormalizeError:function(){return v},PageNotFoundError:function(){return g},SP:function(){return h},ST:function(){return b},WEB_VITALS:function(){return o},execOnce:function(){return s},getDisplayName:function(){return u},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return _}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>i.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function m(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&p(r))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let h="u">typeof performance,b=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class v extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function _(e){return JSON.stringify({message:e.message,stack:e.stack})}},299242,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let a=e.r(692942),n=e.r(756972);function o(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},405374,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},307241,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return y},useLinkStatus:function(){return g}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(190809),s=e.r(762281),i=o._(e.r(935851)),l=e.r(13168),c=e.r(543665),d=e.r(950581),u=e.r(692942),p=e.r(212591);e.r(292135);let f=e.r(53101),m=e.r(299242),h=e.r(979945);function b(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function y(t){var r;let a,n,o,[l,y]=(0,i.useOptimistic)(f.IDLE_LINK_STATUS),g=(0,i.useRef)(null),{href:x,as:j,children:_,prefetch:w=null,passHref:N,replace:C,shallow:k,scroll:T,onClick:S,onMouseEnter:E,onTouchStart:A,legacyBehavior:P=!1,onNavigate:O,ref:I,unstable_dynamicOnHover:L,...$}=t;a=_,P&&("string"==typeof a||"number"==typeof a)&&(a=(0,s.jsx)("a",{children:a}));let M=i.default.useContext(c.AppRouterContext),R=!1!==w,U=!1!==w?null===(r=w)||"auto"===r?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:D,as:F}=i.default.useMemo(()=>{let e=b(x);return{href:e,as:j?b(j):e}},[x,j]);if(P){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=i.default.Children.only(a)}let B=P?n&&"object"==typeof n&&n.ref:I,J=i.default.useCallback(e=>(null!==M&&(g.current=(0,f.mountLinkInstance)(e,D,M,U,R,y)),()=>{g.current&&((0,f.unmountLinkForCurrentNavigation)(g.current),g.current=null),(0,f.unmountPrefetchableInstance)(e)}),[R,D,M,U,y]),K={ref:(0,d.useMergedRef)(J,B),onClick(t){P||"function"!=typeof S||S(t),P&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!M||t.defaultPrevented||function(t,r,a,n,o,s,l){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(977803);i.default.startTransition(()=>{u(a||r,o?"replace":"push",s??!0,n.current)})}}(t,D,F,g,C,T,O)},onMouseEnter(e){P||"function"!=typeof E||E(e),P&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),M&&R&&(0,f.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){P||"function"!=typeof A||A(e),P&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),M&&R&&(0,f.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,u.isAbsoluteUrl)(F)?K.href=F:P&&!N&&("a"!==n.type||"href"in n.props)||(K.href=(0,p.addBasePath)(F)),o=P?i.default.cloneElement(n,K):(0,s.jsx)("a",{...$,...K,children:a}),(0,s.jsx)(v.Provider,{value:l,children:o})}e.r(405374);let v=(0,i.createContext)(f.IDLE_LINK_STATUS),g=()=>(0,i.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},810605,e=>{"use strict";e.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_UPDATE_CHECK_MS",0,18e5])},535208,e=>{"use strict";var t=e.i(762281),r=e.i(935851);function a({initialPath:e,onSelect:a,onCancel:n}){let[o,s]=(0,r.useState)(e||""),[i,l]=(0,r.useState)(null),[c,d]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null),f=(0,r.useRef)(null),m=(0,r.useCallback)(async e=>{d(!0),p(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void p(a.error||"Failed to browse");l(a),s(a.current),f.current?.scrollTo(0,0)}catch{p("Failed to connect")}finally{d(!1)}},[]);return(0,r.useEffect)(()=>{m(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m(o)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>m(o),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:f,className:"max-h-48 overflow-y-auto",children:[c&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!c&&i&&(0,t.jsxs)("div",{className:"py-1",children:[i.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>m(i.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===i.dirs.length&&!i.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),i.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>m(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:i?.current||o}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:n,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(i?.current||o),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}let n={name:"",description:""},o={name:"",path:"",notes:""};function s(){let[e,t]=(0,r.useState)(n),[a,s]=(0,r.useState)([o]),[i,l]=(0,r.useState)(!1),[c,d]=(0,r.useState)(null),u=(0,r.useCallback)((e,t,r)=>{s(a=>a.map((a,n)=>n===e?{...a,[t]:r}:a))},[]),p=(0,r.useCallback)(()=>{s(e=>[...e,{...o}])},[]),f=(0,r.useCallback)(e=>{s(t=>t.filter((t,r)=>r!==e))},[]),m=(0,r.useCallback)(()=>{t(n),s([o]),d(null)},[]),h=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?s(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):s([o]),d(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:u,addRepo:p,removeRepo:f,resetForm:m,hydrateFromProject:h,isSubmitting:i,setIsSubmitting:l,formError:c,setFormError:d}}function i(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}}function l({form:e,repos:n,isEditingProject:o,isSubmitting:s,onFieldChange:i,onRepoChange:l,onAddRepo:c,onRemoveRepo:d}){let[u,p]=(0,r.useState)([]),[f,m]=(0,r.useState)(null),h=(0,r.useRef)(0);(0,r.useEffect)(()=>{o?p([]):p(n.map((e,t)=>t)),h.current=n.length},[o,n.length]),(0,r.useEffect)(()=>{if(!o){h.current=n.length;return}let e=h.current;p(t=>{let r=t.filter(e=>e<n.length);return n.length>e&&r.push(...Array.from({length:n.length-e},(t,r)=>e+r)),r}),h.current=n.length},[o,n.length]);let b=(0,r.useCallback)(e=>{p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),y=(0,r.useCallback)(e=>!o||u.includes(e),[u,o]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>i("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:s})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>i("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:s})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:"Code repos, doc folders, design assets, config directories — any path your team needs access to."})]}),(0,t.jsx)("button",{type:"button",onClick:c,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:s,children:"+ Add Folder"})]}),(0,t.jsx)("div",{className:"space-y-4",children:n.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",r+1]}),o&&!y(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed folder"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[o&&(0,t.jsx)("button",{type:"button",onClick:()=>b(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:s,children:y(r)?"Done":"Edit"}),n.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>d(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:s,children:"Remove"})]})]}),y(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>l(r,"name",e.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:s}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>l(r,"path",e.target.value),placeholder:"Local path to folder",className:`input text-sm flex-1${e.name.trim()&&!e.path.trim()?" border-[var(--destructive)]/50 ring-1 ring-[var(--destructive)]/20":""}`,disabled:s}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&l(r,"path",t.path)}catch{m(f===r?null:r)}},className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:s,children:"Browse"})]}),e.name.trim()&&!e.path.trim()&&(0,t.jsx)("p",{className:"text-[11px] text-[var(--destructive)]",children:"Local path is required"})]}),f===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a,{initialPath:e.path||"",onSelect:e=>{l(r,"path",e),m(null)},onCancel:()=>m(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>l(r,"notes",e.target.value),placeholder:"Notes for this folder — e.g. coding conventions, deploy steps, ownership, doc standards...",className:"input text-sm w-full min-h-24 resize-y",disabled:s})})]}):null]},r))})]})]})}function c({isOpen:e,onClose:a,onSubmit:n,editingProject:o,form:s,repos:i,isSubmitting:c,formError:d,onFieldChange:u,onRepoChange:p,onAddRepo:f,onRemoveRepo:m}){let[h,b]=(0,r.useState)([]);(0,r.useEffect)(()=>{let e=!1;return async function(){if(!o)return b([]);try{let t=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(o.id)}`),r=(t.ok?await t.json():{note:null}).note;e||b(r?.content?[{id:r.id,content:r.content,created_at:r.updatedAt??r.createdAt,source:r.sourceType}]:[])}catch{e||b([])}}(),()=>{e=!0}},[o]);let y=i.some(e=>e.name.trim()&&!e.path.trim()),v=!s.name.trim()||y;return e?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:o?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:o?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[o&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),h.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:h.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,t.jsx)(l,{form:s,repos:i,isEditingProject:!!o,isSubmitting:c,onFieldChange:u,onRepoChange:p,onAddRepo:f,onRemoveRepo:m}),d&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:d})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:n,disabled:c||v,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:c?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):o?"Save Changes":"Create Project"})]})]})}):null}e.s(["createProjectPayload",()=>i,"default",()=>c,"useProjectFormState",()=>s],535208)}]);