@mndrk/agx 2.1.0 → 2.3.0

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 (457) hide show
  1. package/README.md +70 -105
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +5 -5
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +5 -5
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +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/settings/page_client-reference-manifest.js +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__039h7r.._.js +18 -0
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0lno3km._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0fl7_-o._.js → [root-of-the-server]__0nqqk26._.js} +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0j9m72.._.js → [root-of-the-server]__0tqn-o5._.js} +2 -2
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~nm7b6._.js +3 -0
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_064h43p._.js → _05xj_bp._.js} +2 -2
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0nvzo3y._.js → apps_local_04dh2yh._.js} +2 -2
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
  296. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
  299. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
  300. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_agents_[agentId]_page_tsx_0wm~_~t._.js +1 -1
  302. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
  303. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
  305. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
  307. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
  310. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  311. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  313. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  314. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0e307b-0c2jbx.js → 0-cets4_axpvm.js} +1 -1
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{119v0-idpg-cv.js → 08bdyjcnamzep.js} +1 -1
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kn66yvx08813.css +1 -0
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{07646a0h94826.js → 0l89kxqcf86on.js} +2 -2
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0tt1oh112yv-l.js → 0wopevh0s7.8c.js} +1 -1
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zt2o58c5gytn.js +16 -0
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0stvi5btlxl4m.js → 0~mcfx41q4znh.js} +3 -3
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-_ukhpeg429c.js → 16h9208kl5~xa.js} +1 -1
  357. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
  358. package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
  359. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
  360. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
  361. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
  362. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
  363. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
  364. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
  365. package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
  366. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  367. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
  368. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
  369. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
  370. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
  371. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
  372. package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
  373. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
  374. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
  375. package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
  376. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
  377. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +8 -39
  378. package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
  379. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
  380. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
  381. package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
  382. package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +9 -3
  383. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +65 -30
  384. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerRunLog.tsx +190 -0
  385. package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
  386. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
  387. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +38 -34
  388. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
  389. package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
  390. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
  391. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
  392. package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
  393. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
  394. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
  395. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +121 -20
  396. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
  397. package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
  398. package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
  399. package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
  400. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
  401. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
  402. package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
  403. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
  404. package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
  405. package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
  406. package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
  407. package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
  408. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
  409. package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
  410. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  411. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
  412. package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
  413. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
  414. package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
  415. package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
  416. package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +71 -2
  417. package/cloud-runtime/standalone/apps/local/worker/index.js +56 -4
  418. package/lib/cli/onboarding.js +8 -5
  419. package/package.json +1 -1
  420. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +0 -3
  421. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +0 -3
  422. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +0 -18
  423. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +0 -3
  424. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
  425. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
  426. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
  427. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
  428. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
  429. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
  430. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
  431. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
  432. package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +0 -16
  433. package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
  434. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +0 -1
  435. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +0 -1
  436. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +0 -1
  437. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
  438. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +0 -37
  439. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
  440. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
  441. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
  442. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
  443. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +0 -1
  444. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
  445. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +0 -1
  446. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
  447. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
  448. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +0 -1
  449. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
  450. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
  451. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
  452. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +0 -6
  453. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
  454. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
  455. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_buildManifest.js +0 -0
  456. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_clientMiddlewareManifest.js +0 -0
  457. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[665045,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),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"];a.s(["default",0,function(){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.title?{title:b.title}:{},...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,title:N.title||"",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,title:a.title||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"}`]})]})]})]})]})})]})}],665045)}];
1
+ module.exports=[665045,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),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"];a.s(["default",0,function(){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"}`]})]})]})]})]})})]})}],665045)}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_app_agents_page_tsx_078reb_._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[657613,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(285320),f=a.i(970393),g=a.i(508869),h=a.i(523321),i=a.i(166621),j=a.i(971382);let k=(0,a.i(831709).default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var l=a.i(552605),m=a.i(349692),n=a.i(737313),o=a.i(542341),p=a.i(489461),q=a.i(985339),r=a.i(824179),s=a.i(529889);function t({projectId:a}){let{isTouchLayout:e}=(0,s.useInputCapabilities)(),f=(0,d.useRouter)(),g=(0,d.usePathname)(),h=(0,c.useRef)(null),i=(0,c.useRef)(null),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)([]),[y,z]=(0,c.useState)(0),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(0),[I,J]=(0,c.useState)(new Set),K=u.trim(),L=(0,c.useMemo)(()=>w.map(a=>({...a,visibleResults:I.has(a.id)?a.results:a.results.slice(0,3),hiddenCount:Math.max(0,a.results.length-3)})),[I,w]),M=(0,c.useMemo)(()=>L.flatMap(a=>a.visibleResults),[L]),N=(0,c.useMemo)(()=>M.map(a=>`${a.kind}:${a.id}`),[M]),O=(0,c.useCallback)(()=>{v(""),x([]),z(0),D(null),B(!1),H(0)},[]),P=(0,c.useCallback)(a=>{O(),F(!1),f.push(a.href)},[O,f]);(0,c.useEffect)(()=>{O(),F(!1),J(new Set)},[O,g]),(0,c.useEffect)(()=>{let a=a=>{h.current?.contains(a.target)||F(!1)};return window.addEventListener("pointerdown",a),()=>window.removeEventListener("pointerdown",a)},[]),(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()&&(a.preventDefault(),i.current?.focus(),i.current?.select())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]),(0,c.useEffect)(()=>{E&&H(0)},[E,w]),(0,c.useEffect)(()=>{if(!K||K.length<2){x([]),z(0),D(null),B(!1),J(new Set);return}let b=!1;B(!0);let c=window.setTimeout(()=>{(async()=>{try{let c=new URLSearchParams({q:K}),d=await fetch(`/api/projects/${encodeURIComponent(a)}/search?${c.toString()}`,{cache:"no-store"}),e=await d.json().catch(()=>null);if(b)return;if(!d.ok){let a=e&&"object"==typeof e&&"error"in e?String(e.error):"Search failed";x([]),z(0),D(a);return}x(Array.isArray(e.sections)?e.sections:[]),z("number"==typeof e.total?e.total:0),D(null),J(new Set)}catch(a){if(b)return;console.error("Project search failed",a),x([]),z(0),D("Search failed")}finally{b||B(!1)}})()},220);return()=>{b=!0,window.clearTimeout(c)}},[K,a]);let Q=E&&(K.length>0||A||null!==C),R=M.length>0?M[Math.max(0,Math.min(G,M.length-1))]:null,S=(0,c.useCallback)(a=>{J(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]);return(0,b.jsxs)("div",{ref:h,className:"relative w-full max-w-xl",children:[(0,b.jsxs)("div",{className:"group/search relative",children:[(0,b.jsx)(o.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:1.8}),(0,b.jsx)("input",{ref:i,type:"text",value:u,onFocus:()=>F(!0),onChange:a=>{v(a.target.value),F(!0)},onKeyDown:a=>{if("ArrowDown"===a.key&&M.length>0){a.preventDefault(),H(a=>(a+1)%M.length);return}if("ArrowUp"===a.key&&M.length>0){a.preventDefault(),H(a=>(a-1+M.length)%M.length);return}if("Enter"===a.key&&R){a.preventDefault(),P(R);return}"Escape"===a.key&&(K?O():(F(!1),i.current?.blur()))},placeholder:"Search objectives, tickets, tasks, teams, agents, and chat…",className:"h-8 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-xs font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),K?(0,b.jsxs)("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:A?"…":y}),(0,b.jsx)("button",{type:"button",onClick:()=>{O(),i.current?.focus()},className:"inline-flex h-5 w-5 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]","aria-label":"Clear search",children:(0,b.jsx)(r.X,{className:"h-3.5 w-3.5"})})]}):e?null:(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),Q?(0,b.jsx)("div",{className:"absolute left-0 right-0 top-[calc(100%+0.5rem)] z-50 overflow-hidden rounded-2xl border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] shadow-2xl shadow-black/20",children:(0,b.jsxs)("div",{className:"max-h-[28rem] overflow-y-auto p-2",children:[K.length<2?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"Keep typing to search across project entities."}):null,A?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"Searching this project…"]}):null,!A&&C?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-rose-500",children:C}):null,A||C||!(K.length>=2)||0!==w.length?null:(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"No matches in this project."}),!A&&!C&&L.map(a=>(0,b.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 pb-1 pt-2",children:[(0,b.jsxs)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:[a.label,(0,b.jsx)("span",{className:"ml-1.5 text-[9px] text-[var(--muted-foreground)]",children:a.results.length})]}),a.results.length>3?(0,b.jsx)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>S(a.id),className:"text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:I.has(a.id)?"Collapse":`Show ${a.hiddenCount} more`}):null]}),(0,b.jsx)("div",{className:"space-y-1",children:a.visibleResults.map(a=>{let c,d,e=`${a.kind}:${a.id}`,f=N.findIndex(a=>a===e),g=f===G,h=function(a){switch(a){case"objective":return p.Target;case"linear_issue":return l.FileText;case"scheduled_task":return k;case"team":return q.Users;case"agent":return j.Bot;case"chat_thread":case"chat_message":return n.MessageSquare;default:return o.Search}}(a.kind);return(0,b.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onMouseEnter:()=>H(f),onClick:()=>P(a),className:`flex w-full items-start gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${g?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("span",{className:"mt-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)]",children:(0,b.jsx)(h,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.title}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--app-shell-subtle)] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--app-shell-soft-text)]",children:a.label})]}),a.context?(0,b.jsx)("span",{className:"mt-0.5 block truncate text-xs text-[var(--muted-foreground)]",children:a.context}):null,a.description?(0,b.jsx)("span",{className:"mt-1 block text-xs leading-5 text-[var(--muted-foreground)]",children:(c=a.description.split(/(<\/?mark>)/g),d=!1,c.map((a,c)=>"<mark>"===a?(d=!0,null):"</mark>"===a?(d=!1,null):a?d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5 text-inherit",children:a},`mark-${c}`):(0,b.jsx)("span",{children:a},`text-${c}`):null))}):null]})]},e)})})]},a.id))]})}):null]})}var u=a.i(550158),v=a.i(830284),w=a.i(111013),x=a.i(455106),y=a.i(427411);function z({children:a,params:j}){let{slug:k}=(0,c.use)(j),{isTouchLayout:l}=(0,s.useInputCapabilities)(),m=(0,d.useRouter)(),n=(0,d.usePathname)(),{projects:o,isLoading:p,createProject:q,updateProject:r,deleteProject:A,addAgent:B,removeAgent:C}=(0,v.useProjectsWithAgents)(),{threads:D,isLoading:E,isCreating:F,deletingThreadId:G,renamingThreadId:H,isRestoringActiveThread:I,createThread:J,renameThread:K,deleteThread:L}=(0,w.useThreadState)(),[M,N]=(0,c.useState)([]),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(368),[S,T]=(0,c.useState)(()=>"light");(0,c.useEffect)(()=>{P((0,x.loadWorkspaceSidebarVisible)()),R((0,y.loadWorkspaceWidth)()||368)},[]),(0,c.useEffect)(()=>{},[S]),(0,c.useEffect)(()=>{fetch("/api/participants").then(a=>a.json()).then(a=>N(Array.isArray(a)?a:[])).catch(()=>N([]))},[]);let U=(0,c.useMemo)(()=>o.find(a=>a.slug===k)??null,[o,k]),V=(0,c.useMemo)(()=>{let a=n.match(/\/projects\/[^/]+\/thread\/([^/]+)/);return a?.[1]?decodeURIComponent(a[1]):U?.thread_ids[0]??null},[U?.thread_ids,n]),W=(0,c.useMemo)(()=>n.includes("/linear")?"linear":n.includes("/automations")?"automations":n.includes("/thread/")?"thread":n.includes("/knowledge")?"knowledge":n.includes("/objectives")?"objectives":n.includes("/teams")?"teams":n.includes("/folders")?"folders":n.includes("/env-vars")?"env-vars":n.includes("/terminal")?"terminal":n.includes("/settings")?"settings":"home",[n]),X=()=>{let a=!O;P(a),(0,x.persistWorkspaceSidebarVisible)(a)},Y=(0,c.useCallback)(a=>{R(a),(0,y.persistWorkspaceWidth)(a)},[]);return p?(0,b.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,b.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):U?(0,b.jsxs)("div",{className:"flex h-dvh min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,b.jsx)(u.WorkspaceSidebar,{threads:D,participants:M,activeThreadId:V,isLoading:E,isRestoringActiveThread:I,isCreating:F,deletingThreadId:G,renamingThreadId:H,onSelectThread:a=>m.push(`/projects/${k}/thread/${encodeURIComponent(a)}`),onCreateThread:J,onRenameThread:K,onDeleteThread:L,visible:O,onToggle:X,width:Q,onWidthChange:Y,projects:o,onCreateProject:q,onUpdateProject:r,onDeleteProject:A,onAddAgentToProject:B,onRemoveAgentFromProject:C,activeProjectId:U.id,activeProjectView:W,onUpdateParticipant:async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Failed to update agent");let c=await b.json();N(a=>a.map(a=>a.id===c.id?c:a))},onSelectProject:a=>{let b=o.find(b=>b.id===a);b&&m.push(`/projects/${b.slug}`)}}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--background)] shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 flex-shrink-0",children:[!O&&(0,b.jsx)("button",{type:"button",onClick:X,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(f.PanelLeftOpen,{className:"h-4 w-4"})}),n!==`/projects/${k}`&&(0,b.jsx)("button",{type:"button",onClick:()=>m.back(),className:"p-1 -ml-1 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors",children:(0,b.jsx)(e.ArrowLeft,{className:"w-4 h-4"})}),(0,b.jsx)("button",{type:"button",onClick:()=>m.push(`/projects/${k}`),className:`text-xs transition-colors ${"home"===W?"text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:U.name}),"home"!==W&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("button",{type:"button",onClick:()=>m.push(`/projects/${k}/${"thread"===W?"":W}`),className:"text-xs text-[var(--foreground)] hover:text-[var(--muted-foreground)] transition-colors",children:{objectives:"Objectives",teams:"Teams",folders:"Folders","env-vars":"Environment Variables",linear:"Linear",automations:"Scheduled Tasks",thread:"Chat",knowledge:"Knowledge",terminal:"Terminal",settings:"Settings"}[W]??W}),(0,b.jsx)("span",{id:"topbar-breadcrumb",className:"contents"})]})]}),(0,b.jsx)("div",{className:"flex-1 flex justify-center min-w-0 px-4",children:(0,b.jsx)(t,{projectId:U.id})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,b.jsx)(i.StatusIndicator,{}),(0,b.jsx)("button",{type:"button",onClick:()=>T(a=>"dark"===a?"light":"dark"),"aria-label":"dark"===S?"Switch to light theme":"Switch to dark theme",title:"dark"===S?"Switch to light theme":"Switch to dark theme",className:`inline-flex items-center justify-center rounded-lg text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] ${l?"h-9 w-9":"h-7 w-7"}`,children:"dark"===S?(0,b.jsx)(g.Sun,{className:l?"h-4 w-4":"h-3.5 w-3.5"}):(0,b.jsx)(h.Moon,{className:l?"h-4 w-4":"h-3.5 w-3.5"})})]})]}),a]})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,b.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,b.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",k,"” does not exist or you do not have access to it."]}),(0,b.jsx)("button",{onClick:()=>m.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}a.s(["default",0,function({children:a,params:d}){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,b.jsx)(z,{params:d,children:a})})}],657613)}];
1
+ module.exports=[657613,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(285320),f=a.i(970393),g=a.i(508869),h=a.i(523321),i=a.i(166621),j=a.i(971382);let k=(0,a.i(831709).default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var l=a.i(552605),m=a.i(349692),n=a.i(737313),o=a.i(542341),p=a.i(489461),q=a.i(985339),r=a.i(824179),s=a.i(529889);function t({projectId:a}){let{isTouchLayout:e}=(0,s.useInputCapabilities)(),f=(0,d.useRouter)(),g=(0,d.usePathname)(),h=(0,c.useRef)(null),i=(0,c.useRef)(null),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)([]),[y,z]=(0,c.useState)(0),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(0),[I,J]=(0,c.useState)(new Set),K=u.trim(),L=(0,c.useMemo)(()=>w.map(a=>({...a,visibleResults:I.has(a.id)?a.results:a.results.slice(0,3),hiddenCount:Math.max(0,a.results.length-3)})),[I,w]),M=(0,c.useMemo)(()=>L.flatMap(a=>a.visibleResults),[L]),N=(0,c.useMemo)(()=>M.map(a=>`${a.kind}:${a.id}`),[M]),O=(0,c.useCallback)(()=>{v(""),x([]),z(0),D(null),B(!1),H(0)},[]),P=(0,c.useCallback)(a=>{O(),F(!1),f.push(a.href)},[O,f]);(0,c.useEffect)(()=>{O(),F(!1),J(new Set)},[O,g]),(0,c.useEffect)(()=>{let a=a=>{h.current?.contains(a.target)||F(!1)};return window.addEventListener("pointerdown",a),()=>window.removeEventListener("pointerdown",a)},[]),(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()&&(a.preventDefault(),i.current?.focus(),i.current?.select())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]),(0,c.useEffect)(()=>{E&&H(0)},[E,w]),(0,c.useEffect)(()=>{if(!K||K.length<2){x([]),z(0),D(null),B(!1),J(new Set);return}let b=!1;B(!0);let c=window.setTimeout(()=>{(async()=>{try{let c=new URLSearchParams({q:K}),d=await fetch(`/api/projects/${encodeURIComponent(a)}/search?${c.toString()}`,{cache:"no-store"}),e=await d.json().catch(()=>null);if(b)return;if(!d.ok){let a=e&&"object"==typeof e&&"error"in e?String(e.error):"Search failed";x([]),z(0),D(a);return}x(Array.isArray(e.sections)?e.sections:[]),z("number"==typeof e.total?e.total:0),D(null),J(new Set)}catch(a){if(b)return;console.error("Project search failed",a),x([]),z(0),D("Search failed")}finally{b||B(!1)}})()},220);return()=>{b=!0,window.clearTimeout(c)}},[K,a]);let Q=E&&(K.length>0||A||null!==C),R=M.length>0?M[Math.max(0,Math.min(G,M.length-1))]:null,S=(0,c.useCallback)(a=>{J(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]);return(0,b.jsxs)("div",{ref:h,className:"relative w-full max-w-xl",children:[(0,b.jsxs)("div",{className:"group/search relative",children:[(0,b.jsx)(o.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:1.8}),(0,b.jsx)("input",{ref:i,type:"text",value:u,onFocus:()=>F(!0),onChange:a=>{v(a.target.value),F(!0)},onKeyDown:a=>{if("ArrowDown"===a.key&&M.length>0){a.preventDefault(),H(a=>(a+1)%M.length);return}if("ArrowUp"===a.key&&M.length>0){a.preventDefault(),H(a=>(a-1+M.length)%M.length);return}if("Enter"===a.key&&R){a.preventDefault(),P(R);return}"Escape"===a.key&&(K?O():(F(!1),i.current?.blur()))},placeholder:"Search objectives, tickets, tasks, teams, agents, and chat…",className:"h-8 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-xs font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),K?(0,b.jsxs)("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:A?"…":y}),(0,b.jsx)("button",{type:"button",onClick:()=>{O(),i.current?.focus()},className:"inline-flex h-5 w-5 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]","aria-label":"Clear search",children:(0,b.jsx)(r.X,{className:"h-3.5 w-3.5"})})]}):e?null:(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),Q?(0,b.jsx)("div",{className:"absolute left-0 right-0 top-[calc(100%+0.5rem)] z-50 overflow-hidden rounded-2xl border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] shadow-2xl shadow-black/20",children:(0,b.jsxs)("div",{className:"max-h-[28rem] overflow-y-auto p-2",children:[K.length<2?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"Keep typing to search across project entities."}):null,A?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"Searching this project…"]}):null,!A&&C?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-rose-500",children:C}):null,A||C||!(K.length>=2)||0!==w.length?null:(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"No matches in this project."}),!A&&!C&&L.map(a=>(0,b.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 pb-1 pt-2",children:[(0,b.jsxs)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:[a.label,(0,b.jsx)("span",{className:"ml-1.5 text-[9px] text-[var(--muted-foreground)]",children:a.results.length})]}),a.results.length>3?(0,b.jsx)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>S(a.id),className:"text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:I.has(a.id)?"Collapse":`Show ${a.hiddenCount} more`}):null]}),(0,b.jsx)("div",{className:"space-y-1",children:a.visibleResults.map(a=>{let c,d,e=`${a.kind}:${a.id}`,f=N.findIndex(a=>a===e),g=f===G,h=function(a){switch(a){case"objective":return p.Target;case"linear_issue":return l.FileText;case"scheduled_task":return k;case"team":return q.Users;case"agent":return j.Bot;case"chat_thread":case"chat_message":return n.MessageSquare;default:return o.Search}}(a.kind);return(0,b.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onMouseEnter:()=>H(f),onClick:()=>P(a),className:`flex w-full items-start gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${g?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("span",{className:"mt-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)]",children:(0,b.jsx)(h,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.title}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--app-shell-subtle)] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--app-shell-soft-text)]",children:a.label})]}),a.context?(0,b.jsx)("span",{className:"mt-0.5 block truncate text-xs text-[var(--muted-foreground)]",children:a.context}):null,a.description?(0,b.jsx)("span",{className:"mt-1 block text-xs leading-5 text-[var(--muted-foreground)]",children:(c=a.description.split(/(<\/?mark>)/g),d=!1,c.map((a,c)=>"<mark>"===a?(d=!0,null):"</mark>"===a?(d=!1,null):a?d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5 text-inherit",children:a},`mark-${c}`):(0,b.jsx)("span",{children:a},`text-${c}`):null))}):null]})]},e)})})]},a.id))]})}):null]})}var u=a.i(550158),v=a.i(830284),w=a.i(111013),x=a.i(455106),y=a.i(427411);function z({children:a,params:j}){let{slug:k}=(0,c.use)(j),{isTouchLayout:l}=(0,s.useInputCapabilities)(),m=(0,d.useRouter)(),n=(0,d.usePathname)(),{projects:o,isLoading:p,createProject:q,updateProject:r,deleteProject:A,addAgent:B,removeAgent:C}=(0,v.useProjectsWithAgents)(),{threads:D,isLoading:E,isCreating:F,deletingThreadId:G,renamingThreadId:H,isRestoringActiveThread:I,createThread:J,renameThread:K,deleteThread:L}=(0,w.useThreadState)(),[M,N]=(0,c.useState)([]),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(368),[S,T]=(0,c.useState)(()=>"light");(0,c.useEffect)(()=>{P((0,x.loadWorkspaceSidebarVisible)()),R((0,y.loadWorkspaceWidth)()||368)},[]),(0,c.useEffect)(()=>{},[S]),(0,c.useEffect)(()=>{fetch("/api/participants").then(a=>a.json()).then(a=>N(Array.isArray(a)?a:[])).catch(()=>N([]))},[]);let U=(0,c.useMemo)(()=>o.find(a=>a.slug===k)??null,[o,k]),V=(0,c.useMemo)(()=>{let a=n.match(/\/projects\/[^/]+\/thread\/([^/]+)/);return a?.[1]?decodeURIComponent(a[1]):U?.thread_ids[0]??null},[U?.thread_ids,n]),W=(0,c.useMemo)(()=>n.includes("/linear")?"linear":n.includes("/automations")?"automations":n.includes("/thread/")?"thread":n.includes("/knowledge")?"knowledge":n.includes("/objectives")?"objectives":n.includes("/teams")?"teams":n.includes("/folders")?"folders":n.includes("/env-vars")?"env-vars":n.includes("/terminal")?"terminal":n.includes("/settings")?"settings":"home",[n]),X=()=>{let a=!O;P(a),(0,x.persistWorkspaceSidebarVisible)(a)},Y=(0,c.useCallback)(a=>{R(a),(0,y.persistWorkspaceWidth)(a)},[]);return p?(0,b.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,b.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):U?(0,b.jsxs)("div",{className:"flex h-dvh min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,b.jsx)(u.WorkspaceSidebar,{threads:D,participants:M,activeThreadId:V,isLoading:E,isRestoringActiveThread:I,isCreating:F,deletingThreadId:G,renamingThreadId:H,onSelectThread:a=>m.push(`/projects/${k}/thread/${encodeURIComponent(a)}`),onCreateThread:J,onRenameThread:K,onDeleteThread:L,visible:O,onToggle:X,width:Q,onWidthChange:Y,projects:o,onCreateProject:q,onUpdateProject:r,onDeleteProject:A,onAddAgentToProject:B,onRemoveAgentFromProject:C,activeProjectId:U.id,activeProjectView:W,onUpdateParticipant:async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Failed to update agent");let c=await b.json();N(a=>a.map(a=>a.id===c.id?c:a))},onSelectProject:a=>{let b=o.find(b=>b.id===a);b&&m.push(`/projects/${b.slug}`)}}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"desktop-titlebar flex items-center px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--background)] shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 flex-shrink-0",children:[!O&&(0,b.jsx)("button",{type:"button",onClick:X,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(f.PanelLeftOpen,{className:"h-4 w-4"})}),n!==`/projects/${k}`&&(0,b.jsx)("button",{type:"button",onClick:()=>m.back(),className:"p-1 -ml-1 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors",children:(0,b.jsx)(e.ArrowLeft,{className:"w-4 h-4"})}),(0,b.jsx)("button",{type:"button",onClick:()=>m.push(`/projects/${k}`),className:`text-xs transition-colors ${"home"===W?"text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:U.name}),"home"!==W&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("button",{type:"button",onClick:()=>m.push(`/projects/${k}/${"thread"===W?"":W}`),className:"text-xs text-[var(--foreground)] hover:text-[var(--muted-foreground)] transition-colors",children:{objectives:"Objectives",teams:"Teams",folders:"Folders","env-vars":"Environment Variables",linear:"Linear",automations:"Scheduled Tasks",thread:"Chat",knowledge:"Knowledge",terminal:"Terminal",settings:"Settings"}[W]??W}),(0,b.jsx)("span",{id:"topbar-breadcrumb",className:"contents"})]})]}),(0,b.jsx)("div",{className:"flex-1 flex justify-center min-w-0 px-4",children:(0,b.jsx)(t,{projectId:U.id})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,b.jsx)(i.StatusIndicator,{}),(0,b.jsx)("button",{type:"button",onClick:()=>T(a=>"dark"===a?"light":"dark"),"aria-label":"dark"===S?"Switch to light theme":"Switch to dark theme",title:"dark"===S?"Switch to light theme":"Switch to dark theme",className:`inline-flex items-center justify-center rounded-lg text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] ${l?"h-9 w-9":"h-7 w-7"}`,children:"dark"===S?(0,b.jsx)(g.Sun,{className:l?"h-4 w-4":"h-3.5 w-3.5"}):(0,b.jsx)(h.Moon,{className:l?"h-4 w-4":"h-3.5 w-3.5"})})]})]}),a]})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,b.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,b.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",k,"” does not exist or you do not have access to it."]}),(0,b.jsx)("button",{onClick:()=>m.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}a.s(["default",0,function({children:a,params:d}){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,b.jsx)(z,{params:d,children:a})})}],657613)}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_layout_tsx_0aaa3~t._.js.map