@mndrk/agx 2.4.6 → 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 (357) 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_b8e580cc._.js +4 -0
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +2 -2
  254. 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
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +3 -3
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eb223411._.js +18 -0
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_7d1abfbf._.js → apps_local_f1c9872a._.js} +2 -2
  258. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +3 -0
  259. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  260. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  262. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  263. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  264. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08e75b35d6c52269.js +1 -0
  267. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +1 -0
  268. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{cb19d71dd7ffb935.js → 1585dd5f9ec4866a.js} +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +1 -0
  270. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +16 -0
  271. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2aa24a251622fd06.js +5 -0
  272. package/cloud-runtime/standalone/apps/local/.next/static/chunks/39513207112d6828.js +1 -0
  273. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{74e3a3e93be78db8.js → 40857295bb9226c4.js} +7 -7
  274. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8d8fe711583a59f0.js → 41ae15220fc19bf7.js} +2 -2
  275. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5092f14c2bf43204.js +16 -0
  276. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5159169343ce6d2f.css +1 -0
  277. package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +1 -0
  278. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7bfbfcd072f8d61e.js +20 -0
  279. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7cf26dd04166f32f.js +6 -0
  280. package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dcb743d23feeca.js +16 -0
  281. package/cloud-runtime/standalone/apps/local/.next/static/chunks/93749b45e2700808.js +16 -0
  282. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{48feca51cf97c8a7.js → 9bb8f1406365af81.js} +1 -1
  283. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b4aa71020acae46f.js +16 -0
  284. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +1 -0
  285. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +16 -0
  286. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1600dd6ff8607d8f.js → c9a2c4b55bb76f4f.js} +6 -6
  287. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d6a9cc66254693b8.js +1 -0
  288. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{9e703dd5d95e9557.js → e3bdd1e0f385114e.js} +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6ffcd12eabd7c65e.js → f71d73895d228547.js} +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f750d2f1882d31a8.js +5 -0
  291. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -10
  292. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/program/route.ts +77 -0
  293. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/export/route.ts +35 -0
  294. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/import/route.ts +91 -0
  295. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +1 -8
  296. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  297. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/thread/page.tsx +14 -0
  298. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +15 -15
  299. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +7 -12
  300. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +51 -196
  301. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +662 -784
  302. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +7 -10
  303. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
  304. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +118 -0
  305. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSettings.tsx +81 -7
  306. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +13 -3
  307. package/cloud-runtime/standalone/apps/local/hooks/useProjectWorkspace.ts +117 -0
  308. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +14 -10
  309. package/cloud-runtime/standalone/apps/local/lib/project-workspace.ts +80 -0
  310. package/cloud-runtime/standalone/apps/local/lib/task-context.ts +39 -4
  311. package/cloud-runtime/standalone/apps/local/lib/workspace-yaml.ts +164 -0
  312. package/cloud-runtime/standalone/apps/local/src/objectives/program/index.ts +7 -0
  313. package/cloud-runtime/standalone/apps/local/src/objectives/program/repository.ts +60 -0
  314. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +12 -0
  315. package/cloud-runtime/standalone/apps/local/src/scheduling/status.ts +42 -0
  316. package/cloud-runtime/standalone/apps/local/worker/index.js +14 -9
  317. package/lib/commands/workspace.js +145 -7
  318. package/package.json +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_09d85861._.js +0 -91
  320. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +0 -11
  321. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2caf4398._.js +0 -91
  322. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_31ca7a35._.js +0 -91
  323. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +0 -3
  324. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__23838f87._.js +0 -3
  325. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +0 -3
  326. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +0 -3
  327. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +0 -3
  328. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +0 -3
  329. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +0 -3
  330. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__a61463b8._.js +0 -7
  331. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +0 -3
  332. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +0 -3
  333. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ecd68e8._.js +0 -3
  334. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +0 -7
  335. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_5c140c38._.js +0 -7
  336. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +0 -3
  337. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_30d021de._.js +0 -3
  338. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +0 -18
  339. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +0 -3
  340. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_8cc1a335._.js +0 -3
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +0 -16
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/692103d55fcd0328.js +0 -5
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +0 -16
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +0 -1
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +0 -16
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/87e4fb11329a358d.js +0 -1
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/92467c495ad08a85.js +0 -5
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +0 -16
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/94a66d2d19268d25.js +0 -5
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/add53c2fe147af75.css +0 -1
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +0 -1
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d662272e49df1950.js +0 -20
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e0d68c6af17c8c87.js +0 -1
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +0 -16
  355. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → xVMVGrzDjtD1H0bGL76NJ}/_buildManifest.js +0 -0
  356. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → xVMVGrzDjtD1H0bGL76NJ}/_clientMiddlewareManifest.json +0 -0
  357. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → xVMVGrzDjtD1H0bGL76NJ}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[970393,a=>{"use strict";let b=(0,a.i(831709).default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);a.s(["PanelLeftOpen",()=>b],970393)},508869,a=>{"use strict";let b=(0,a.i(831709).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);a.s(["Sun",()=>b],508869)},523321,a=>{"use strict";let b=(0,a.i(831709).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);a.s(["Moon",()=>b],523321)},166621,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(850985),e=a.i(639211);function f(){let[a,f]=(0,c.useState)("unknown"),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(!1),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void f("unknown");let b=await a.json();f("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);h(c),j(new Date().toLocaleTimeString())}catch{f("unknown"),h([])}},[]);return(0,c.useEffect)(()=>{m();let a=setInterval(m,e.UI_POLL_SYSTEM_STATUS_MS);return()=>clearInterval(a)},[m]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[(0,b.jsx)(d.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),k&&(0,b.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[g.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:g.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),i&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",i]})]})]})}a.s(["StatusIndicator",()=>f])},550158,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(197180),e=a.i(811760),f=a.i(66456),g=a.i(157633),h=a.i(736868),i=a.i(831709);let j=(0,i.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var k=a.i(353532),l=a.i(542341),m=a.i(824179),n=a.i(489461),o=a.i(97723),p=a.i(985339);let q=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var r=a.i(737313),s=a.i(144462);let t=(0,i.default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]),u=(0,i.default)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),v=(0,i.default)("git-pull-request",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]);var w=a.i(850985),x=a.i(529889),y=a.i(639211),z=a.i(8e4),A=a.i(188834),B=a.i(769677),C=a.i(599086),D=a.i(756490);let E=(0,i.default)("book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),F=(0,i.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var G=a.i(392045);let H={linear:"Linear",jira:"Jira",intercom:"Intercom",freshdesk:"Freshdesk",github:"GitHub"};function I(a){return H[a]??a.charAt(0).toUpperCase()+a.slice(1)}function J({projectSlug:a,trackerConnections:d,activeTrackerType:e,isTrackingActive:f,onLinkClick:g}){let h=[...d].sort((a,b)=>new Date(a.connectedAt).getTime()-new Date(b.connectedAt).getTime()),i=h.filter(a=>a.connected),j=h.filter(a=>!a.connected),l=i.some(a=>"github"===a.type),[m,n]=(0,c.useState)([]),[o,p]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{if(!l)return void n([]);let a=!1;return fetch("/api/github/repos",{cache:"no-store"}).then(a=>a.ok?a.json():{repos:[]}).then(b=>{a||n(b.repos??[])}).catch(()=>{a||n([])}),()=>{a=!0}},[l]),(0,b.jsxs)(b.Fragment,{children:[0===i.length&&0===j.length&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:`workspace-sidebar__nav-item ${f?"workspace-sidebar__nav-item--active":""}`,children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect Tracker"})]})}),i.map(c=>{let d=f&&e===c.type;return(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item",children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:`workspace-sidebar__nav-item flex-1 ${d?"workspace-sidebar__nav-item--active":""}`,"aria-current":d?"page":void 0,children:[(0,b.jsx)(G.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:I(c.type)})]}),"github"===c.type&&m.length>0&&(0,b.jsx)("button",{type:"button","aria-label":o?"Collapse GitHub repos":"Expand GitHub repos","aria-expanded":o,onClick:()=>p(a=>!a),className:"p-1 rounded hover:bg-[var(--item-hover-bg)] text-[var(--muted-foreground)]",children:(0,b.jsx)(D.ChevronRight,{size:12,className:`transition-transform ${o?"rotate-90":""}`})})]}),"github"===c.type&&o&&m.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-0.5 mt-0.5 pl-5",children:m.map(c=>(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/github?repo=${encodeURIComponent(c.id)}`,onClick:g,className:"workspace-sidebar__nav-item",title:c.id,children:[c.private?(0,b.jsx)(F,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}):(0,b.jsx)(E,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs text-[var(--muted-foreground)] truncate",children:c.name})]},c.id))})]},c.type)}),j.map(c=>(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(G.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:I(c.type)}),(0,b.jsx)("span",{className:"ml-auto shrink-0",title:"Connection issue — click to reconnect",children:(0,b.jsx)(C.AlertTriangle,{size:12,className:"text-yellow-500"})})]})},c.type)),(i.length>0||j.length>0)&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect"})]})})]})}var K=a.i(70014),L=a.i(227444);function M({compact:a=!1}){return(0,b.jsxs)("span",{className:`workspace-sidebar__brand-logo${a?" workspace-sidebar__brand-logo--compact":""}`,"aria-hidden":"true",children:[(0,b.jsx)("img",{src:"/logo_dark.png",alt:"AGX",className:"block dark:hidden",style:{height:28}}),(0,b.jsx)("img",{src:"/logo_light.png",alt:"AGX",className:"hidden dark:block",style:{height:28}})]})}function N({label:a,children:e}){let f=(0,c.useRef)(null),[g,h]=(0,c.useState)(null);return(0,b.jsxs)("div",{ref:f,onMouseEnter:()=>{let a=f.current?.firstElementChild??f.current;if(!a)return;let b=a.getBoundingClientRect();h({top:b.top+b.height/2,left:b.right+8})},onMouseLeave:()=>h(null),style:{display:"contents"},children:[e,g&&(0,d.createPortal)((0,b.jsx)("div",{className:"workspace-sidebar__rail-tooltip",style:{top:g.top,left:g.left,transform:"translateY(-50%)"},children:a}),document.body)]})}function O({projects:a,activeProjectId:d,onSelectProject:f,onCreateProject:h}){let[i,j]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=a.find(a=>a.id===d)??a[0],s=n.trim()?a.filter(a=>a.name.toLowerCase().includes(n.toLowerCase())):a;return(0,c.useEffect)(()=>{if(!i)return;let a=a=>{p.current&&!p.current.contains(a.target)&&(j(!1),o(""))};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[i]),(0,c.useEffect)(()=>{i&&q.current&&q.current.focus()},[i]),(0,b.jsxs)("div",{className:"relative px-3 pt-3 pb-2",ref:p,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>j(!i),className:"flex w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 py-2 text-sm text-[var(--foreground)] transition-all hover:border-[var(--app-shell-border-strong)]",children:[(0,b.jsx)(g.Folder,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left font-medium",children:r?.name??"Select project"}),(0,b.jsx)(e.ChevronDown,{size:14,className:`flex-shrink-0 text-[var(--muted-foreground)] transition-transform ${i?"rotate-180":""}`})]}),i&&(0,b.jsxs)("div",{className:"absolute left-3 right-3 z-50 mt-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--app-shell-border)]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-2 py-1.5",children:[(0,b.jsx)(l.Search,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{ref:q,type:"text",value:n,onChange:a=>o(a.target.value),placeholder:"Search projects...",className:"flex-1 bg-transparent text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] outline-none"}),n&&(0,b.jsx)("button",{type:"button",onClick:()=>o(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(m.X,{size:10})})]})}),(0,b.jsxs)("div",{className:"max-h-52 overflow-y-auto py-1",children:[s.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{f?.(a.id),j(!1),o("")},className:`flex w-full items-center gap-2 px-3 py-1.5 text-sm transition-colors hover:bg-[var(--app-shell-subtle)] ${a.id===r?.id?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:[(0,b.jsx)(g.Folder,{size:12,className:"flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)),0===s.length&&(0,b.jsx)("p",{className:"px-3 py-2 text-xs text-[var(--muted-foreground)]",children:"No projects found"})]}),(0,b.jsx)("div",{className:"border-t border-[var(--app-shell-border)] p-1",children:(0,b.jsxs)("button",{type:"button",onClick:()=>{j(!1),o(""),h()},className:"flex w-full items-center gap-2 rounded-md px-2.5 py-1.5 text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(k.Plus,{size:12}),(0,b.jsx)("span",{children:"New project"})]})})]})]})}function P({threads:a,participants:e=[],activeThreadId:g,isLoading:i,isCreating:l,onSelectThread:C,onCreateThread:D,onRenameThread:E,onDeleteThread:F,deletingThreadId:G=null,renamingThreadId:H=null,activeParticipantIds:I=[],onToggleParticipantActive:P,visible:Q=!1,isRestoringActiveThread:R=!1,onToggle:S,onSearch:T,projects:U=[],onCreateProject:V,onUpdateProject:W,onDeleteProject:X,onAddAgentToProject:Y,onRemoveAgentFromProject:Z,onAddAgentViaForm:$,onReorderProjectAgents:_,onUpdateParticipant:aa,onSelectProject:ab,activeProjectId:ac=null,activeProjectView:ad=null,width:ae,onWidthChange:af,onAddTeam:ag,stageShow:ah,trackerConnections:ai=[]}){let aj,ak,{isTouchLayout:al,isPhone:am}=(0,x.useInputCapabilities)(),{updateAvailable:an}=function(){let[a,b]=(0,c.useState)({updateAvailable:!1,latestVersion:null});return(0,c.useEffect)(()=>{async function a(){try{let a=await fetch("/api/update-check");if(!a.ok)return;let c=await a.json(),d=c?.updateAvailable===!0,e="string"==typeof c?.latestVersion?c.latestVersion:null;b({updateAvailable:d,latestVersion:e})}catch{}}a();let c=setInterval(()=>{a()},y.UI_POLL_UPDATE_CHECK_MS);return()=>clearInterval(c)},[]),a}(),ao=(0,c.useRef)(!1);(0,c.useRef)(0);let ap=(0,c.useRef)(null),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(new Set);(0,c.useEffect)(()=>{if(as.size>0||!U?.length)return;let a=U.find(a=>!1);at(new Set([a?.id??U[0].id]))},[U]);let[au,av]=(0,c.useState)(null),[aw,ax]=(0,c.useState)(new Set),[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(null),[aC,aD]=(0,c.useState)(null),aE=(0,A.useProjectFormState)(),[aF,aG]=(0,c.useState)(null),aH=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)(null),aM=aK?e.find(a=>a.id===aK)??null:null,[aN,aO]=(0,c.useState)(null),[aP,aQ]=(0,c.useState)({});(0,c.useEffect)(()=>{if(!U?.length)return;let a=!1,b=async()=>{try{let b=await fetch("/api/processes?enrich=1");if(!b.ok||a)return;let c=await b.json();if(a)return;let d=c.filter(a=>"spawning"===a.state||"running"===a.state),f={};for(let a of U){let b=a.slug.trim().toLowerCase(),c=new Set((a.thread_ids??[]).map(a=>a.trim()).filter(Boolean)),g=[],h=[],i=[],j=new Set,k=new Set,l=new Set;for(let a of d){let d=a.projectSlug?.trim().toLowerCase();if(!(d&&d===b||c.has(a.workspaceId)||c.has(a.threadId)))continue;let f=e.find(b=>b.id===a.agentId),m={agentId:a.agentId,color:f?.color??"#10b981"};a.linearIssueId?k.has(a.agentId)||(k.add(a.agentId),h.push(m)):a.threadId?.startsWith("objective-chat:")||a.workspaceId?.startsWith("objective-chat:")?j.has(a.agentId)||(j.add(a.agentId),g.push(m)):l.has(a.agentId)||(l.add(a.agentId),i.push(m))}(g.length||h.length||i.length)&&(f[a.id]={objectives:g,linear:h,chat:i})}aQ(f)}catch{}};b();let c=setInterval(b,3e3);return()=>{a=!0,clearInterval(c)}},[U,e]);let[aR,aS]=(0,c.useState)({}),[aT,aU]=(0,c.useState)(new Set),[aV,aW]=(0,c.useState)(new Set),aX=(0,c.useRef)(new Set);(0,c.useEffect)(()=>{Array.from(as).forEach(a=>{aV.has(a)||(aW(b=>new Set(b).add(a)),(async()=>{try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=await b.json();aS(b=>({...b,[a]:c.teams??[]}))}catch{}})())})},[as,aV]);let[aY,aZ]=(0,c.useState)(null),a$=async()=>{if(!aA&&!aC)return;if(!aE.form.name.trim())return void aE.setFormError("Project name is required");let a=aE.repos.find(a=>a.name.trim()&&!a.path.trim());if(a)return void aE.setFormError(`Local path is required for folder "${a.name}"`);aE.setFormError(null),aE.setIsSubmitting(!0);let b=(0,A.createProjectPayload)(aE.form,aE.repos);aC?await W?.(aC.id,b):await V?.(b,aA?.threadId),aE.setIsSubmitting(!1),aB(null),aD(null)};(0,c.useEffect)(()=>{ar(!0)},[]),(0,c.useEffect)(()=>{let a=!1;async function b(){if(aN?.repoId)try{let b=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(aN.repoId)}`),c=(b.ok?await b.json():{note:null}).note;a||aO(a=>a&&a.repoId===aN.repoId?{...a,generatedKnowledge:c?.content?[{id:c.id,content:c.content,created_at:c.updatedAt??c.createdAt}]:[],isLoadingKnowledge:!1}:a)}catch{a||aO(a=>a&&a.repoId===aN.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return aN?.repoId&&b(),()=>{a=!0}},[aN?.repoId]);let a_=au?U.find(a=>a.id===au.projectId):null,a0=new Set(a_?.agents.map(a=>a.agent_id)??[]),a1=au?e.filter(a=>!a0.has(a.id)):[],a2=a.length>0,a3=!!Q,a4=(0,c.useCallback)(()=>{al&&S?.()},[al,S]),a5=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),a6=new Map(a.map(a=>[a.id,a])),a7=U.filter(a=>!a.is_default),a8=a7.find(a=>a.id===ac)??a7[0]??null,{connections:a9}=(0,L.useTrackerConnections)(a8?.id??null),ba=ah??{home:!0,threads:!0,terminal:!0,objectives:!1,objectivesIsNew:!1,tracking:!1,teams:!1,folders:!1,scheduledTasks:!1,envVars:!1,notifications:!1};if((0,c.useEffect)(()=>{if(0===a7.length)return;let b=new Map,c=new Set,d=new Map;for(let a of a7){for(let b of a.thread_ids??[])"string"==typeof b&&b.trim()&&c.add(b);for(let c of(0,B.readProjectObjectivesWorkspace)(a.metadata).objectives){let d=c.id.trim();d&&b.set(d,{projectId:a.id,canonicalThreadId:c.threadId?.trim()||`objective-chat:${d}`})}}for(let b of a){let a=b.metadata&&"object"==typeof b.metadata?b.metadata:null,c="objective"===("string"==typeof a?.scope?a.scope:"")||b.id.startsWith("objective-chat:"),e=b.title?.trim().toLowerCase()??"";if(!c||!e)continue;let f=d.get(e)??[];f.push(b),d.set(e,f)}for(let[a,b]of d)d.set(a,[...b].sort((a,b)=>b.updatedAt-a.updatedAt));for(let e of a){let a=e.metadata&&"object"==typeof e.metadata?e.metadata:null,f="string"==typeof a?.scope?a.scope:"",g="string"==typeof a?.objectiveId?a.objectiveId.trim():"",h=e.id.startsWith("objective-chat:")?e.id.slice(15).trim():"",i=g||h,j="objective"===f||!!h,k=e.title?.trim().toLowerCase()??"",l=0===e.messages.length&&e.updatedAt<Date.now()-3e5;if(!j)continue;let m=i?b.get(i):void 0;if(m){if(e.id!==m.canonicalThreadId&&l){let a=`delete:${e.id}`;if(aX.current.has(a))continue;aX.current.add(a),Promise.resolve(F(e.id)).catch(b=>{aX.current.delete(a),console.warn("Failed to delete legacy objective thread",b)});continue}if(!c.has(e.id)){let a=`link:${e.id}`;if(aX.current.has(a))continue;aX.current.add(a),fetch(`/api/projects/${m.projectId}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e.id})}).then(a=>{if(!a.ok)throw Error(`Request failed with status ${a.status}`)}).catch(b=>{aX.current.delete(a),console.warn("Failed to re-link objective thread",b)})}continue}if(!l)continue;let n=k?d.get(k)??[]:[];if(n.length<2||n[0]?.id===e.id)continue;let o=`delete:${e.id}`;aX.current.has(o)||(aX.current.add(o),Promise.resolve(F(e.id)).catch(a=>{aX.current.delete(o),console.warn("Failed to delete orphan objective thread",a)}))}},[a7,F,a]),!function({focusTarget:a,shouldFocus:b}){(0,c.useEffect)(()=>{if(!b||"u"<typeof document)return;let c=a.current;if(!c||c instanceof HTMLButtonElement&&c.disabled)return;let d=document.activeElement;if(!(d&&(c===d||c.contains(d))))try{c.focus({preventScroll:!0})}catch{c.focus()}},[a,b])}({focusTarget:ap,shouldFocus:a3&&!(i&&!a2||R&&a2)&&!a2&&!l}),!a3){if(al)return null;let c=a8?.slug;return(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand",children:(0,b.jsx)("button",{type:"button",onClick:S,className:"workspace-sidebar__brand-trigger border-none outline-none cursor-pointer","aria-label":"Show chats",title:"Show chats",children:(0,b.jsx)(M,{compact:!0})})}),c&&(0,b.jsxs)("nav",{className:"workspace-sidebar__collapsed-rail",children:[(0,b.jsx)(N,{label:"Home",children:(0,b.jsx)(w.default,{href:`/projects/${c}`,className:`workspace-sidebar__rail-icon${"home"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(q,{size:16})})}),(ba.objectives||ba.tracking||ba.scheduledTasks)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),ba.objectives&&(0,b.jsx)(N,{label:"Objectives",children:(0,b.jsx)(w.default,{href:`/projects/${c}/objectives`,className:`workspace-sidebar__rail-icon${"objectives"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(n.Target,{size:16})})}),ba.tracking&&(0,b.jsx)(N,{label:"Task Tracking",children:(0,b.jsx)(w.default,{href:`/projects/${c}/tracking`,className:`workspace-sidebar__rail-icon${"linear"===ad||"tracking"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(K.LinearIcon,{className:"h-4 w-4"})})}),ba.tracking&&(0,b.jsx)(N,{label:"Pull Requests",children:(0,b.jsx)(w.default,{href:`/projects/${c}/prs`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(v,{size:16})})}),ba.scheduledTasks&&(0,b.jsx)(N,{label:"Scheduled Jobs",children:(0,b.jsx)(w.default,{href:`/projects/${c}/automations`,className:`workspace-sidebar__rail-icon${"automations"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(f.Zap,{size:16})})}),(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),(0,b.jsx)(N,{label:"Terminal",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal`,className:`workspace-sidebar__rail-icon${"terminal"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(s.TerminalSquare,{size:16})})}),(0,b.jsx)(N,{label:"Chat",children:(0,b.jsx)("button",{type:"button",className:`workspace-sidebar__rail-icon${"thread"===ad?" workspace-sidebar__rail-icon--active":""}`,onClick:()=>{let b=a5.filter(a=>a8?.thread_ids?.includes(a.id)),c=a8?.thread_ids?.find(b=>a.some(a=>a.id===b))??b[0]?.id;c&&C(c)},children:(0,b.jsx)(r.MessageSquare,{size:16})})}),(ba.teams||ba.folders||ba.envVars||ba.notifications)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),ba.teams&&(0,b.jsx)(N,{label:"Teams",children:(0,b.jsx)(w.default,{href:`/projects/${c}/teams`,className:`workspace-sidebar__rail-icon${"teams"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(p.Users,{size:16})})}),ba.folders&&(0,b.jsx)(N,{label:"Folders",children:(0,b.jsx)(w.default,{href:`/projects/${c}/folders`,className:`workspace-sidebar__rail-icon${"folders"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(h.FolderGit2,{size:16})})}),ba.envVars&&(0,b.jsx)(N,{label:"Env Variables",children:(0,b.jsx)(w.default,{href:`/projects/${c}/env-vars`,className:`workspace-sidebar__rail-icon${"env-vars"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(t,{size:16})})}),ba.notifications&&(0,b.jsx)(N,{label:"Notifications",children:(0,b.jsx)(w.default,{href:`/projects/${c}/notifications`,className:`workspace-sidebar__rail-icon${"notifications"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(o.Bell,{size:16})})})]}),(0,b.jsxs)("div",{className:"mt-auto p-2 flex flex-col gap-2",children:[an&&c&&(0,b.jsx)(N,{label:"Update available",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(u,{size:16})})}),(0,b.jsx)(N,{label:"Join Discord",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"workspace-sidebar__rail-icon",style:{backgroundColor:"#5865F2",color:"white"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})]})}return(0,b.jsxs)(b.Fragment,{children:[al?(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__backdrop",onClick:S,"aria-label":"Close sidebar"}):null,(0,b.jsxs)("aside",{id:"workspace-sidebar",className:`workspace-sidebar${al?" workspace-sidebar--drawer":""}${al&&am?" workspace-sidebar--drawer-phone":""}`,"aria-label":"Workspace sidebar","aria-busy":i?"true":void 0,"aria-modal":al?"true":void 0,role:al?"dialog":void 0,style:!al&&ae?{width:`${ae}px`,minWidth:`${ae}px`}:void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-content",children:(0,b.jsx)(M,{})}),S&&(0,b.jsx)("button",{type:"button",onClick:S,"aria-label":"Hide chats",title:"Hide chats",className:"workspace-sidebar__brand-toggle ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,b.jsx)(j,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[(0,b.jsx)(O,{projects:a7,activeProjectId:ac,onSelectProject:a=>{ab?.(a),a4()},onCreateProject:()=>{aE.resetForm(),aD(null),aB({})}}),(()=>{if(!a8)return null;let a=a5.filter(a=>a8.thread_ids?.includes(a.id)),c=a8.thread_ids?.find(a=>a6.has(a))??a8.thread_ids?.[0]??a[0]?.id??null,d=a8.id===ac,i=d&&"home"===ad,j=d&&"objectives"===ad,k=d&&"automations"===ad,l=d&&"terminal"===ad,m=d&&"thread"===ad&&c===g,u=d&&"teams"===ad,v=d&&"folders"===ad,x=d&&"env-vars"===ad,y=d&&"notifications"===ad,A=aP[a8.id],B=ba.objectives||ba.scheduledTasks,D=ba.teams||ba.folders||ba.envVars||ba.notifications;return(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsx)("div",{className:"px-2 mt-2 mb-3",children:(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}`,onClick:a4,className:`workspace-sidebar__nav-item ${i?"workspace-sidebar__nav-item--active":""}`,"aria-current":i?"page":void 0,children:[(0,b.jsx)(q,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Home"})]})})}),B&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Automation"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[ba.objectives&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/objectives`,onClick:a4,className:`workspace-sidebar__nav-item ${j?"workspace-sidebar__nav-item--active":""}`,"aria-current":j?"page":void 0,children:[(0,b.jsx)(n.Target,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Objectives"}),ba.objectivesIsNew&&(0,b.jsx)("span",{className:"ml-auto inline-flex items-center rounded-full bg-indigo-500/15 px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-indigo-500 animate-pulse",children:"NEW"}),!ba.objectivesIsNew&&A?.objectives.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.objectives.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]})}),ba.scheduledTasks&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/automations`,onClick:a4,className:`workspace-sidebar__nav-item ${k?"workspace-sidebar__nav-item--active":""}`,"aria-current":k?"page":void 0,children:[(0,b.jsx)(f.Zap,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Scheduled Jobs"})]})})]})]}),ba.tracking&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Task Tracking"})}),(0,b.jsx)("div",{className:"px-2 flex flex-col gap-0.5",children:(0,b.jsx)(J,{projectSlug:a8.slug,trackerConnections:ai,activeTrackerType:null,isTrackingActive:d&&("linear"===ad||"tracking"===ad),onLinkClick:a4})})]}),(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Tools"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/terminal`,onClick:a4,className:`workspace-sidebar__nav-item ${l?"workspace-sidebar__nav-item--active":""}`,"aria-current":l?"page":void 0,children:[(0,b.jsx)(s.TerminalSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Terminal"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:c?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${m?"workspace-sidebar__nav-item--active":""}`,onClick:()=>{C(c),a4()},"aria-current":m?"page":void 0,children:[(0,b.jsx)(r.MessageSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Chat"}),A?.chat.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.chat.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]}):null})]})]}),D&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Settings"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[ba.teams&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/teams`,onClick:a4,className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(p.Users,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Teams"})]})}),ba.folders&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/folders`,onClick:a4,className:`workspace-sidebar__nav-item ${v?"workspace-sidebar__nav-item--active":""}`,"aria-current":v?"page":void 0,children:[(0,b.jsx)(h.FolderGit2,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Folders"})]})}),ba.envVars&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/env-vars`,onClick:a4,className:`workspace-sidebar__nav-item ${x?"workspace-sidebar__nav-item--active":""}`,"aria-current":x?"page":void 0,children:[(0,b.jsx)(t,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Environment Variables"})]})}),ba.notifications&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/notifications`,onClick:a4,className:`workspace-sidebar__nav-item ${y?"workspace-sidebar__nav-item--active":""}`,"aria-current":y?"page":void 0,children:[(0,b.jsx)(o.Bell,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Notifications"})]})})]})]})]})})()]}),(0,b.jsxs)("div",{className:"mt-auto px-3 pb-3 flex flex-col gap-2",children:[an&&a8&&(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-sm font-medium transition-colors text-[var(--foreground)] bg-[var(--app-shell-subtle)] hover:bg-[var(--app-shell-border)]",children:[(0,b.jsx)(u,{size:14}),"Update available"]}),(0,b.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:[(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})]}),aq&&aN&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{aN.isSaving||aO(null)},children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:aN.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:aN.repoId?aN.name||"Folder":"Add Folder"})]}),(0,b.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{aN.isSaving||aO(null)},"aria-label":"Close folder details",disabled:aN.isSaving,children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:aN.name,onChange:a=>aO(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:aN.isSaving,placeholder:"e.g. Frontend, API Docs, Design System"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{value:aN.path,onChange:a=>aO(b=>b?{...b,path:a.target.value,error:null}:b),className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:aN.isSaving,placeholder:"Local path to folder"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",disabled:aN.isSaving,onClick:async()=>{try{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json();b.path&&aO(a=>a?{...a,path:b.path,error:null}:a)}catch{}},children:"Browse"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Notes"}),(0,b.jsx)("textarea",{value:aN.notes,onChange:a=>aO(b=>b?{...b,notes:a.target.value,error:null}:b),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:aN.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),aN.repoId?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Note"}),aN.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):aN.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:aN.generatedKnowledge.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,b.jsx)("div",{children:a.content}),a.created_at?(0,b.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(a.created_at).toLocaleString()}):null]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No note yet."})]}):null,aN.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:aN.error}):null,(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,b.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>aO(null),disabled:aN.isSaving,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:aN.isSaving||!W,onClick:async()=>{let a=U.find(a=>a.id===aN.projectId);if(!a)return void aO(a=>a?{...a,error:"Project not found."}:a);let b=aN.name.trim(),c=aN.path.trim();if(!b)return void aO(a=>a?{...a,error:"Folder name is required."}:a);if(!c)return void aO(a=>a?{...a,error:"Folder path is required."}:a);aO(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=aN.repoId?a.repos.map(a=>a.id===aN.repoId?{id:a.id,name:b,path:c,git_url:aN.gitUrl.trim()||void 0,notes:aN.notes.trim()||void 0}:{id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}):[...a.repos.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes})),{name:b,path:c,git_url:aN.gitUrl.trim()||void 0,notes:aN.notes.trim()||void 0}];await W?.(a.id,{repos:d}),aO(null)}catch(a){aO(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save folder details."}:b)}},children:aN.isSaving?"Saving...":aN.repoId?"Save":"Add Folder"})]})]})]})}),document.body),aq&&au&&!ay&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>av(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",a_?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>av(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>az(!0),children:[(0,b.jsx)(k.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===a1.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):a1.map(a=>{let c=aw.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ax(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${c?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:a.model})]})]},a.id)})]}),a1.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>av(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===aw.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of aw)Y?.(au.projectId,a);av(null)},children:["Add ",aw.size>0?`(${aw.size})`:""]})]})]})}),document.body),aq&&ay&&(0,d.createPortal)((0,b.jsx)(z.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:U?.filter(a=>!a.is_default).map(b=>{let c=(b.thread_ids??[]).map(b=>a.find(a=>a.id===b)?.title?.trim()).filter(Boolean).join(", ")||"No chat";return{id:b.id,name:b.name,label:`${c} › ${b.name}`}}),initialProjectIds:au?[au.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[e.length%c.length],f=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g=b?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.role?{role:a.role}:{},...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[],...g?{projectId:g}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():f;for(let a of(b??[]).slice(1))Y?.(a,c);az(!1),av(null)}},onCancel:()=>{az(!1)}}),document.body),aq&&aF&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aG(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aF.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aG(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:a=>{a.preventDefault();let b=new FormData(a.currentTarget),c=b.get("value")?.trim();c&&(aF.onSubmit(c),aG(null))},children:[(0,b.jsx)("input",{ref:aH,name:"value",type:"text",defaultValue:aF.defaultValue,placeholder:aF.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aG(null),children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:aF.defaultValue?"Save":"Create"})]})]})]})}),document.body),aq&&aI&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aJ(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aI.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aJ(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:aI.message}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aJ(null),children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{aI.onConfirm(),aJ(null)},children:"Delete"})]})]})]})}),document.body),aq&&(aA||aC)&&(0,d.createPortal)((0,b.jsx)(A.default,{isOpen:!0,onClose:()=>{aE.resetForm(),aB(null),aD(null)},onSubmit:()=>void a$(),editingProject:aC,form:aE.form,repos:aE.repos,isSubmitting:aE.isSubmitting,formError:aE.formError,onFieldChange:(a,b)=>aE.setForm(c=>({...c,[a]:b})),onRepoChange:aE.handleRepoChange,onAddRepo:aE.addRepo,onRemoveRepo:aE.removeRepo}),document.body),aq&&aM&&(0,d.createPortal)((aj=U.filter(a=>a.agents.some(a=>a.agent_id===aM.id)),ak=U.filter(a=>!a.agents.some(a=>a.agent_id===aM.id)),(0,b.jsx)(z.AgentForm,{title:"Edit agent",initial:{name:aM.name,role:aM.role||"",provider:aM.provider,model:aM.model||"",identity:aM.identity||"",color:aM.color,skills:aM.skills||[],skillBindings:aM.skillBindings||[]},agentId:aM.id,submitLabel:"Save",projectMemberships:{current:aj.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:ak.map(a=>({id:a.id,name:a.name}))},onAddToProject:Y?a=>Y(a,aM.id):void 0,onRemoveFromProject:Z?a=>Z(a,aM.id):void 0,onSubmit:async a=>{aa&&await aa({...aM,name:a.name,role:a.role||void 0,provider:a.provider,model:a.model,color:a.color??aM.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]}),aL(null)},onCancel:()=>aL(null)})),document.body),af&&!al&&(0,b.jsx)("div",{className:"absolute right-0 top-0 bottom-0 z-20 w-1 cursor-col-resize group",onMouseDown:a=>{a.preventDefault(),ao.current=!0;let b=a.clientX,c=ae??368;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let d=a=>{af(Math.max(200,Math.min(600,c+a.clientX-b)))},e=()=>{ao.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",e)},children:(0,b.jsx)("div",{className:"absolute inset-y-0 right-0 w-1 transition-colors hover:bg-[var(--primary)]/40 group-hover:bg-[var(--primary)]/40"})})]})]})}a.s(["WorkspaceSidebar",()=>P],550158)},111013,a=>{"use strict";var b=a.i(786220),c=a.i(516909),d=a.i(870630);function e(){}let f=a=>[...a].sort((a,b)=>b.createdAt-a.createdAt);function g(a){let g=(0,c.useSearchParams)(),h=(a||g.get("thread")||"").trim()||null,i=(0,b.useRef)(!0),[j,k]=(0,b.useState)([]),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(!0),[p,q]=(0,b.useState)(!0),[r,s]=(0,b.useState)(!1),[t,u]=(0,b.useState)(null),[v,w]=(0,b.useState)(null),x=(0,b.useRef)(!1),y=(0,b.useCallback)(a=>{m(a)},[]);(0,b.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]),(0,b.useEffect)(()=>{let a=!1;return(async()=>{try{var b;let c,g=await d.threadService.listThreads();if(h&&!g.some(a=>a.id===h)){let a=await d.threadService.createThread({id:h});g=f([...g.filter(b=>b.id!==a.id),a])}if(a||!i.current)return;k(g);let j=h||null,{threadId:l,shouldClearSavedId:n,restoredFromStorage:o}=(b=g,c=b[0]?.id??null,j?b.some(a=>a.id===j)?{threadId:j,shouldClearSavedId:!1,restoredFromStorage:!0}:{threadId:c,shouldClearSavedId:!0,restoredFromStorage:!1}:{threadId:c,shouldClearSavedId:!1,restoredFromStorage:!1});n&&e(),x.current||(x.current=!0),o&&l?y(l):l?m(a=>a??l):m(null)}catch(a){console.error("Failed to load threads",a)}finally{i.current&&(o(!1),q(!1))}})(),()=>{a=!0}},[h,y]),(0,b.useEffect)(()=>{x.current&&(l||e())},[l]);let z=(0,b.useCallback)(async a=>{s(!0);try{let b=await d.threadService.createThread(a);if(!i.current)return b;return k(a=>f([...a.filter(a=>a.id!==b.id),b])),m(b.id),b}catch(a){throw console.error("Failed to create thread",a),a}finally{i.current&&s(!1)}},[]),A=(0,b.useCallback)(async a=>{if(a){u(a);try{if(await d.threadService.deleteThread(a),!i.current)return;let b=[];k(c=>b=f(c.filter(b=>b.id!==a))),m(c=>c===a?b[0]?.id??null:c)}catch(a){throw console.error("Failed to delete thread",a),a}finally{i.current&&u(null)}}},[]),B=(0,b.useCallback)(async(a,b)=>{let c=a.trim(),e=b.trim();if(c&&e){w(c);try{let a=await d.threadService.renameThread(c,e);if(!a||!i.current)return;k(b=>f(b.map(b=>b.id===a.id?a:b)))}catch(a){throw console.error("Failed to rename thread",a),a}finally{i.current&&w(a=>a===c?null:a)}}},[]),C=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.saveThreadMessages(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread messages",a)}},[]),D=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadStatus(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread status",a)}},[]),E=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadOutcomeNote(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread outcome note",a)}},[]),F=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageThreadStatus(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message thread status",a)}},[]),G=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageOutcomeNote(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message outcome note",a)}},[]),H=null!==l&&t===l;return{threads:j,activeThreadId:l,selectThread:y,createThread:z,deleteThread:A,isLoading:n,isRestoringActiveThread:p,isCreating:r,deletingThreadId:t,renamingThreadId:v,isDeletingActiveThread:H,updateThreadMessages:C,renameThread:B,updateThreadStatus:D,updateThreadOutcomeNote:E,updateMessageThreadStatus:F,updateMessageOutcomeNote:G}}a.s(["useThreadState",()=>g],111013)},455106,a=>{"use strict";let b={threadSidebarVisible:!1};function c(){return({...b}).threadSidebarVisible}function d(a){}a.s(["loadWorkspaceSidebarVisible",()=>c,"persistWorkspaceSidebarVisible",()=>d])}];
1
+ module.exports=[970393,a=>{"use strict";let b=(0,a.i(831709).default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);a.s(["PanelLeftOpen",()=>b],970393)},508869,a=>{"use strict";let b=(0,a.i(831709).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);a.s(["Sun",()=>b],508869)},523321,a=>{"use strict";let b=(0,a.i(831709).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);a.s(["Moon",()=>b],523321)},166621,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(850985),e=a.i(639211);function f(){let[a,f]=(0,c.useState)("unknown"),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(!1),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void f("unknown");let b=await a.json();f("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);h(c),j(new Date().toLocaleTimeString())}catch{f("unknown"),h([])}},[]);return(0,c.useEffect)(()=>{m();let a=setInterval(m,e.UI_POLL_SYSTEM_STATUS_MS);return()=>clearInterval(a)},[m]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[(0,b.jsx)(d.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),k&&(0,b.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[g.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:g.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),i&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",i]})]})]})}a.s(["StatusIndicator",()=>f])},550158,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(197180),e=a.i(811760),f=a.i(66456),g=a.i(157633),h=a.i(736868),i=a.i(831709);let j=(0,i.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var k=a.i(353532),l=a.i(542341),m=a.i(824179),n=a.i(489461),o=a.i(97723),p=a.i(985339);let q=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var r=a.i(737313),s=a.i(144462);let t=(0,i.default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]),u=(0,i.default)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),v=(0,i.default)("git-pull-request",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]);var w=a.i(850985),x=a.i(529889),y=a.i(639211),z=a.i(8e4),A=a.i(188834),B=a.i(769677),C=a.i(599086),D=a.i(756490);let E=(0,i.default)("book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),F=(0,i.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var G=a.i(392045);let H={linear:"Linear",jira:"Jira",intercom:"Intercom",freshdesk:"Freshdesk",github:"GitHub"};function I(a){return H[a]??a.charAt(0).toUpperCase()+a.slice(1)}function J({projectSlug:a,trackerConnections:d,activeTrackerType:e,isTrackingActive:f,onLinkClick:g}){let h=[...d].sort((a,b)=>new Date(a.connectedAt).getTime()-new Date(b.connectedAt).getTime()),i=h.filter(a=>a.connected),j=h.filter(a=>!a.connected),l=i.some(a=>"github"===a.type),[m,n]=(0,c.useState)([]),[o,p]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{if(!l)return void n([]);let a=!1;return fetch("/api/github/repos",{cache:"no-store"}).then(a=>a.ok?a.json():{repos:[]}).then(b=>{a||n(b.repos??[])}).catch(()=>{a||n([])}),()=>{a=!0}},[l]),(0,b.jsxs)(b.Fragment,{children:[0===i.length&&0===j.length&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:`workspace-sidebar__nav-item ${f?"workspace-sidebar__nav-item--active":""}`,children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect Tracker"})]})}),i.map(c=>{let d=f&&e===c.type;return(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item",children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:`workspace-sidebar__nav-item flex-1 ${d?"workspace-sidebar__nav-item--active":""}`,"aria-current":d?"page":void 0,children:[(0,b.jsx)(G.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:I(c.type)})]}),"github"===c.type&&m.length>0&&(0,b.jsx)("button",{type:"button","aria-label":o?"Collapse GitHub repos":"Expand GitHub repos","aria-expanded":o,onClick:()=>p(a=>!a),className:"p-1 rounded hover:bg-[var(--item-hover-bg)] text-[var(--muted-foreground)]",children:(0,b.jsx)(D.ChevronRight,{size:12,className:`transition-transform ${o?"rotate-90":""}`})})]}),"github"===c.type&&o&&m.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-0.5 mt-0.5 pl-5",children:m.map(c=>(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/github?repo=${encodeURIComponent(c.id)}`,onClick:g,className:"workspace-sidebar__nav-item",title:c.id,children:[c.private?(0,b.jsx)(F,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}):(0,b.jsx)(E,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs text-[var(--muted-foreground)] truncate",children:c.name})]},c.id))})]},c.type)}),j.map(c=>(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(G.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:I(c.type)}),(0,b.jsx)("span",{className:"ml-auto shrink-0",title:"Connection issue — click to reconnect",children:(0,b.jsx)(C.AlertTriangle,{size:12,className:"text-yellow-500"})})]})},c.type)),(i.length>0||j.length>0)&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect"})]})})]})}var K=a.i(70014),L=a.i(227444);function M({compact:a=!1}){return(0,b.jsxs)("span",{className:`workspace-sidebar__brand-logo${a?" workspace-sidebar__brand-logo--compact":""}`,"aria-hidden":"true",children:[(0,b.jsx)("img",{src:"/logo_dark.png",alt:"AGX",className:"block dark:hidden",style:{height:28}}),(0,b.jsx)("img",{src:"/logo_light.png",alt:"AGX",className:"hidden dark:block",style:{height:28}})]})}function N({label:a,children:e}){let f=(0,c.useRef)(null),[g,h]=(0,c.useState)(null);return(0,b.jsxs)("div",{ref:f,onMouseEnter:()=>{let a=f.current?.firstElementChild??f.current;if(!a)return;let b=a.getBoundingClientRect();h({top:b.top+b.height/2,left:b.right+8})},onMouseLeave:()=>h(null),style:{display:"contents"},children:[e,g&&(0,d.createPortal)((0,b.jsx)("div",{className:"workspace-sidebar__rail-tooltip",style:{top:g.top,left:g.left,transform:"translateY(-50%)"},children:a}),document.body)]})}function O({projects:a,activeProjectId:d,onSelectProject:f,onCreateProject:h}){let[i,j]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=a.find(a=>a.id===d)??a[0],s=n.trim()?a.filter(a=>a.name.toLowerCase().includes(n.toLowerCase())):a;return(0,c.useEffect)(()=>{if(!i)return;let a=a=>{p.current&&!p.current.contains(a.target)&&(j(!1),o(""))};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[i]),(0,c.useEffect)(()=>{i&&q.current&&q.current.focus()},[i]),(0,b.jsxs)("div",{className:"relative px-3 pt-3 pb-2",ref:p,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>j(!i),className:"flex w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 py-2 text-sm text-[var(--foreground)] transition-all hover:border-[var(--app-shell-border-strong)]",children:[(0,b.jsx)(g.Folder,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left font-medium",children:r?.name??"Select project"}),(0,b.jsx)(e.ChevronDown,{size:14,className:`flex-shrink-0 text-[var(--muted-foreground)] transition-transform ${i?"rotate-180":""}`})]}),i&&(0,b.jsxs)("div",{className:"absolute left-3 right-3 z-50 mt-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--app-shell-border)]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-2 py-1.5",children:[(0,b.jsx)(l.Search,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{ref:q,type:"text",value:n,onChange:a=>o(a.target.value),placeholder:"Search projects...",className:"flex-1 bg-transparent text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] outline-none"}),n&&(0,b.jsx)("button",{type:"button",onClick:()=>o(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(m.X,{size:10})})]})}),(0,b.jsxs)("div",{className:"max-h-52 overflow-y-auto py-1",children:[s.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{f?.(a.id),j(!1),o("")},className:`flex w-full items-center gap-2 px-3 py-1.5 text-sm transition-colors hover:bg-[var(--app-shell-subtle)] ${a.id===r?.id?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:[(0,b.jsx)(g.Folder,{size:12,className:"flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)),0===s.length&&(0,b.jsx)("p",{className:"px-3 py-2 text-xs text-[var(--muted-foreground)]",children:"No projects found"})]}),(0,b.jsx)("div",{className:"border-t border-[var(--app-shell-border)] p-1",children:(0,b.jsxs)("button",{type:"button",onClick:()=>{j(!1),o(""),h()},className:"flex w-full items-center gap-2 rounded-md px-2.5 py-1.5 text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(k.Plus,{size:12}),(0,b.jsx)("span",{children:"New project"})]})})]})]})}function P({threads:a,participants:e=[],activeThreadId:g,isLoading:i,isCreating:l,onSelectThread:C,onCreateThread:D,onRenameThread:E,onDeleteThread:F,deletingThreadId:G=null,renamingThreadId:H=null,activeParticipantIds:I=[],onToggleParticipantActive:P,visible:Q=!1,isRestoringActiveThread:R=!1,onToggle:S,onSearch:T,projects:U=[],onCreateProject:V,onUpdateProject:W,onDeleteProject:X,onAddAgentToProject:Y,onRemoveAgentFromProject:Z,onAddAgentViaForm:$,onReorderProjectAgents:_,onUpdateParticipant:aa,onSelectProject:ab,activeProjectId:ac=null,activeProjectView:ad=null,width:ae,onWidthChange:af,onAddTeam:ag,stageShow:ah,trackerConnections:ai=[]}){let aj,ak,{isTouchLayout:al,isPhone:am}=(0,x.useInputCapabilities)(),{updateAvailable:an}=function(){let[a,b]=(0,c.useState)({updateAvailable:!1,latestVersion:null});return(0,c.useEffect)(()=>{async function a(){try{let a=await fetch("/api/update-check");if(!a.ok)return;let c=await a.json(),d=c?.updateAvailable===!0,e="string"==typeof c?.latestVersion?c.latestVersion:null;b({updateAvailable:d,latestVersion:e})}catch{}}a();let c=setInterval(()=>{a()},y.UI_POLL_UPDATE_CHECK_MS);return()=>clearInterval(c)},[]),a}(),ao=(0,c.useRef)(!1);(0,c.useRef)(0);let ap=(0,c.useRef)(null),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(new Set);(0,c.useEffect)(()=>{if(as.size>0||!U?.length)return;let a=U.find(a=>!1);at(new Set([a?.id??U[0].id]))},[U]);let[au,av]=(0,c.useState)(null),[aw,ax]=(0,c.useState)(new Set),[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(null),[aC,aD]=(0,c.useState)(null),aE=(0,A.useProjectFormState)(),[aF,aG]=(0,c.useState)(null),aH=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)(null),aM=aK?e.find(a=>a.id===aK)??null:null,[aN,aO]=(0,c.useState)(null),[aP,aQ]=(0,c.useState)({});(0,c.useEffect)(()=>{if(!U?.length)return;let a=!1,b=async()=>{try{let b=await fetch("/api/processes?enrich=1");if(!b.ok||a)return;let c=await b.json();if(a)return;let d=c.filter(a=>"spawning"===a.state||"running"===a.state),f={};for(let a of U){let b=a.slug.trim().toLowerCase(),c=new Set((a.thread_ids??[]).map(a=>a.trim()).filter(Boolean)),g=[],h=[],i=[],j=new Set,k=new Set,l=new Set;for(let a of d){let d=a.projectSlug?.trim().toLowerCase();if(!(d&&d===b||c.has(a.workspaceId)||c.has(a.threadId)))continue;let f=e.find(b=>b.id===a.agentId),m={agentId:a.agentId,color:f?.color??"#10b981"};a.linearIssueId?k.has(a.agentId)||(k.add(a.agentId),h.push(m)):a.threadId?.startsWith("objective-chat:")||a.workspaceId?.startsWith("objective-chat:")?j.has(a.agentId)||(j.add(a.agentId),g.push(m)):l.has(a.agentId)||(l.add(a.agentId),i.push(m))}(g.length||h.length||i.length)&&(f[a.id]={objectives:g,linear:h,chat:i})}aQ(f)}catch{}};b();let c=setInterval(b,3e3);return()=>{a=!0,clearInterval(c)}},[U,e]);let[aR,aS]=(0,c.useState)({}),[aT,aU]=(0,c.useState)(new Set),[aV,aW]=(0,c.useState)(new Set),aX=(0,c.useRef)(new Set);(0,c.useEffect)(()=>{Array.from(as).forEach(a=>{aV.has(a)||(aW(b=>new Set(b).add(a)),(async()=>{try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=await b.json();aS(b=>({...b,[a]:c.teams??[]}))}catch{}})())})},[as,aV]);let[aY,aZ]=(0,c.useState)(null),a$=async()=>{if(!aA&&!aC)return;if(!aE.form.name.trim())return void aE.setFormError("Project name is required");let a=aE.repos.find(a=>a.name.trim()&&!a.path.trim());if(a)return void aE.setFormError(`Local path is required for folder "${a.name}"`);aE.setFormError(null),aE.setIsSubmitting(!0);let b=(0,A.createProjectPayload)(aE.form,aE.repos);aC?await W?.(aC.id,b):await V?.(b,aA?.threadId),aE.setIsSubmitting(!1),aB(null),aD(null)};(0,c.useEffect)(()=>{ar(!0)},[]),(0,c.useEffect)(()=>{let a=!1;async function b(){if(aN?.repoId)try{let b=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(aN.repoId)}`),c=(b.ok?await b.json():{note:null}).note;a||aO(a=>a&&a.repoId===aN.repoId?{...a,generatedKnowledge:c?.content?[{id:c.id,content:c.content,created_at:c.updatedAt??c.createdAt}]:[],isLoadingKnowledge:!1}:a)}catch{a||aO(a=>a&&a.repoId===aN.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return aN?.repoId&&b(),()=>{a=!0}},[aN?.repoId]);let a_=au?U.find(a=>a.id===au.projectId):null,a0=new Set(a_?.agents.map(a=>a.agent_id)??[]),a1=au?e.filter(a=>!a0.has(a.id)):[],a2=a.length>0,a3=!!Q,a4=(0,c.useCallback)(()=>{al&&S?.()},[al,S]),a5=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),a6=new Map(a.map(a=>[a.id,a])),a7=U.filter(a=>!a.is_default),a8=a7.find(a=>a.id===ac)??a7[0]??null,{connections:a9}=(0,L.useTrackerConnections)(a8?.id??null),ba=ah??{home:!0,threads:!0,terminal:!0,objectives:!1,objectivesIsNew:!1,tracking:!1,teams:!1,folders:!1,scheduledTasks:!1,envVars:!1,notifications:!1};if((0,c.useEffect)(()=>{if(0===a7.length)return;let b=new Map,c=new Set,d=new Map;for(let a of a7){for(let b of a.thread_ids??[])"string"==typeof b&&b.trim()&&c.add(b);for(let c of(0,B.readProjectObjectivesWorkspace)(a.metadata).objectives){let d=c.id.trim();d&&b.set(d,{projectId:a.id,canonicalThreadId:c.threadId?.trim()||`objective-chat:${d}`})}}for(let b of a){let a=b.metadata&&"object"==typeof b.metadata?b.metadata:null,c="objective"===("string"==typeof a?.scope?a.scope:"")||b.id.startsWith("objective-chat:"),e=b.title?.trim().toLowerCase()??"";if(!c||!e)continue;let f=d.get(e)??[];f.push(b),d.set(e,f)}for(let[a,b]of d)d.set(a,[...b].sort((a,b)=>b.updatedAt-a.updatedAt));for(let e of a){let a=e.metadata&&"object"==typeof e.metadata?e.metadata:null,f="string"==typeof a?.scope?a.scope:"",g="string"==typeof a?.objectiveId?a.objectiveId.trim():"",h=e.id.startsWith("objective-chat:")?e.id.slice(15).trim():"",i=g||h,j="objective"===f||!!h,k=e.title?.trim().toLowerCase()??"",l=0===e.messages.length&&e.updatedAt<Date.now()-3e5;if(!j)continue;let m=i?b.get(i):void 0;if(m){if(e.id!==m.canonicalThreadId&&l){let a=`delete:${e.id}`;if(aX.current.has(a))continue;aX.current.add(a),Promise.resolve(F(e.id)).catch(b=>{aX.current.delete(a),console.warn("Failed to delete legacy objective thread",b)});continue}if(!c.has(e.id)){let a=`link:${e.id}`;if(aX.current.has(a))continue;aX.current.add(a),fetch(`/api/projects/${m.projectId}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e.id})}).then(a=>{if(!a.ok)throw Error(`Request failed with status ${a.status}`)}).catch(b=>{aX.current.delete(a),console.warn("Failed to re-link objective thread",b)})}continue}if(!l)continue;let n=k?d.get(k)??[]:[];if(n.length<2||n[0]?.id===e.id)continue;let o=`delete:${e.id}`;aX.current.has(o)||(aX.current.add(o),Promise.resolve(F(e.id)).catch(a=>{aX.current.delete(o),console.warn("Failed to delete orphan objective thread",a)}))}},[a7,F,a]),!function({focusTarget:a,shouldFocus:b}){(0,c.useEffect)(()=>{if(!b||"u"<typeof document)return;let c=a.current;if(!c||c instanceof HTMLButtonElement&&c.disabled)return;let d=document.activeElement;if(!(d&&(c===d||c.contains(d))))try{c.focus({preventScroll:!0})}catch{c.focus()}},[a,b])}({focusTarget:ap,shouldFocus:a3&&!(i&&!a2||R&&a2)&&!a2&&!l}),!a3){if(al)return null;let c=a8?.slug;return(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand",children:(0,b.jsx)("button",{type:"button",onClick:S,className:"workspace-sidebar__brand-trigger border-none outline-none cursor-pointer","aria-label":"Show chats",title:"Show chats",children:(0,b.jsx)(M,{compact:!0})})}),c&&(0,b.jsxs)("nav",{className:"workspace-sidebar__collapsed-rail",children:[(0,b.jsx)(N,{label:"Home",children:(0,b.jsx)(w.default,{href:`/projects/${c}`,className:`workspace-sidebar__rail-icon${"home"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(q,{size:16})})}),(ba.objectives||ba.tracking||ba.scheduledTasks)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),ba.objectives&&(0,b.jsx)(N,{label:"Objectives",children:(0,b.jsx)(w.default,{href:`/projects/${c}/objectives`,className:`workspace-sidebar__rail-icon${"objectives"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(n.Target,{size:16})})}),ba.tracking&&(0,b.jsx)(N,{label:"Task Tracking",children:(0,b.jsx)(w.default,{href:`/projects/${c}/tracking`,className:`workspace-sidebar__rail-icon${"linear"===ad||"tracking"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(K.LinearIcon,{className:"h-4 w-4"})})}),ba.tracking&&(0,b.jsx)(N,{label:"Pull Requests",children:(0,b.jsx)(w.default,{href:`/projects/${c}/prs`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(v,{size:16})})}),ba.scheduledTasks&&(0,b.jsx)(N,{label:"Scheduled Jobs",children:(0,b.jsx)(w.default,{href:`/projects/${c}/automations`,className:`workspace-sidebar__rail-icon${"automations"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(f.Zap,{size:16})})}),(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),(0,b.jsx)(N,{label:"Terminal",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal`,className:`workspace-sidebar__rail-icon${"terminal"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(s.TerminalSquare,{size:16})})}),(0,b.jsx)(N,{label:"Chat",children:(0,b.jsx)("button",{type:"button",className:`workspace-sidebar__rail-icon${"thread"===ad?" workspace-sidebar__rail-icon--active":""}`,onClick:()=>{let b=a5.filter(a=>a8?.thread_ids?.includes(a.id)),c=a8?.thread_ids?.find(b=>a.some(a=>a.id===b))??b[0]?.id;c&&C(c)},children:(0,b.jsx)(r.MessageSquare,{size:16})})}),(ba.teams||ba.folders||ba.envVars||ba.notifications)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),ba.teams&&(0,b.jsx)(N,{label:"Teams",children:(0,b.jsx)(w.default,{href:`/projects/${c}/teams`,className:`workspace-sidebar__rail-icon${"teams"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(p.Users,{size:16})})}),ba.folders&&(0,b.jsx)(N,{label:"Workspace Map",children:(0,b.jsx)(w.default,{href:`/projects/${c}/folders`,className:`workspace-sidebar__rail-icon${"folders"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(h.FolderGit2,{size:16})})}),ba.envVars&&(0,b.jsx)(N,{label:"Env Variables",children:(0,b.jsx)(w.default,{href:`/projects/${c}/env-vars`,className:`workspace-sidebar__rail-icon${"env-vars"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(t,{size:16})})}),ba.notifications&&(0,b.jsx)(N,{label:"Notifications",children:(0,b.jsx)(w.default,{href:`/projects/${c}/notifications`,className:`workspace-sidebar__rail-icon${"notifications"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(o.Bell,{size:16})})})]}),(0,b.jsxs)("div",{className:"mt-auto p-2 flex flex-col gap-2",children:[an&&c&&(0,b.jsx)(N,{label:"Update available",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(u,{size:16})})}),(0,b.jsx)(N,{label:"Join Discord",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"workspace-sidebar__rail-icon",style:{backgroundColor:"#5865F2",color:"white"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})]})}return(0,b.jsxs)(b.Fragment,{children:[al?(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__backdrop",onClick:S,"aria-label":"Close sidebar"}):null,(0,b.jsxs)("aside",{id:"workspace-sidebar",className:`workspace-sidebar${al?" workspace-sidebar--drawer":""}${al&&am?" workspace-sidebar--drawer-phone":""}`,"aria-label":"Workspace sidebar","aria-busy":i?"true":void 0,"aria-modal":al?"true":void 0,role:al?"dialog":void 0,style:!al&&ae?{width:`${ae}px`,minWidth:`${ae}px`}:void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-content",children:(0,b.jsx)(M,{})}),S&&(0,b.jsx)("button",{type:"button",onClick:S,"aria-label":"Hide chats",title:"Hide chats",className:"workspace-sidebar__brand-toggle ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,b.jsx)(j,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[(0,b.jsx)(O,{projects:a7,activeProjectId:ac,onSelectProject:a=>{ab?.(a),a4()},onCreateProject:()=>{aE.resetForm(),aD(null),aB({})}}),(()=>{if(!a8)return null;let a=a5.filter(a=>a8.thread_ids?.includes(a.id)),c=a8.thread_ids?.find(a=>a6.has(a))??a8.thread_ids?.[0]??a[0]?.id??null,d=a8.id===ac,i=d&&"home"===ad,j=d&&"objectives"===ad,k=d&&"automations"===ad,l=d&&"terminal"===ad,m=d&&"thread"===ad&&c===g,u=d&&"teams"===ad,v=d&&"folders"===ad,x=d&&"env-vars"===ad,y=d&&"notifications"===ad,A=aP[a8.id],B=ba.objectives||ba.scheduledTasks,D=ba.teams||ba.folders||ba.envVars||ba.notifications;return(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsx)("div",{className:"px-2 mt-2 mb-3",children:(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}`,onClick:a4,className:`workspace-sidebar__nav-item ${i?"workspace-sidebar__nav-item--active":""}`,"aria-current":i?"page":void 0,children:[(0,b.jsx)(q,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Home"})]})})}),B&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Automation"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[ba.objectives&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/objectives`,onClick:a4,className:`workspace-sidebar__nav-item ${j?"workspace-sidebar__nav-item--active":""}`,"aria-current":j?"page":void 0,children:[(0,b.jsx)(n.Target,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Objectives"}),ba.objectivesIsNew&&(0,b.jsx)("span",{className:"ml-auto inline-flex items-center rounded-full bg-indigo-500/15 px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-indigo-500 animate-pulse",children:"NEW"}),!ba.objectivesIsNew&&A?.objectives.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.objectives.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]})}),ba.scheduledTasks&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/automations`,onClick:a4,className:`workspace-sidebar__nav-item ${k?"workspace-sidebar__nav-item--active":""}`,"aria-current":k?"page":void 0,children:[(0,b.jsx)(f.Zap,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Scheduled Jobs"})]})})]})]}),ba.tracking&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Task Tracking"})}),(0,b.jsx)("div",{className:"px-2 flex flex-col gap-0.5",children:(0,b.jsx)(J,{projectSlug:a8.slug,trackerConnections:ai,activeTrackerType:null,isTrackingActive:d&&("linear"===ad||"tracking"===ad),onLinkClick:a4})})]}),(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Tools"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/terminal`,onClick:a4,className:`workspace-sidebar__nav-item ${l?"workspace-sidebar__nav-item--active":""}`,"aria-current":l?"page":void 0,children:[(0,b.jsx)(s.TerminalSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Terminal"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:c?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${m?"workspace-sidebar__nav-item--active":""}`,onClick:()=>{C(c),a4()},"aria-current":m?"page":void 0,children:[(0,b.jsx)(r.MessageSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Chat"}),A?.chat.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.chat.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]}):(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/thread`,onClick:a4,className:`workspace-sidebar__nav-item ${m?"workspace-sidebar__nav-item--active":""}`,"aria-current":m?"page":void 0,children:[(0,b.jsx)(r.MessageSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Chat"})]})})]})]}),D&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Settings"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[ba.teams&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/teams`,onClick:a4,className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(p.Users,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Teams"})]})}),ba.folders&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/folders`,onClick:a4,className:`workspace-sidebar__nav-item ${v?"workspace-sidebar__nav-item--active":""}`,"aria-current":v?"page":void 0,children:[(0,b.jsx)(h.FolderGit2,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Workspace Map"})]})}),ba.envVars&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/env-vars`,onClick:a4,className:`workspace-sidebar__nav-item ${x?"workspace-sidebar__nav-item--active":""}`,"aria-current":x?"page":void 0,children:[(0,b.jsx)(t,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Environment Variables"})]})}),ba.notifications&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/notifications`,onClick:a4,className:`workspace-sidebar__nav-item ${y?"workspace-sidebar__nav-item--active":""}`,"aria-current":y?"page":void 0,children:[(0,b.jsx)(o.Bell,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Notifications"})]})})]})]})]})})()]}),(0,b.jsxs)("div",{className:"mt-auto px-3 pb-3 flex flex-col gap-2",children:[an&&a8&&(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-sm font-medium transition-colors text-[var(--foreground)] bg-[var(--app-shell-subtle)] hover:bg-[var(--app-shell-border)]",children:[(0,b.jsx)(u,{size:14}),"Update available"]}),(0,b.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:[(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})]}),aq&&aN&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{aN.isSaving||aO(null)},children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:aN.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:aN.repoId?aN.name||"Folder":"Add Folder"})]}),(0,b.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{aN.isSaving||aO(null)},"aria-label":"Close folder details",disabled:aN.isSaving,children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:aN.name,onChange:a=>aO(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:aN.isSaving,placeholder:"e.g. Frontend, API Docs, Design System"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{value:aN.path,onChange:a=>aO(b=>b?{...b,path:a.target.value,error:null}:b),className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:aN.isSaving,placeholder:"Local path to folder"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",disabled:aN.isSaving,onClick:async()=>{try{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json();b.path&&aO(a=>a?{...a,path:b.path,error:null}:a)}catch{}},children:"Browse"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Notes"}),(0,b.jsx)("textarea",{value:aN.notes,onChange:a=>aO(b=>b?{...b,notes:a.target.value,error:null}:b),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:aN.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),aN.repoId?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Note"}),aN.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):aN.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:aN.generatedKnowledge.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,b.jsx)("div",{children:a.content}),a.created_at?(0,b.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(a.created_at).toLocaleString()}):null]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No note yet."})]}):null,aN.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:aN.error}):null,(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,b.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>aO(null),disabled:aN.isSaving,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:aN.isSaving||!W,onClick:async()=>{let a=U.find(a=>a.id===aN.projectId);if(!a)return void aO(a=>a?{...a,error:"Project not found."}:a);let b=aN.name.trim(),c=aN.path.trim();if(!b)return void aO(a=>a?{...a,error:"Folder name is required."}:a);if(!c)return void aO(a=>a?{...a,error:"Folder path is required."}:a);aO(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=aN.repoId?a.repos.map(a=>a.id===aN.repoId?{id:a.id,name:b,path:c,git_url:aN.gitUrl.trim()||void 0,notes:aN.notes.trim()||void 0}:{id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}):[...a.repos.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes})),{name:b,path:c,git_url:aN.gitUrl.trim()||void 0,notes:aN.notes.trim()||void 0}];await W?.(a.id,{repos:d}),aO(null)}catch(a){aO(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save folder details."}:b)}},children:aN.isSaving?"Saving...":aN.repoId?"Save":"Add Folder"})]})]})]})}),document.body),aq&&au&&!ay&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>av(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",a_?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>av(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>az(!0),children:[(0,b.jsx)(k.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===a1.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):a1.map(a=>{let c=aw.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ax(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${c?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:a.model})]})]},a.id)})]}),a1.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>av(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===aw.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of aw)Y?.(au.projectId,a);av(null)},children:["Add ",aw.size>0?`(${aw.size})`:""]})]})]})}),document.body),aq&&ay&&(0,d.createPortal)((0,b.jsx)(z.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:U?.filter(a=>!a.is_default).map(b=>{let c=(b.thread_ids??[]).map(b=>a.find(a=>a.id===b)?.title?.trim()).filter(Boolean).join(", ")||"No chat";return{id:b.id,name:b.name,label:`${c} › ${b.name}`}}),initialProjectIds:au?[au.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[e.length%c.length],f=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g=b?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.role?{role:a.role}:{},...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[],...g?{projectId:g}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():f;for(let a of(b??[]).slice(1))Y?.(a,c);az(!1),av(null)}},onCancel:()=>{az(!1)}}),document.body),aq&&aF&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aG(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aF.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aG(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:a=>{a.preventDefault();let b=new FormData(a.currentTarget),c=b.get("value")?.trim();c&&(aF.onSubmit(c),aG(null))},children:[(0,b.jsx)("input",{ref:aH,name:"value",type:"text",defaultValue:aF.defaultValue,placeholder:aF.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aG(null),children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:aF.defaultValue?"Save":"Create"})]})]})]})}),document.body),aq&&aI&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aJ(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aI.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aJ(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:aI.message}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aJ(null),children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{aI.onConfirm(),aJ(null)},children:"Delete"})]})]})]})}),document.body),aq&&(aA||aC)&&(0,d.createPortal)((0,b.jsx)(A.default,{isOpen:!0,onClose:()=>{aE.resetForm(),aB(null),aD(null)},onSubmit:()=>void a$(),editingProject:aC,form:aE.form,repos:aE.repos,isSubmitting:aE.isSubmitting,formError:aE.formError,onFieldChange:(a,b)=>aE.setForm(c=>({...c,[a]:b})),onRepoChange:aE.handleRepoChange,onAddRepo:aE.addRepo,onRemoveRepo:aE.removeRepo}),document.body),aq&&aM&&(0,d.createPortal)((aj=U.filter(a=>a.agents.some(a=>a.agent_id===aM.id)),ak=U.filter(a=>!a.agents.some(a=>a.agent_id===aM.id)),(0,b.jsx)(z.AgentForm,{title:"Edit agent",initial:{name:aM.name,role:aM.role||"",provider:aM.provider,model:aM.model||"",identity:aM.identity||"",color:aM.color,skills:aM.skills||[],skillBindings:aM.skillBindings||[]},agentId:aM.id,submitLabel:"Save",projectMemberships:{current:aj.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:ak.map(a=>({id:a.id,name:a.name}))},onAddToProject:Y?a=>Y(a,aM.id):void 0,onRemoveFromProject:Z?a=>Z(a,aM.id):void 0,onSubmit:async a=>{aa&&await aa({...aM,name:a.name,role:a.role||void 0,provider:a.provider,model:a.model,color:a.color??aM.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]}),aL(null)},onCancel:()=>aL(null)})),document.body),af&&!al&&(0,b.jsx)("div",{className:"absolute right-0 top-0 bottom-0 z-20 w-1 cursor-col-resize group",onMouseDown:a=>{a.preventDefault(),ao.current=!0;let b=a.clientX,c=ae??368;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let d=a=>{af(Math.max(200,Math.min(600,c+a.clientX-b)))},e=()=>{ao.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",e)},children:(0,b.jsx)("div",{className:"absolute inset-y-0 right-0 w-1 transition-colors hover:bg-[var(--primary)]/40 group-hover:bg-[var(--primary)]/40"})})]})]})}a.s(["WorkspaceSidebar",()=>P],550158)},111013,a=>{"use strict";var b=a.i(786220),c=a.i(516909),d=a.i(870630);function e(){}let f=a=>[...a].sort((a,b)=>b.createdAt-a.createdAt);function g(a){let g=(0,c.useSearchParams)(),h=(a||g.get("thread")||"").trim()||null,i=(0,b.useRef)(!0),[j,k]=(0,b.useState)([]),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(!0),[p,q]=(0,b.useState)(!0),[r,s]=(0,b.useState)(!1),[t,u]=(0,b.useState)(null),[v,w]=(0,b.useState)(null),x=(0,b.useRef)(!1),y=(0,b.useCallback)(a=>{m(a)},[]);(0,b.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]),(0,b.useEffect)(()=>{let a=!1;return(async()=>{try{var b;let c,g=await d.threadService.listThreads();if(h&&!g.some(a=>a.id===h)){let a=await d.threadService.createThread({id:h});g=f([...g.filter(b=>b.id!==a.id),a])}if(a||!i.current)return;k(g);let j=h||null,{threadId:l,shouldClearSavedId:n,restoredFromStorage:o}=(b=g,c=b[0]?.id??null,j?b.some(a=>a.id===j)?{threadId:j,shouldClearSavedId:!1,restoredFromStorage:!0}:{threadId:c,shouldClearSavedId:!0,restoredFromStorage:!1}:{threadId:c,shouldClearSavedId:!1,restoredFromStorage:!1});n&&e(),x.current||(x.current=!0),o&&l?y(l):l?m(a=>a??l):m(null)}catch(a){console.error("Failed to load threads",a)}finally{i.current&&(o(!1),q(!1))}})(),()=>{a=!0}},[h,y]),(0,b.useEffect)(()=>{x.current&&(l||e())},[l]);let z=(0,b.useCallback)(async a=>{s(!0);try{let b=await d.threadService.createThread(a);if(!i.current)return b;return k(a=>f([...a.filter(a=>a.id!==b.id),b])),m(b.id),b}catch(a){throw console.error("Failed to create thread",a),a}finally{i.current&&s(!1)}},[]),A=(0,b.useCallback)(async a=>{if(a){u(a);try{if(await d.threadService.deleteThread(a),!i.current)return;let b=[];k(c=>b=f(c.filter(b=>b.id!==a))),m(c=>c===a?b[0]?.id??null:c)}catch(a){throw console.error("Failed to delete thread",a),a}finally{i.current&&u(null)}}},[]),B=(0,b.useCallback)(async(a,b)=>{let c=a.trim(),e=b.trim();if(c&&e){w(c);try{let a=await d.threadService.renameThread(c,e);if(!a||!i.current)return;k(b=>f(b.map(b=>b.id===a.id?a:b)))}catch(a){throw console.error("Failed to rename thread",a),a}finally{i.current&&w(a=>a===c?null:a)}}},[]),C=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.saveThreadMessages(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread messages",a)}},[]),D=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadStatus(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread status",a)}},[]),E=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadOutcomeNote(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread outcome note",a)}},[]),F=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageThreadStatus(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message thread status",a)}},[]),G=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageOutcomeNote(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message outcome note",a)}},[]),H=null!==l&&t===l;return{threads:j,activeThreadId:l,selectThread:y,createThread:z,deleteThread:A,isLoading:n,isRestoringActiveThread:p,isCreating:r,deletingThreadId:t,renamingThreadId:v,isDeletingActiveThread:H,updateThreadMessages:C,renameThread:B,updateThreadStatus:D,updateThreadOutcomeNote:E,updateMessageThreadStatus:F,updateMessageOutcomeNote:G}}a.s(["useThreadState",()=>g],111013)},455106,a=>{"use strict";let b={threadSidebarVisible:!1};function c(){return({...b}).threadSidebarVisible}function d(a){}a.s(["loadWorkspaceSidebarVisible",()=>c,"persistWorkspaceSidebarVisible",()=>d])}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_988d29c0._.js.map
@@ -0,0 +1,7 @@
1
+ module.exports=[489461,a=>{"use strict";let b=(0,a.i(831709).default)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);a.s(["Target",()=>b],489461)},985339,a=>{"use strict";let b=(0,a.i(831709).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);a.s(["Users",()=>b],985339)},766412,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(811760),e=a.i(542341),f=a.i(627421),g=a.i(824179);function h({options:a,value:h,onChange:i,placeholder:j,disabled:k}){let[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=(0,c.useMemo)(()=>{if(!n)return a;let b=n.toLowerCase();return a.filter(a=>a.label.toLowerCase().includes(b)||a.description?.toLowerCase().includes(b)||a.meta?.toLowerCase().includes(b))},[a,n]),s=(0,c.useMemo)(()=>a.find(a=>a.id===h),[a,h]),t=(0,c.useCallback)(a=>{p.current&&!p.current.contains(a.target)&&m(!1)},[]);return(0,c.useEffect)(()=>(document.addEventListener("pointerdown",t),()=>document.removeEventListener("pointerdown",t)),[t]),(0,b.jsxs)("div",{ref:p,className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{k||(m(!l),o(""),setTimeout(()=>q.current?.focus(),0))},disabled:k,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[s?(0,b.jsx)("span",{className:"truncate",children:s.label}):(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] truncate",children:j}),(0,b.jsx)(d.ChevronDown,{className:`w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0 transition-transform ${l?"rotate-180":""}`})]}),l&&(0,b.jsxs)("div",{className:"absolute z-50 mt-2 min-w-full w-max max-w-[28rem] rounded-2xl overflow-hidden right-0",style:{background:"var(--card-bg)",border:"1px solid var(--border)",boxShadow:"0 8px 30px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05)"},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,b.jsx)(e.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,b.jsx)("input",{ref:q,value:n,onChange:a=>o(a.target.value),placeholder:"Search...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"}),n&&(0,b.jsx)("button",{onClick:()=>o(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(g.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"max-h-72 overflow-y-auto py-1",children:[0===r.length&&(0,b.jsx)("div",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"No matches"}),r.map(a=>{let c=a.id===h;return(0,b.jsxs)("button",{onClick:()=>{a.disabled||(i(a.id),m(!1),o(""))},disabled:a.disabled,className:`
2
+ w-full text-left px-3.5 py-2.5 flex items-center gap-3 transition-colors
3
+ ${a.disabled?"opacity-35 cursor-not-allowed":""}
4
+ ${c?"bg-[var(--primary)]/10":"hover:bg-[var(--muted)]/40"}
5
+ `,children:[(0,b.jsx)("div",{className:`w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 border ${c?"bg-[var(--primary)] border-[var(--primary)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)(f.Check,{className:"w-3 h-3 text-white"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:a.label}),a.meta&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-[var(--muted)]/50 text-[var(--muted-foreground)]",children:a.meta})]}),a.description&&(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 line-clamp-1",children:a.description})]})]},a.id)})]})]})]})}a.s(["default",()=>h])},804632,a=>{"use strict";let b=(0,a.i(831709).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);a.s(["Copy",()=>b],804632)},724938,a=>{"use strict";let b=(0,a.i(831709).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",()=>b],724938)},66456,a=>{"use strict";let b=(0,a.i(831709).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);a.s(["Zap",()=>b],66456)},144462,962684,a=>{"use strict";let b=(0,a.i(831709).default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);a.s(["default",()=>b],962684),a.s(["TerminalSquare",()=>b],144462)},188834,a=>{"use strict";var b=a.i(308316),c=a.i(786220);function d({initialPath:a,onSelect:d,onCancel:e}){let[f,g]=(0,c.useState)(a||""),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null),n=(0,c.useRef)(null),o=(0,c.useCallback)(async a=>{k(!0),m(null);try{let b=a?`?path=${encodeURIComponent(a)}`:"",c=await fetch(`/api/filesystem/browse${b}`),d=await c.json();if(!c.ok)return void m(d.error||"Failed to browse");i(d),g(d.current),n.current?.scrollTo(0,0)}catch{m("Failed to connect")}finally{k(!1)}},[]);return(0,c.useEffect)(()=>{o(a||"")},[]),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,b.jsx)("input",{value:f,onChange:a=>g(a.target.value),onKeyDown:a=>{"Enter"===a.key&&o(f)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,b.jsx)("button",{type:"button",onClick:()=>o(f),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,b.jsxs)("div",{ref:n,className:"max-h-48 overflow-y-auto",children:[j&&(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),l&&(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:l}),!j&&h&&(0,b.jsxs)("div",{className:"py-1",children:[h.parent&&(0,b.jsxs)("button",{type:"button",onClick:()=>o(h.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,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===h.dirs.length&&!h.parent&&(0,b.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),h.dirs.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>o(a.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,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.path))]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:h?.current||f}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:e,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>d(h?.current||f),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}let e={name:"",description:""},f={name:"",path:"",notes:""};function g(){let[a,b]=(0,c.useState)(e),[d,g]=(0,c.useState)([f]),[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(null),l=(0,c.useCallback)((a,b,c)=>{g(d=>d.map((d,e)=>e===a?{...d,[b]:c}:d))},[]),m=(0,c.useCallback)(()=>{g(a=>[...a,{...f}])},[]),n=(0,c.useCallback)(a=>{g(b=>b.filter((b,c)=>c!==a))},[]),o=(0,c.useCallback)(()=>{b(e),g([f]),k(null)},[]),p=(0,c.useCallback)(a=>{b({name:a.name||"",description:a.description||""}),a.repos&&a.repos.length>0?g(a.repos.map(a=>({id:a.id,name:a.name||"",path:a.path||"",git_url:a.git_url||"",notes:a.notes||""}))):g([f]),k(null)},[]);return{form:a,setForm:b,repos:d,handleRepoChange:l,addRepo:m,removeRepo:n,resetForm:o,hydrateFromProject:p,isSubmitting:h,setIsSubmitting:i,formError:j,setFormError:k}}function h(a,b){let c=b.filter(a=>a.name.trim()&&a.path.trim()).map(a=>({...a.id?{id:a.id}:{},name:a.name.trim(),path:a.path.trim(),...a.git_url?.trim()?{git_url:a.git_url.trim()}:{},notes:a.notes.trim()||void 0}));return{name:a.name.trim(),description:a.description.trim()||void 0,repos:c.length?c:void 0}}function i({form:a,repos:e,isEditingProject:f,isSubmitting:g,onFieldChange:h,onRepoChange:i,onAddRepo:j,onRemoveRepo:k}){let[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)(null),p=(0,c.useRef)(0);(0,c.useEffect)(()=>{f?m([]):m(e.map((a,b)=>b)),p.current=e.length},[f,e.length]),(0,c.useEffect)(()=>{if(!f){p.current=e.length;return}let a=p.current;m(b=>{let c=b.filter(a=>a<e.length);return e.length>a&&c.push(...Array.from({length:e.length-a},(b,c)=>a+c)),c}),p.current=e.length},[f,e.length]);let q=(0,c.useCallback)(a=>{m(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},[]),r=(0,c.useCallback)(a=>!f||l.includes(a),[l,f]);return(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsx)("div",{className:"grid gap-4",children:(0,b.jsxs)("label",{className:"space-y-1.5 block",children:[(0,b.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,b.jsx)("input",{value:a.name,onChange:a=>h("name",a.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:g})]})}),(0,b.jsxs)("label",{className:"space-y-1.5 block",children:[(0,b.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,b.jsx)("textarea",{value:a.description,onChange:a=>h("description",a.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:g})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,b.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,b.jsx)("button",{type:"button",onClick:j,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:g,children:"+ Add Folder"})]}),(0,b.jsx)("div",{className:"space-y-4",children:e.map((a,c)=>(0,b.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",c+1]}),f&&!r(c)?(0,b.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("div",{children:a.name||"Unnamed folder"}),(0,b.jsx)("div",{className:"truncate",children:a.path||"No local path set"})]}):null]}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[f&&(0,b.jsx)("button",{type:"button",onClick:()=>q(c),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:g,children:r(c)?"Done":"Edit"}),e.length>1&&(0,b.jsx)("button",{type:"button",onClick:()=>k(c),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:g,children:"Remove"})]})]}),r(c)?(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsx)("input",{value:a.name,onChange:a=>i(c,"name",a.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:g}),(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{value:a.path,onChange:a=>i(c,"path",a.target.value),placeholder:"Local path to folder",className:`input text-sm flex-1${a.name.trim()&&!a.path.trim()?" border-[var(--destructive)]/50 ring-1 ring-[var(--destructive)]/20":""}`,disabled:g}),(0,b.jsx)("button",{type:"button",onClick:async()=>{try{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json();b.path&&i(c,"path",b.path)}catch{o(n===c?null:c)}},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:g,children:"Browse"})]}),a.name.trim()&&!a.path.trim()&&(0,b.jsx)("p",{className:"text-[11px] text-[var(--destructive)]",children:"Local path is required"})]}),n===c&&(0,b.jsx)("div",{className:"md:col-span-2",children:(0,b.jsx)(d,{initialPath:a.path||"",onSelect:a=>{i(c,"path",a),o(null)},onCancel:()=>o(null)})}),(0,b.jsx)("div",{className:"md:col-span-2",children:(0,b.jsx)("textarea",{value:a.notes,onChange:a=>i(c,"notes",a.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:g})})]}):null]},c))})]})]})}function j({isOpen:a,onClose:d,onSubmit:e,editingProject:f,form:g,repos:h,isSubmitting:j,formError:k,onFieldChange:l,onRepoChange:m,onAddRepo:n,onRemoveRepo:o}){let[p,q]=(0,c.useState)([]);(0,c.useEffect)(()=>{let a=!1;return async function(){if(!f)return q([]);try{let b=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(f.id)}`),c=(b.ok?await b.json():{note:null}).note;a||q(c?.content?[{id:c.id,content:c.content,created_at:c.updatedAt??c.createdAt,source:c.sourceType}]:[])}catch{a||q([])}}(),()=>{a=!0}},[f]);let r=h.some(a=>a.name.trim()&&!a.path.trim()),s=!g.name.trim()||r;return a?(0,b.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:a=>a.target===a.currentTarget&&d(),children:(0,b.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,b.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,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-xl font-bold",children:f?"Edit Project":"Create New Project"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:f?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,b.jsx)("button",{onClick:d,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,b.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[f&&(0,b.jsx)("div",{className:"mb-6",children:(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,b.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),p.length>0?(0,b.jsx)("div",{className:"mt-3 space-y-2",children:p.slice(0,5).map(a=>(0,b.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,b.jsx)("div",{children:a.content}),a.created_at?(0,b.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(a.created_at).toLocaleString()}):null]},a.id))}):(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,b.jsx)(i,{form:g,repos:h,isEditingProject:!!f,isSubmitting:j,onFieldChange:l,onRepoChange:m,onAddRepo:n,onRemoveRepo:o}),k&&(0,b.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:k})]}),(0,b.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,b.jsx)("button",{onClick:d,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,b.jsx)("button",{onClick:e,disabled:j||s,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:j?(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):f?"Save Changes":"Create Project"})]})]})}):null}a.s(["createProjectPayload",()=>h,"default",()=>j,"useProjectFormState",()=>g],188834)},97723,a=>{"use strict";let b=(0,a.i(831709).default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);a.s(["Bell",()=>b],97723)},971382,a=>{"use strict";let b=(0,a.i(831709).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);a.s(["Bot",()=>b],971382)},227444,a=>{"use strict";var b=a.i(786220);function c(a){let[c,d]=(0,b.useState)([]),[e,f]=(0,b.useState)(null),[g,h]=(0,b.useState)(!0),i=(0,b.useCallback)(async()=>{if(!a){d([]),f(null),h(!1);return}try{let b=await fetch(`/api/trackers/connections?projectId=${encodeURIComponent(a)}`),c=await b.json();d(Array.isArray(c.connections)?c.connections:[]),f("string"==typeof c.defaultTracker?c.defaultTracker:null)}catch{d([]),f(null)}finally{h(!1)}},[a]);(0,b.useEffect)(()=>{i()},[i]);let j=(0,b.useCallback)(async(b,c)=>{if(!a)return{ok:!1,error:"Missing projectId"};try{let d=await fetch("/api/trackers/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:b,projectId:a,metadata:c})});if(!d.ok){let a=await d.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to add connection"}}return await i(),{ok:!0}}catch{return{ok:!1,error:"Failed to add connection"}}},[a,i]),k=(0,b.useCallback)(async b=>{if(!a)return{ok:!1,error:"Missing projectId"};try{let c=await fetch(`/api/trackers/${b}/status?projectId=${encodeURIComponent(a)}`,{method:"DELETE"});if(!c.ok){let a=await c.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to remove connection"}}return await i(),{ok:!0}}catch{return{ok:!1,error:"Failed to remove connection"}}},[a,i]),l=(0,b.useCallback)(async b=>{if(!a)return{ok:!1,error:"Missing projectId"};try{let c=await fetch("/api/trackers/connections",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,defaultTracker:b})});if(!c.ok){let a=await c.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to set default tracker"}}return await i(),{ok:!0}}catch{return{ok:!1,error:"Failed to set default tracker"}}},[a,i]);return{connections:c,defaultTracker:e,loading:g,refresh:i,addConnection:j,removeConnection:k,setDefaultTracker:l}}a.s(["useTrackerConnections",()=>c])}];
6
+
7
+ //# sourceMappingURL=apps_local_ae1a134f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[665045,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(850985),e=a.i(285320),f=a.i(811760),g=a.i(756490),h=a.i(804632),i=a.i(627421),j=a.i(340492),k=a.i(960216),l=a.i(316099),m=a.i(667597),n=a.i(353532),o=a.i(831709);let p=(0,o.default)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),q=(0,o.default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);var r=a.i(985339),s=a.i(824179),t=a.i(830284),u=a.i(8e4),v=a.i(870630);function w(a){return a?a.projects??[]:[]}let x=["Ada","Kai","Sage","Nova","Cleo","Milo","Iris","Juno","Remy","Zara","Arlo","Luna","Ezra","Wren","Nico","Thea","Fern","Orla","Kira","Dax","Lyra","Soren","Vera","Elio"];function y(){let[a,o]=(0,c.useState)([]),[y,z]=(0,c.useState)([]),{projects:A,createProject:B,addAgent:C,removeAgent:D,refresh:E}=(0,t.useProjectsWithAgents)(),[F,G]=(0,c.useState)(new Set),[H,I]=(0,c.useState)(null),[J,K]=(0,c.useState)(new Set),[L,M]=(0,c.useState)(!1),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(!1),[R,S]=(0,c.useState)(new Set),[T,U]=(0,c.useState)(!0),[V,W]=(0,c.useState)(!1),[X,Y]=(0,c.useState)(null),[Z,$]=(0,c.useState)(null),[_,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)("choice"),[af,ag]=(0,c.useState)(""),[ah,ai]=(0,c.useState)(!1),[aj,ak]=(0,c.useState)(null),[al,am]=(0,c.useState)(new Set),[an,ao]=(0,c.useState)(new Set),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(null),at=(0,c.useRef)(null),[au,av]=(0,c.useState)(new Set),aw=()=>{fetch("/api/participants").then(a=>a.json()).then(a=>o(Array.isArray(a)?a:[]))},ax=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/processes");if(!a.ok)return;let b=await a.json();av(new Set(b.filter(a=>"spawning"===a.state||"running"===a.state).map(a=>a.agentId)))}catch{}},[]);(0,c.useEffect)(()=>{aw(),v.threadService.listThreads().then(z),ax();let a=setInterval(ax,3e3);return()=>clearInterval(a)},[ax]);let ay=new Map(y.map(a=>[a.id,a])),az=A.filter(a=>!a.is_default),aA=async()=>{if(0!==R.size){W(!0);try{let a=await fetch("/api/agent-specs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:Array.from(R),includeSelf:T})});if(!a.ok)throw Error("Share failed");let b=await a.json();Y(b.code),$(b.expires_at)}catch(a){console.error("Share error:",a)}finally{W(!1)}}},aB=async()=>{if(0!==R.size){W(!0);try{let a=Array.from(R),b=await fetch("/api/agents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:a})});if(!b.ok)throw Error("Export failed");let c=(await b.json()).agents.map(a=>({...a,self:T?a.self:null})),d={version:1,exportedAt:new Date().toISOString(),agents:c,projects:[]},e=new Blob([JSON.stringify(d,null,2)],{type:"application/json"}),f=URL.createObjectURL(e),g=document.createElement("a");g.href=f,g.download=1===c.length?`${c[0].name.toLowerCase().replace(/\s+/g,"-")}.agent.json`:"agents.bundle.json",g.click(),URL.revokeObjectURL(f),Q(!1)}catch(a){console.error("Export error:",a)}finally{W(!1)}}},aC=async()=>{if(0!==af.trim().length){ai(!0),as(null),ak(null);try{let a=await fetch(`/api/agent-specs/pull?code=${encodeURIComponent(af.trim())}`);if(!a.ok){let b=await a.json().catch(()=>({error:"Failed to pull"}));as(b.error||"Code not found or expired");return}let b=(await a.json()).bundle;ak(b),am(new Set(b.agents.map(a=>a.id))),ao(new Set(w(b).map(a=>a.name)))}catch{as("Failed to connect. Is agx-api running?")}finally{ai(!1)}}},aD=async()=>{if(aj){aq(!0);try{let b=new Set(a.map(a=>a.id));for(let a of aj.agents){if(!al.has(a.id))continue;let c={name:a.name,provider:a.provider,model:a.model,color:a.color,identity:a.identity||void 0,voice:a.voice||void 0,seed:a.seed||void 0,identityFile:a.identityFile||void 0,skills:a.skills||[],variables:a.variables||{}};b.has(a.id)?(c.id=a.id,await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})):await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}for(let a of w(aj)){if(!an.has(a.name))continue;let b=await B(a.name);if(b)for(let c of a.agentIds)al.has(c)&&await C(b.id,c)}aw(),await E(),ac(!1),ak(null)}catch(a){console.error("Import error:",a),as("Import failed. Check console for details.")}finally{aq(!1)}}},aE=H?A.find(a=>a.id===H.projectId):null,aF=new Set(aE?.agents.map(a=>a.agent_id)??[]),aG=H?a.filter(a=>!aF.has(a.id)):[],aH=({checked:a})=>(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${a?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--app-shell-soft-text)]"}`,children:a&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})});return(0,b.jsxs)("div",{className:"min-h-screen bg-[var(--secondary)] p-6",children:[(0,b.jsxs)("div",{className:"max-w-6xl mx-auto",children:[(0,b.jsxs)("div",{className:"desktop-titlebar sticky top-0 z-20 -mx-6 mb-6 flex items-center gap-3 border-b border-[var(--border)] bg-[var(--secondary)]/92 px-6 py-4 backdrop-blur-md",children:[(0,b.jsxs)(d.default,{href:"/",className:"inline-flex items-center gap-1 text-sm text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",children:[(0,b.jsx)(e.ArrowLeft,{size:16}),"Back"]}),(0,b.jsx)("h1",{className:"text-2xl font-semibold text-[var(--foreground)]",children:"Manage Agents"}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 transition-colors",onClick:()=>M(!0),children:[(0,b.jsx)(n.Plus,{size:13}),"New Agent"]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 transition-colors",onClick:()=>{S(new Set(a.map(a=>a.id))),U(!0),Y(null),$(null),aa(!1),Q(!0)},disabled:0===a.length,children:[(0,b.jsx)(p,{size:13}),"Share"]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-violet-600 bg-violet-50 border border-violet-200 rounded-lg hover:bg-violet-100 transition-colors",onClick:()=>{ae("choice"),ag(""),ak(null),am(new Set),ao(new Set),as(null),ac(!0)},children:[(0,b.jsx)(j.Download,{size:13}),"Import"]}),(0,b.jsx)("input",{ref:at,type:"file",accept:".json",className:"hidden",onChange:a=>{let b=a.target.files?.[0];if(!b)return;as(null);let c=new FileReader;c.onload=()=>{try{let a=JSON.parse(c.result);if(!a.version||!Array.isArray(a.agents))throw Error("Invalid bundle format");ak(a),am(new Set(a.agents.map(a=>a.id))),ao(new Set(w(a).map(a=>a.name)))}catch{as("Invalid file. Expected an .agent.json bundle.")}},c.readAsText(b),a.target.value=""}})]})]}),ar&&!ab&&(0,b.jsxs)("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-50 border border-red-200 text-sm text-red-700 flex items-center justify-between",children:[(0,b.jsx)("span",{children:ar}),(0,b.jsx)("button",{type:"button",onClick:()=>as(null),className:"text-red-400 hover:text-red-600",children:(0,b.jsx)(s.X,{size:14})})]}),0===a.length?(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm",children:"No agents configured yet."}):(0,b.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:a.map(a=>(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] p-4 hover:shadow-md transition-shadow text-left group",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 mb-3",children:[(0,b.jsx)("img",{src:(0,u.agentAvatarUrl)(a.id,48,a.color),alt:a.name,className:"w-12 h-12 rounded-full bg-[var(--secondary)]"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("h3",{className:"font-medium text-[var(--foreground)] truncate",children:a.name}),(0,b.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] truncate mt-0.5",children:a.model}),au.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 mt-1 text-[10px] font-medium text-emerald-600",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse"}),"Working"]})]})]}),a.skills&&a.skills.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-1 mb-3",children:[a.skills.slice(0,3).map((a,c)=>(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-blue-50 text-blue-600 truncate max-w-[120px]",children:a.file.split("/").pop()},c)),a.skills.length>3&&(0,b.jsxs)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--secondary)] text-[var(--app-shell-soft-text)]",children:["+",a.skills.length-3]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-2 border-t border-[var(--border)]",children:[(0,b.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-[var(--secondary)] text-[var(--muted-foreground)] uppercase tracking-wide",children:a.provider}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,b.jsx)("button",{type:"button",title:"Edit",onClick:()=>O(a),className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,b.jsx)(m.Pencil,{size:13})}),(0,b.jsx)(d.default,{href:`/agents/${a.id}`,title:"View profile",className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,b.jsx)(k.Eye,{size:13})})]})]})]},a.id))}),(0,b.jsxs)("div",{className:"mt-10",children:[(0,b.jsxs)("div",{className:"mb-4",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--foreground)]",children:"Project assignments"}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--app-shell-soft-text)]",children:"Assign agents to existing projects."})]}),0===az.length?(0,b.jsx)("p",{className:"text-sm text-[var(--app-shell-soft-text)]",children:"No projects available for assignment."}):(0,b.jsx)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] divide-y divide-[var(--border)]",children:az.map(c=>{let d=F.has(c.id),e=(c.thread_ids??[]).map(a=>ay.get(a)?.title?.trim()||"Untitled").filter(Boolean);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 px-5 py-3.5 group",children:[(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-3 flex-1 min-w-0 text-left",onClick:()=>{var a;return a=c.id,void G(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},children:[d?(0,b.jsx)(f.ChevronDown,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}):(0,b.jsx)(g.ChevronRight,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,b.jsx)(r.Users,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)] text-sm",children:c.name}),(0,b.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)]",children:[c.agents.length," ",1===c.agents.length?"agent":"agents",e.length>0&&` \xb7 ${e.length} ${1===e.length?"thread":"threads"}`]})]}),(0,b.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",title:"Add agents",onClick:()=>{K(new Set),I({projectId:c.id})},children:[(0,b.jsx)(n.Plus,{size:14}),"Add agents"]})})]}),d&&(0,b.jsxs)("div",{className:"px-5 pb-4 pt-1 ml-9 flex flex-col gap-1",children:[0===c.agents.length&&(0,b.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] py-1",children:"No agents in this project."}),c.agents.map(d=>{let e=a.find(a=>a.id===d.agent_id);return(0,b.jsxs)("div",{className:"flex items-center gap-2.5 py-1.5 group/agent",children:[(0,b.jsx)("img",{src:(0,u.agentAvatarUrl)(d.agent_id,24,e?.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"text-sm text-[var(--secondary-foreground)] truncate flex-1",children:e?.name??d.agent_id}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:e?.model}),(0,b.jsx)("button",{type:"button",className:"opacity-0 group-hover/agent:opacity-100 text-[var(--app-shell-soft-text)] hover:text-red-500 transition-opacity",onClick:()=>void D(c.id,d.agent_id),title:"Remove from project",children:(0,b.jsx)(s.X,{size:14})})]},d.agent_id)}),(0,b.jsxs)("button",{type:"button",className:"mt-2 inline-flex items-center gap-1.5 self-start rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",onClick:()=>{K(new Set),I({projectId:c.id})},children:[(0,b.jsx)(n.Plus,{size:12}),"Add agents"]}),e.length>0&&(0,b.jsxs)("div",{className:"mt-2 pt-2 border-t border-[var(--border)]",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-1",children:"Threads"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md bg-indigo-50 text-indigo-600",children:[(0,b.jsx)(l.Hash,{size:11}),a]},c))})]})]})]},c.id)})})]})]}),P&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>Q(!1),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Share Agents"}),(0,b.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>Q(!1),children:(0,b.jsx)(s.X,{size:16})})]}),X?(0,b.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-4",children:[(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] mb-3",children:"Share this code with the recipient:"}),(0,b.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,b.jsx)("span",{className:"text-3xl font-mono font-bold tracking-[0.3em] text-[var(--foreground)]",children:X}),(0,b.jsx)("button",{type:"button",className:"p-2 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] transition-colors",onClick:()=>{X&&(navigator.clipboard.writeText(X),aa(!0),setTimeout(()=>aa(!1),2e3))},children:_?(0,b.jsx)(i.Check,{size:18,className:"text-green-500"}):(0,b.jsx)(h.Copy,{size:18})})]})]}),Z&&(0,b.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Expires ",new Date(Z).toLocaleTimeString()]}),(0,b.jsx)("button",{type:"button",className:"px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>Q(!1),children:"Done"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"overflow-y-auto flex-1",children:[az.length>0&&(0,b.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-3",children:[(0,b.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-2",children:"Select by project"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:az.map(c=>{let d=c.agents.map(a=>a.agent_id),e=d.length>0&&d.every(a=>R.has(a)),f=d.some(a=>R.has(a));return(0,b.jsxs)("button",{type:"button",className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors ${e?"bg-[var(--foreground)] text-white":f?"bg-[var(--app-shell-soft-text)] text-[var(--secondary-foreground)]":"bg-[var(--secondary)] text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{S(a=>{let b=new Set(a);return e?d.forEach(a=>b.delete(a)):d.forEach(a=>b.add(a)),b})},title:d.map(b=>a.find(a=>a.id===b)?.name??b).join(", "),children:[(0,b.jsx)(r.Users,{size:10}),c.name,(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:c.agents.length})]},c.id)})})]}),(0,b.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,b.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,b.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:"Agents"}),(0,b.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{R.size===a.length?S(new Set):S(new Set(a.map(a=>a.id)))},children:R.size===a.length?"Deselect all":"Select all"})]}),a.map(a=>{let c=R.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${c?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{S(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)(aH,{checked:c}),(0,b.jsx)("img",{src:(0,u.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:a.name}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:a.provider})]},a.id)})]}),(0,b.jsx)("div",{className:"px-5 py-3",children:(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors ${T?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>U(!T),children:[(0,b.jsx)(aH,{checked:T}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Include self.md (agent bio)"})]})})]}),(0,b.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,b.jsxs)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:[R.size," ",1===R.size?"agent":"agents"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("button",{type:"button",disabled:0===R.size||V,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--card-bg)] border border-[var(--border)] rounded-lg hover:bg-[var(--item-hover-bg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aB(),children:[(0,b.jsx)(j.Download,{size:12}),V?"Exporting...":"Export to File"]}),(0,b.jsxs)("button",{type:"button",disabled:0===R.size||V,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aA(),children:[(0,b.jsx)(p,{size:12}),V?"Pushing...":"Push to Hub"]}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>Q(!1),children:"Cancel"})]})]})]})]})}),H&&!L&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>I(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",aE?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>I(null),children:(0,b.jsx)(s.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)] transition-colors border-b border-[var(--border)]",onClick:()=>M(!0),children:[(0,b.jsx)(n.Plus,{size:14,className:"text-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===aG.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--app-shell-soft-text)] text-center",children:"All agents are already in this project"}):aG.map(a=>{let c=J.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{K(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)(aH,{checked:c}),(0,b.jsx)("img",{src:(0,u.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsx)("div",{className:"min-w-0 flex-1 text-left",children:(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name})})]},a.id)})]}),aG.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>I(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===J.size,className:"px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of J)C(H.projectId,a);I(null)},children:["Add ",J.size>0?`(${J.size})`:""]})]})]})}),L&&(0,b.jsx)(u.AgentForm,{title:"Create new agent",initial:{name:x[Math.floor(Math.random()*x.length)],provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create",projects:az.map(a=>{let b=(a.thread_ids??[]).map(a=>ay.get(a)?.title?.trim()).filter(Boolean).join(", ")||"No thread";return{id:a.id,name:a.name,label:`${b} › ${a.name}`}}),initialProjectIds:H?[H.projectId]:[],onSubmit:async(b,c)=>{let d=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],e=d[a.length%d.length],f=b.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g=c?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,name:b.name,provider:b.provider,model:b.model,color:b.color??e,...b.role?{role:b.role}:{},...b.identity?{identity:b.identity}:{},skills:b.skills??[],skillBindings:b.skillBindings??[],...g?{projectId:g}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),b="string"==typeof a?.id&&a.id.trim()?a.id.trim():f;for(let a of(c??[]).slice(1))await C(a,b);M(!1),I(null),aw(),E()}},onCancel:()=>{M(!1)}}),N&&(0,b.jsx)(u.AgentForm,{title:"Edit agent",initial:{name:N.name,role:N.role||"",provider:N.provider,model:N.model||"",identity:N.identity||"",color:N.color,skills:N.skills||[],skillBindings:N.skillBindings||[]},agentId:N.id,submitLabel:"Save",projectMemberships:{current:A.filter(a=>a.agents.some(a=>a.agent_id===N.id)).map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:A.filter(a=>!a.agents.some(a=>a.agent_id===N.id)).map(a=>({id:a.id,name:a.name}))},onAddToProject:a=>C(a,N.id),onRemoveFromProject:a=>D(a,N.id),onSubmit:async a=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:N.id,name:a.name,role:a.role||null,provider:a.provider,model:a.model,color:a.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]})}),O(null),aw()},onCancel:()=>O(null)}),ab&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ac(!1),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Import Agents"}),(0,b.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>ac(!1),children:(0,b.jsx)(s.X,{size:16})})]}),"choice"===ad&&!aj&&(0,b.jsxs)("div",{className:"px-5 py-6 flex flex-col gap-3",children:[(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-violet-300 hover:bg-violet-50 transition-colors text-left",onClick:()=>ae("pull"),children:[(0,b.jsx)("div",{className:"w-9 h-9 rounded-lg bg-violet-100 flex items-center justify-center flex-shrink-0",children:(0,b.jsx)(j.Download,{size:16,className:"text-violet-600"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Pull from Hub"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Enter a share code to import agents"})]})]}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-[var(--border)] hover:bg-[var(--item-hover-bg)] transition-colors text-left",onClick:()=>{ae("file"),setTimeout(()=>at.current?.click(),100)},children:[(0,b.jsx)("div",{className:"w-9 h-9 rounded-lg bg-[var(--secondary)] flex items-center justify-center flex-shrink-0",children:(0,b.jsx)(q,{size:16,className:"text-[var(--muted-foreground)]"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Upload File"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Import from a .agent.json bundle"})]})]})]}),"pull"===ad&&!aj&&(0,b.jsxs)("div",{className:"px-5 py-5 flex flex-col gap-3",children:[(0,b.jsx)("label",{className:"text-sm text-[var(--muted-foreground)]",children:"Enter share code:"}),(0,b.jsx)("input",{autoFocus:!0,type:"text",value:af,onChange:a=>ag(a.target.value.toUpperCase()),placeholder:"e.g. A3X9K2",maxLength:6,className:"w-full px-3 py-2.5 text-center text-2xl font-mono font-bold tracking-[0.3em] border border-[var(--border)] rounded-lg outline-none focus:border-violet-400 focus:ring-1 focus:ring-violet-200 transition-all bg-[var(--card-bg)] text-[var(--foreground)]",onKeyDown:a=>{"Enter"===a.key&&aC()}}),ar&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ar}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 mt-1",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>{ae("choice"),as(null)},children:"Back"}),(0,b.jsx)("button",{type:"button",disabled:0===af.trim().length||ah,className:"px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aC(),children:ah?"Fetching...":"Fetch"})]})]}),"file"===ad&&!aj&&(0,b.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Select a .agent.json file to import"}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>at.current?.click(),children:[(0,b.jsx)(q,{size:13}),"Choose File"]}),ar&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ar}),(0,b.jsx)("button",{type:"button",className:"text-xs text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] mt-1",onClick:()=>{ae("choice"),as(null)},children:"Back"})]}),aj&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"overflow-y-auto flex-1",children:[aj.exportedAt&&(0,b.jsx)("div",{className:"px-5 py-3 border-b border-[var(--border)] bg-[var(--secondary)]",children:(0,b.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Exported ",new Date(aj.exportedAt).toLocaleDateString()," · ",aj.agents.length," agents",w(aj).length>0?`, ${w(aj).length} projects`:""]})}),(0,b.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,b.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,b.jsxs)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:[aj.agents.length," agent",1===aj.agents.length?"":"s"," found"]}),(0,b.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{al.size===aj.agents.length?am(new Set):am(new Set(aj.agents.map(a=>a.id)))},children:al.size===aj.agents.length?"Deselect all":"Select all"})]}),aj.agents.map(c=>{let d=al.has(c.id),e=a.find(a=>a.id===c.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2.5 text-sm transition-colors ${d?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{am(a=>{let b=new Set(a);return b.has(c.id)?b.delete(c.id):b.add(c.id),b})},children:[(0,b.jsx)(aH,{checked:d}),(0,b.jsx)("img",{src:(0,u.agentAvatarUrl)(c.id,24,c.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium",children:c.name}),(0,b.jsxs)("div",{className:"truncate text-[10px] text-[var(--app-shell-soft-text)]",children:[c.provider,c.model?` \xb7 ${c.model}`:""]})]}),e&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-amber-50 text-amber-600 flex-shrink-0",children:"update"}),!e&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-green-50 text-green-600 flex-shrink-0",children:"new"}),c.self&&(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex-shrink-0",children:"+ self.md"})]},c.id)})]}),w(aj).length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"px-5 pt-3 pb-1",children:(0,b.jsx)("p",{className:"text-[11px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Projects"})}),w(aj).map(a=>{let c=an.has(a.name);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${c?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ao(b=>{let c=new Set(b);return c.has(a.name)?c.delete(a.name):c.add(a.name),c})},children:[(0,b.jsx)(aH,{checked:c}),(0,b.jsx)(r.Users,{size:14,className:"text-[var(--muted-foreground)] flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:a.name}),(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:[a.agentIds.length," agents"]})]},a.name)})]})]}),ar&&(0,b.jsx)("div",{className:"px-5 py-2",children:(0,b.jsx)("p",{className:"text-xs text-red-500",children:ar})}),(0,b.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,b.jsxs)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:[al.size," ",1===al.size?"agent":"agents",an.size>0?`, ${an.size} ${1===an.size?"project":"projects"}`:""]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>{ak(null),am(new Set),ao(new Set)},children:"Back"}),(0,b.jsxs)("button",{type:"button",disabled:0===al.size||ap,className:"inline-flex items-center gap-1.5 px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aD(),children:[(0,b.jsx)(q,{size:12}),ap?"Importing...":`Import ${al.size} agent${1===al.size?"":"s"}`]})]})]})]})]})})]})}a.s(["default",()=>y],665045)}];
1
+ module.exports=[665045,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(850985),e=a.i(285320),f=a.i(811760),g=a.i(756490),h=a.i(804632),i=a.i(627421),j=a.i(340492),k=a.i(960216),l=a.i(316099),m=a.i(667597),n=a.i(353532);let o=(0,a.i(831709).default)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);var p=a.i(262403),q=a.i(985339),r=a.i(824179),s=a.i(830284),t=a.i(8e4),u=a.i(870630);function v(a){return a?a.projects??[]:[]}let w=["Ada","Kai","Sage","Nova","Cleo","Milo","Iris","Juno","Remy","Zara","Arlo","Luna","Ezra","Wren","Nico","Thea","Fern","Orla","Kira","Dax","Lyra","Soren","Vera","Elio"];function x(){let[a,x]=(0,c.useState)([]),[y,z]=(0,c.useState)([]),{projects:A,createProject:B,addAgent:C,removeAgent:D,refresh:E}=(0,s.useProjectsWithAgents)(),[F,G]=(0,c.useState)(new Set),[H,I]=(0,c.useState)(null),[J,K]=(0,c.useState)(new Set),[L,M]=(0,c.useState)(!1),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(!1),[R,S]=(0,c.useState)(new Set),[T,U]=(0,c.useState)(!0),[V,W]=(0,c.useState)(!1),[X,Y]=(0,c.useState)(null),[Z,$]=(0,c.useState)(null),[_,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)("choice"),[af,ag]=(0,c.useState)(""),[ah,ai]=(0,c.useState)(!1),[aj,ak]=(0,c.useState)(null),[al,am]=(0,c.useState)(new Set),[an,ao]=(0,c.useState)(new Set),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(null),at=(0,c.useRef)(null),[au,av]=(0,c.useState)(new Set),aw=()=>{fetch("/api/participants").then(a=>a.json()).then(a=>x(Array.isArray(a)?a:[]))},ax=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/processes");if(!a.ok)return;let b=await a.json();av(new Set(b.filter(a=>"spawning"===a.state||"running"===a.state).map(a=>a.agentId)))}catch{}},[]);(0,c.useEffect)(()=>{aw(),u.threadService.listThreads().then(z),ax();let a=setInterval(ax,3e3);return()=>clearInterval(a)},[ax]);let ay=new Map(y.map(a=>[a.id,a])),az=A.filter(a=>!a.is_default),aA=async()=>{if(0!==R.size){W(!0);try{let a=await fetch("/api/agent-specs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:Array.from(R),includeSelf:T})});if(!a.ok)throw Error("Share failed");let b=await a.json();Y(b.code),$(b.expires_at)}catch(a){console.error("Share error:",a)}finally{W(!1)}}},aB=async()=>{if(0!==R.size){W(!0);try{let a=Array.from(R),b=await fetch("/api/agents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:a})});if(!b.ok)throw Error("Export failed");let c=(await b.json()).agents.map(a=>({...a,self:T?a.self:null})),d={version:1,exportedAt:new Date().toISOString(),agents:c,projects:[]},e=new Blob([JSON.stringify(d,null,2)],{type:"application/json"}),f=URL.createObjectURL(e),g=document.createElement("a");g.href=f,g.download=1===c.length?`${c[0].name.toLowerCase().replace(/\s+/g,"-")}.agent.json`:"agents.bundle.json",g.click(),URL.revokeObjectURL(f),Q(!1)}catch(a){console.error("Export error:",a)}finally{W(!1)}}},aC=async()=>{if(0!==af.trim().length){ai(!0),as(null),ak(null);try{let a=await fetch(`/api/agent-specs/pull?code=${encodeURIComponent(af.trim())}`);if(!a.ok){let b=await a.json().catch(()=>({error:"Failed to pull"}));as(b.error||"Code not found or expired");return}let b=(await a.json()).bundle;ak(b),am(new Set(b.agents.map(a=>a.id))),ao(new Set(v(b).map(a=>a.name)))}catch{as("Failed to connect. Is agx-api running?")}finally{ai(!1)}}},aD=async()=>{if(aj){aq(!0);try{let b=new Set(a.map(a=>a.id));for(let a of aj.agents){if(!al.has(a.id))continue;let c={name:a.name,provider:a.provider,model:a.model,color:a.color,identity:a.identity||void 0,voice:a.voice||void 0,seed:a.seed||void 0,identityFile:a.identityFile||void 0,skills:a.skills||[],variables:a.variables||{}};b.has(a.id)?(c.id=a.id,await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})):await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)})}for(let a of v(aj)){if(!an.has(a.name))continue;let b=await B(a.name);if(b)for(let c of a.agentIds)al.has(c)&&await C(b.id,c)}aw(),await E(),ac(!1),ak(null)}catch(a){console.error("Import error:",a),as("Import failed. Check console for details.")}finally{aq(!1)}}},aE=H?A.find(a=>a.id===H.projectId):null,aF=new Set(aE?.agents.map(a=>a.agent_id)??[]),aG=H?a.filter(a=>!aF.has(a.id)):[],aH=({checked:a})=>(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${a?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--app-shell-soft-text)]"}`,children:a&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})});return(0,b.jsxs)("div",{className:"min-h-screen bg-[var(--secondary)] p-6",children:[(0,b.jsxs)("div",{className:"max-w-6xl mx-auto",children:[(0,b.jsxs)("div",{className:"desktop-titlebar sticky top-0 z-20 -mx-6 mb-6 flex items-center gap-3 border-b border-[var(--border)] bg-[var(--secondary)]/92 px-6 py-4 backdrop-blur-md",children:[(0,b.jsxs)(d.default,{href:"/",className:"inline-flex items-center gap-1 text-sm text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",children:[(0,b.jsx)(e.ArrowLeft,{size:16}),"Back"]}),(0,b.jsx)("h1",{className:"text-2xl font-semibold text-[var(--foreground)]",children:"Manage Agents"}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 transition-colors",onClick:()=>M(!0),children:[(0,b.jsx)(n.Plus,{size:13}),"New Agent"]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 transition-colors",onClick:()=>{S(new Set(a.map(a=>a.id))),U(!0),Y(null),$(null),aa(!1),Q(!0)},disabled:0===a.length,children:[(0,b.jsx)(o,{size:13}),"Share"]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-violet-600 bg-violet-50 border border-violet-200 rounded-lg hover:bg-violet-100 transition-colors",onClick:()=>{ae("choice"),ag(""),ak(null),am(new Set),ao(new Set),as(null),ac(!0)},children:[(0,b.jsx)(j.Download,{size:13}),"Import"]}),(0,b.jsx)("input",{ref:at,type:"file",accept:".json",className:"hidden",onChange:a=>{let b=a.target.files?.[0];if(!b)return;as(null);let c=new FileReader;c.onload=()=>{try{let a=JSON.parse(c.result);if(!a.version||!Array.isArray(a.agents))throw Error("Invalid bundle format");ak(a),am(new Set(a.agents.map(a=>a.id))),ao(new Set(v(a).map(a=>a.name)))}catch{as("Invalid file. Expected an .agent.json bundle.")}},c.readAsText(b),a.target.value=""}})]})]}),ar&&!ab&&(0,b.jsxs)("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-50 border border-red-200 text-sm text-red-700 flex items-center justify-between",children:[(0,b.jsx)("span",{children:ar}),(0,b.jsx)("button",{type:"button",onClick:()=>as(null),className:"text-red-400 hover:text-red-600",children:(0,b.jsx)(r.X,{size:14})})]}),0===a.length?(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm",children:"No agents configured yet."}):(0,b.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:a.map(a=>(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] p-4 hover:shadow-md transition-shadow text-left group",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 mb-3",children:[(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(a.id,48,a.color),alt:a.name,className:"w-12 h-12 rounded-full bg-[var(--secondary)]"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("h3",{className:"font-medium text-[var(--foreground)] truncate",children:a.name}),(0,b.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] truncate mt-0.5",children:a.model}),au.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 mt-1 text-[10px] font-medium text-emerald-600",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse"}),"Working"]})]})]}),a.skills&&a.skills.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-1 mb-3",children:[a.skills.slice(0,3).map((a,c)=>(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-blue-50 text-blue-600 truncate max-w-[120px]",children:a.file.split("/").pop()},c)),a.skills.length>3&&(0,b.jsxs)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--secondary)] text-[var(--app-shell-soft-text)]",children:["+",a.skills.length-3]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between pt-2 border-t border-[var(--border)]",children:[(0,b.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-[var(--secondary)] text-[var(--muted-foreground)] uppercase tracking-wide",children:a.provider}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,b.jsx)("button",{type:"button",title:"Edit",onClick:()=>O(a),className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,b.jsx)(m.Pencil,{size:13})}),(0,b.jsx)(d.default,{href:`/agents/${a.id}`,title:"View profile",className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,b.jsx)(k.Eye,{size:13})})]})]})]},a.id))}),(0,b.jsxs)("div",{className:"mt-10",children:[(0,b.jsxs)("div",{className:"mb-4",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--foreground)]",children:"Project assignments"}),(0,b.jsx)("p",{className:"mt-1 text-sm text-[var(--app-shell-soft-text)]",children:"Assign agents to existing projects."})]}),0===az.length?(0,b.jsx)("p",{className:"text-sm text-[var(--app-shell-soft-text)]",children:"No projects available for assignment."}):(0,b.jsx)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] divide-y divide-[var(--border)]",children:az.map(c=>{let d=F.has(c.id),e=(c.thread_ids??[]).map(a=>ay.get(a)?.title?.trim()||"Untitled").filter(Boolean);return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 px-5 py-3.5 group",children:[(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-3 flex-1 min-w-0 text-left",onClick:()=>{var a;return a=c.id,void G(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},children:[d?(0,b.jsx)(f.ChevronDown,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}):(0,b.jsx)(g.ChevronRight,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,b.jsx)(q.Users,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)] text-sm",children:c.name}),(0,b.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)]",children:[c.agents.length," ",1===c.agents.length?"agent":"agents",e.length>0&&` \xb7 ${e.length} ${1===e.length?"thread":"threads"}`]})]}),(0,b.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",title:"Add agents",onClick:()=>{K(new Set),I({projectId:c.id})},children:[(0,b.jsx)(n.Plus,{size:14}),"Add agents"]})})]}),d&&(0,b.jsxs)("div",{className:"px-5 pb-4 pt-1 ml-9 flex flex-col gap-1",children:[0===c.agents.length&&(0,b.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] py-1",children:"No agents in this project."}),c.agents.map(d=>{let e=a.find(a=>a.id===d.agent_id);return(0,b.jsxs)("div",{className:"flex items-center gap-2.5 py-1.5 group/agent",children:[(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(d.agent_id,24,e?.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"text-sm text-[var(--secondary-foreground)] truncate flex-1",children:e?.name??d.agent_id}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:e?.model}),(0,b.jsx)("button",{type:"button",className:"opacity-0 group-hover/agent:opacity-100 text-[var(--app-shell-soft-text)] hover:text-red-500 transition-opacity",onClick:()=>void D(c.id,d.agent_id),title:"Remove from project",children:(0,b.jsx)(r.X,{size:14})})]},d.agent_id)}),(0,b.jsxs)("button",{type:"button",className:"mt-2 inline-flex items-center gap-1.5 self-start rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",onClick:()=>{K(new Set),I({projectId:c.id})},children:[(0,b.jsx)(n.Plus,{size:12}),"Add agents"]}),e.length>0&&(0,b.jsxs)("div",{className:"mt-2 pt-2 border-t border-[var(--border)]",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-1",children:"Threads"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md bg-indigo-50 text-indigo-600",children:[(0,b.jsx)(l.Hash,{size:11}),a]},c))})]})]})]},c.id)})})]})]}),P&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>Q(!1),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Share Agents"}),(0,b.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>Q(!1),children:(0,b.jsx)(r.X,{size:16})})]}),X?(0,b.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-4",children:[(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] mb-3",children:"Share this code with the recipient:"}),(0,b.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,b.jsx)("span",{className:"text-3xl font-mono font-bold tracking-[0.3em] text-[var(--foreground)]",children:X}),(0,b.jsx)("button",{type:"button",className:"p-2 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] transition-colors",onClick:()=>{X&&(navigator.clipboard.writeText(X),aa(!0),setTimeout(()=>aa(!1),2e3))},children:_?(0,b.jsx)(i.Check,{size:18,className:"text-green-500"}):(0,b.jsx)(h.Copy,{size:18})})]})]}),Z&&(0,b.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Expires ",new Date(Z).toLocaleTimeString()]}),(0,b.jsx)("button",{type:"button",className:"px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>Q(!1),children:"Done"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"overflow-y-auto flex-1",children:[az.length>0&&(0,b.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-3",children:[(0,b.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-2",children:"Select by project"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:az.map(c=>{let d=c.agents.map(a=>a.agent_id),e=d.length>0&&d.every(a=>R.has(a)),f=d.some(a=>R.has(a));return(0,b.jsxs)("button",{type:"button",className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors ${e?"bg-[var(--foreground)] text-white":f?"bg-[var(--app-shell-soft-text)] text-[var(--secondary-foreground)]":"bg-[var(--secondary)] text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{S(a=>{let b=new Set(a);return e?d.forEach(a=>b.delete(a)):d.forEach(a=>b.add(a)),b})},title:d.map(b=>a.find(a=>a.id===b)?.name??b).join(", "),children:[(0,b.jsx)(q.Users,{size:10}),c.name,(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:c.agents.length})]},c.id)})})]}),(0,b.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,b.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,b.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:"Agents"}),(0,b.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{R.size===a.length?S(new Set):S(new Set(a.map(a=>a.id)))},children:R.size===a.length?"Deselect all":"Select all"})]}),a.map(a=>{let c=R.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${c?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{S(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)(aH,{checked:c}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:a.name}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:a.provider})]},a.id)})]}),(0,b.jsx)("div",{className:"px-5 py-3",children:(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors ${T?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>U(!T),children:[(0,b.jsx)(aH,{checked:T}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Include self.md (agent bio)"})]})})]}),(0,b.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,b.jsxs)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:[R.size," ",1===R.size?"agent":"agents"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("button",{type:"button",disabled:0===R.size||V,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--card-bg)] border border-[var(--border)] rounded-lg hover:bg-[var(--item-hover-bg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aB(),children:[(0,b.jsx)(j.Download,{size:12}),V?"Exporting...":"Export to File"]}),(0,b.jsxs)("button",{type:"button",disabled:0===R.size||V,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aA(),children:[(0,b.jsx)(o,{size:12}),V?"Pushing...":"Push to Hub"]}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>Q(!1),children:"Cancel"})]})]})]})]})}),H&&!L&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>I(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",aE?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>I(null),children:(0,b.jsx)(r.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)] transition-colors border-b border-[var(--border)]",onClick:()=>M(!0),children:[(0,b.jsx)(n.Plus,{size:14,className:"text-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===aG.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--app-shell-soft-text)] text-center",children:"All agents are already in this project"}):aG.map(a=>{let c=J.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{K(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)(aH,{checked:c}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsx)("div",{className:"min-w-0 flex-1 text-left",children:(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name})})]},a.id)})]}),aG.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>I(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===J.size,className:"px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of J)C(H.projectId,a);I(null)},children:["Add ",J.size>0?`(${J.size})`:""]})]})]})}),L&&(0,b.jsx)(t.AgentForm,{title:"Create new agent",initial:{name:w[Math.floor(Math.random()*w.length)],provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create",projects:az.map(a=>{let b=(a.thread_ids??[]).map(a=>ay.get(a)?.title?.trim()).filter(Boolean).join(", ")||"No thread";return{id:a.id,name:a.name,label:`${b} › ${a.name}`}}),initialProjectIds:H?[H.projectId]:[],onSubmit:async(b,c)=>{let d=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],e=d[a.length%d.length],f=b.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g=c?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,name:b.name,provider:b.provider,model:b.model,color:b.color??e,...b.role?{role:b.role}:{},...b.identity?{identity:b.identity}:{},skills:b.skills??[],skillBindings:b.skillBindings??[],...g?{projectId:g}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),b="string"==typeof a?.id&&a.id.trim()?a.id.trim():f;for(let a of(c??[]).slice(1))await C(a,b);M(!1),I(null),aw(),E()}},onCancel:()=>{M(!1)}}),N&&(0,b.jsx)(t.AgentForm,{title:"Edit agent",initial:{name:N.name,role:N.role||"",provider:N.provider,model:N.model||"",identity:N.identity||"",color:N.color,skills:N.skills||[],skillBindings:N.skillBindings||[]},agentId:N.id,submitLabel:"Save",projectMemberships:{current:A.filter(a=>a.agents.some(a=>a.agent_id===N.id)).map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:A.filter(a=>!a.agents.some(a=>a.agent_id===N.id)).map(a=>({id:a.id,name:a.name}))},onAddToProject:a=>C(a,N.id),onRemoveFromProject:a=>D(a,N.id),onSubmit:async a=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:N.id,name:a.name,role:a.role||null,provider:a.provider,model:a.model,color:a.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]})}),O(null),aw()},onCancel:()=>O(null)}),ab&&(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ac(!1),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Import Agents"}),(0,b.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>ac(!1),children:(0,b.jsx)(r.X,{size:16})})]}),"choice"===ad&&!aj&&(0,b.jsxs)("div",{className:"px-5 py-6 flex flex-col gap-3",children:[(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-violet-300 hover:bg-violet-50 transition-colors text-left",onClick:()=>ae("pull"),children:[(0,b.jsx)("div",{className:"w-9 h-9 rounded-lg bg-violet-100 flex items-center justify-center flex-shrink-0",children:(0,b.jsx)(j.Download,{size:16,className:"text-violet-600"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Pull from Hub"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Enter a share code to import agents"})]})]}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-[var(--border)] hover:bg-[var(--item-hover-bg)] transition-colors text-left",onClick:()=>{ae("file"),setTimeout(()=>at.current?.click(),100)},children:[(0,b.jsx)("div",{className:"w-9 h-9 rounded-lg bg-[var(--secondary)] flex items-center justify-center flex-shrink-0",children:(0,b.jsx)(p.Upload,{size:16,className:"text-[var(--muted-foreground)]"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Upload File"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Import from a .agent.json bundle"})]})]})]}),"pull"===ad&&!aj&&(0,b.jsxs)("div",{className:"px-5 py-5 flex flex-col gap-3",children:[(0,b.jsx)("label",{className:"text-sm text-[var(--muted-foreground)]",children:"Enter share code:"}),(0,b.jsx)("input",{autoFocus:!0,type:"text",value:af,onChange:a=>ag(a.target.value.toUpperCase()),placeholder:"e.g. A3X9K2",maxLength:6,className:"w-full px-3 py-2.5 text-center text-2xl font-mono font-bold tracking-[0.3em] border border-[var(--border)] rounded-lg outline-none focus:border-violet-400 focus:ring-1 focus:ring-violet-200 transition-all bg-[var(--card-bg)] text-[var(--foreground)]",onKeyDown:a=>{"Enter"===a.key&&aC()}}),ar&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ar}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 mt-1",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>{ae("choice"),as(null)},children:"Back"}),(0,b.jsx)("button",{type:"button",disabled:0===af.trim().length||ah,className:"px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aC(),children:ah?"Fetching...":"Fetch"})]})]}),"file"===ad&&!aj&&(0,b.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-3",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Select a .agent.json file to import"}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>at.current?.click(),children:[(0,b.jsx)(p.Upload,{size:13}),"Choose File"]}),ar&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ar}),(0,b.jsx)("button",{type:"button",className:"text-xs text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] mt-1",onClick:()=>{ae("choice"),as(null)},children:"Back"})]}),aj&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"overflow-y-auto flex-1",children:[aj.exportedAt&&(0,b.jsx)("div",{className:"px-5 py-3 border-b border-[var(--border)] bg-[var(--secondary)]",children:(0,b.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Exported ",new Date(aj.exportedAt).toLocaleDateString()," · ",aj.agents.length," agents",v(aj).length>0?`, ${v(aj).length} projects`:""]})}),(0,b.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,b.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,b.jsxs)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:[aj.agents.length," agent",1===aj.agents.length?"":"s"," found"]}),(0,b.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{al.size===aj.agents.length?am(new Set):am(new Set(aj.agents.map(a=>a.id)))},children:al.size===aj.agents.length?"Deselect all":"Select all"})]}),aj.agents.map(c=>{let d=al.has(c.id),e=a.find(a=>a.id===c.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2.5 text-sm transition-colors ${d?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{am(a=>{let b=new Set(a);return b.has(c.id)?b.delete(c.id):b.add(c.id),b})},children:[(0,b.jsx)(aH,{checked:d}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(c.id,24,c.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium",children:c.name}),(0,b.jsxs)("div",{className:"truncate text-[10px] text-[var(--app-shell-soft-text)]",children:[c.provider,c.model?` \xb7 ${c.model}`:""]})]}),e&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-amber-50 text-amber-600 flex-shrink-0",children:"update"}),!e&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-green-50 text-green-600 flex-shrink-0",children:"new"}),c.self&&(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex-shrink-0",children:"+ self.md"})]},c.id)})]}),v(aj).length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"px-5 pt-3 pb-1",children:(0,b.jsx)("p",{className:"text-[11px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Projects"})}),v(aj).map(a=>{let c=an.has(a.name);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${c?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ao(b=>{let c=new Set(b);return c.has(a.name)?c.delete(a.name):c.add(a.name),c})},children:[(0,b.jsx)(aH,{checked:c}),(0,b.jsx)(q.Users,{size:14,className:"text-[var(--muted-foreground)] flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:a.name}),(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:[a.agentIds.length," agents"]})]},a.name)})]})]}),ar&&(0,b.jsx)("div",{className:"px-5 py-2",children:(0,b.jsx)("p",{className:"text-xs text-red-500",children:ar})}),(0,b.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,b.jsxs)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:[al.size," ",1===al.size?"agent":"agents",an.size>0?`, ${an.size} ${1===an.size?"project":"projects"}`:""]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>{ak(null),am(new Set),ao(new Set)},children:"Back"}),(0,b.jsxs)("button",{type:"button",disabled:0===al.size||ap,className:"inline-flex items-center gap-1.5 px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void aD(),children:[(0,b.jsx)(p.Upload,{size:12}),ap?"Importing...":`Import ${al.size} agent${1===al.size?"":"s"}`]})]})]})]})]})})]})}a.s(["default",()=>x],665045)}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_app_agents_page_tsx_2a02508d._.js.map