@mndrk/agx 2.2.0 → 2.3.1

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 (433) 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 +4 -4
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +4 -4
  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 +2 -2
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  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_client-reference-manifest.js +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  291. 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
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
  295. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
  297. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
  299. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  300. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  301. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  302. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  303. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
  307. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
  309. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
  310. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
  311. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0_cjth28_11b2.js → 08bdyjcnamzep.js} +1 -1
  312. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
  313. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
  314. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
  315. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jq0t4zip38wt.js → 0wopevh0s7.8c.js} +1 -1
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00e1ihnb6ap3t.js → 0zt2o58c5gytn.js} +2 -2
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0xu_doej_wc-3.js → 0~mcfx41q4znh.js} +3 -3
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16h9208kl5~xa.js +16 -0
  343. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
  344. package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
  345. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
  346. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
  347. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
  348. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
  349. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
  350. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
  351. package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
  352. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
  353. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
  354. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
  355. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
  356. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
  357. package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
  358. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
  359. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
  360. package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
  361. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
  362. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +5 -37
  363. package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
  364. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
  365. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
  366. package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
  367. package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
  368. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
  369. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
  370. package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
  371. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
  372. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
  373. package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
  374. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
  375. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
  376. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +4 -4
  377. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
  378. package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
  379. package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
  380. package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
  381. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
  382. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
  383. package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
  384. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
  385. package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
  386. package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
  387. package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
  388. package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
  389. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
  390. package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
  391. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  392. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
  393. package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
  394. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
  395. package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
  396. package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
  397. package/cloud-runtime/standalone/apps/local/worker/index.js +56 -5
  398. package/lib/cli/onboarding.js +8 -5
  399. package/package.json +1 -1
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_067eb..._.js +0 -3
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
  407. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-wlbe.ripd2w.css +0 -1
  408. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
  409. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
  410. package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
  411. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e6rxcxy.l5c8.js +0 -1
  412. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ime4btrg-g4l.js +0 -1
  413. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
  414. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jglardpw~5uc.js +0 -37
  415. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
  416. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ng6wy4ak35jg.js +0 -1
  417. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0n~jhoq~op4e5.js +0 -16
  418. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
  419. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
  420. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
  421. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
  422. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
  423. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
  424. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
  425. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
  426. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
  427. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16fyhcmwlw3th.js +0 -6
  428. package/cloud-runtime/standalone/apps/local/.next/static/chunks/18e8w~~mvoh5o.js +0 -1
  429. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
  430. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
  431. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_buildManifest.js +0 -0
  432. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_clientMiddlewareManifest.js +0 -0
  433. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[693896,a=>{"use strict";let b=(0,a.i(831709).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],693896)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Team Lead",title:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Fullstack Engineer",title:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Backend Engineer",title:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Frontend Engineer",title:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Data Engineer",title:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"ML Engineer",title:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"DevOps Engineer",title:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Security Engineer",title:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"UI Designer",title:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"QA Engineer",title:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"SRE",title:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Pen Tester",title:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Product Manager",title:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"UX Designer",title:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Technical Writer",title:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Growth Marketer",title:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Analyst",title:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Content Writer",title:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Researcher",title:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Marketing Strategist",title:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Copywriter",title:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Support Engineer",title:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Support Lead",title:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"DevRel Engineer",title:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Community Manager",title:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Ops Engineer",title:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Project Manager",title:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Solutions Architect",title:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Mobile Engineer",title:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"megaphone",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",0,function(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]},"listAgentPresets",0,function(){return m.map(f)},"listTeamTemplates",0,function(){return o.map(h)}])},866510,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(319405),f=a.i(766412),g=a.i(830284),h=a.i(985339),i=a.i(349692),j=a.i(627421),k=a.i(693896);function l(a,b){let c=(0,e.getAgentPresetBindings)(b).map(a=>`${a.repo}/${a.skillId}`),d=new Set(a);return{overlap:c.filter(a=>d.has(a)),missing:c.filter(a=>!d.has(a))}}a.s(["default",0,function({params:a}){let{slug:m}=(0,c.use)(a),n=(0,d.useRouter)(),{projects:o}=(0,g.useProjectsWithAgents)(),p=o.find(a=>a.slug===m),[q,r]=(0,c.useState)([]),[s,t]=(0,c.useState)(!0),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(null),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)({}),I=(0,c.useMemo)(()=>(0,e.listTeamTemplates)(),[]),J=(0,c.useMemo)(()=>(0,e.listAgentPresets)(),[]),K=(0,c.useMemo)(()=>I.find(a=>a.id===w)??null,[I,w]),L=(0,c.useMemo)(()=>K?.variants&&y?K.variants.find(a=>a.id===y)??null:null,[K,y]),M=(0,c.useMemo)(()=>L?L.agents:K?K.agents:[],[K,L]),N=(0,c.useCallback)(async()=>{if(p){try{let a=await fetch(`/api/projects/${p.id}/agents/unassigned`);if(a.ok){let b=await a.json();r(b.agents??[])}}catch{}t(!1)}},[p]);(0,c.useEffect)(()=>{N()},[N]);let O=(0,c.useMemo)(()=>I.map(a=>({id:a.id,label:a.name,description:a.description,meta:a.variants?`${a.variants.length} specializations`:`${a.agents.length} roles`})),[I]),P=(0,c.useMemo)(()=>K?.variants?K.variants.map(a=>({id:a.id,label:a.name,description:a.description,meta:`${a.agents.length} roles`})):[],[K]),Q=(0,c.useMemo)(()=>[{id:"__auto__",label:"Auto",description:"Best match based on skills"},...(M.length>0?M:J).map(a=>({id:a.id,label:a.name,meta:a.skillProfileId}))],[M,J]),R=(0,c.useMemo)(()=>0===M.length?q.map(a=>({agent:a,matchedPreset:null,overlap:[],missing:[]})):q.map(a=>{let b=G[a.id];if(b&&"__auto__"!==b){let c=M.find(a=>a.id===b)??J.find(a=>a.id===b)??null;if(c){let{overlap:b,missing:d}=l(a.skills.map(a=>a.file),c);return{agent:a,matchedPreset:c,overlap:b,missing:d}}}let{preset:c,overlap:d,missing:e}=function(a,b){let c=a.skills.map(a=>a.file),d={preset:null,overlap:[],missing:[]},e=-1;for(let a of b){let{overlap:b,missing:f}=l(c,a);b.length>e&&(e=b.length,d={preset:a,overlap:b,missing:f})}return d}(a,M);return{agent:a,matchedPreset:c,overlap:d,missing:e}}),[q,M,G,J]);async function S(){if(u.trim()&&p){D(!0),F(null);try{let a=await fetch(`/api/projects/${p.id}/teams`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.trim()})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to create team");let{team:b}=await a.json();for(let a of R){let c=a.matchedPreset?.id??"member";await fetch(`/api/projects/${p.id}/teams/${b.id}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a.agent.id,roleKey:c})})}if(A){for(let a of R)if(a.missing.length>0&&a.matchedPreset){let b=(0,e.getAgentPresetBindings)(a.matchedPreset),c=new Set(a.missing),d=b.filter(a=>c.has(`${a.repo}/${a.skillId}`)).map(a=>({file:`${a.repo}/${a.skillId}`,...a.condition?{condition:a.condition}:{}}));d.length>0&&await fetch(`/api/agents/${a.agent.id}/skills`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({skills:[...a.agent.skills.map(a=>({file:a.file})),...d]})})}}n.push(`/projects/${m}/teams`)}catch(a){F(a instanceof Error?a.message:"Failed to adopt agents"),D(!1)}}}if(!p||s)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."});let T=!!K?.variants;return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto px-6 py-8 space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-lg font-bold",children:"Adopt Unassigned Agents"}),(0,b.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["Group ",q.length," unassigned agent",1!==q.length?"s":""," into a team."]})]}),E&&(0,b.jsx)("div",{className:"p-3 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:E}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Team name"}),(0,b.jsx)("input",{value:u,onChange:a=>v(a.target.value),placeholder:"e.g. Core Engineering",className:"input w-full text-sm",disabled:C,autoFocus:!0})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Template (optional — for role matching)"}),(0,b.jsx)(f.default,{options:O,value:w,onChange:function(a){x(a),z(null),H({});let b=I.find(b=>b.id===a);b&&!u&&v(b.name)},placeholder:"Select a template...",disabled:C})]}),T&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Specialization"}),(0,b.jsx)(f.default,{options:P,value:y,onChange:function(a){z(a),H({})},placeholder:"Select a specialization...",disabled:C})]}),M.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-2",children:"Role matching"}),(0,b.jsx)("div",{className:"space-y-1.5",children:R.map(a=>(0,b.jsxs)("div",{className:"p-2.5 rounded-xl",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)(h.Users,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-medium truncate",children:a.agent.name})]}),(0,b.jsx)("div",{className:"flex-shrink-0 w-48",children:(0,b.jsx)(f.default,{options:Q,value:G[a.agent.id]??a.matchedPreset?.id??"__auto__",onChange:b=>H(c=>({...c,[a.agent.id]:"__auto__"===b?null:b})),placeholder:"Select role...",disabled:C})})]}),a.matchedPreset&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:[a.overlap.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[(0,b.jsx)(j.Check,{className:"w-2.5 h-2.5"}),a.split("/").pop()]},a)),a.missing.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-amber-500/10 text-amber-400 border border-amber-500/20",children:[(0,b.jsx)(k.AlertCircle,{className:"w-2.5 h-2.5"}),a.split("/").pop()]},a))]})]},a.agent.id))})]}),R.some(a=>a.missing.length>0)&&(0,b.jsxs)("label",{className:"flex items-center gap-2.5 cursor-pointer py-1",children:[(0,b.jsx)("input",{type:"checkbox",checked:A,onChange:a=>B(a.target.checked),disabled:C,className:"rounded",style:{borderColor:"var(--border)"}}),(0,b.jsx)("span",{className:"text-sm",children:"Add missing skills from template"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 pt-4 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("button",{onClick:()=>n.push(`/projects/${m}/teams`),disabled:C,className:"px-4 py-2 rounded-xl border hover:bg-[var(--muted)]/50 transition-colors text-sm",style:{borderColor:"var(--border)"},children:"Cancel"}),(0,b.jsx)("button",{onClick:S,disabled:!u.trim()||C,className:"btn-primary px-5 py-2 text-sm min-w-[120px] flex items-center justify-center gap-2",children:C?(0,b.jsx)(i.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Users,{className:"w-4 h-4"}),"Adopt (",q.length,")"]})})]})]})})}])}];
1
+ module.exports=[693896,a=>{"use strict";let b=(0,a.i(831709).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],693896)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Ada",role:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Kai",role:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Ravi",role:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Mira",role:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Nia",role:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"Luca",role:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"Juno",role:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Iris",role:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"Theo",role:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"Sana",role:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"Dax",role:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Vega",role:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Sage",role:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"Yara",role:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Orin",role:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Zed",role:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Piper",role:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Wren",role:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Ezra",role:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Finn",role:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Blair",role:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Gwen",role:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Eli",role:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"Milo",role:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Uma",role:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Nate",role:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Quinn",role:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Cass",role:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Rio",role:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"trending-up",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",0,function(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]},"listAgentPresets",0,function(){return m.map(f)},"listTeamTemplates",0,function(){return o.map(h)}])},866510,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(319405),f=a.i(766412),g=a.i(830284),h=a.i(985339),i=a.i(349692),j=a.i(627421),k=a.i(693896);function l(a,b){let c=(0,e.getAgentPresetBindings)(b).map(a=>`${a.repo}/${a.skillId}`),d=new Set(a);return{overlap:c.filter(a=>d.has(a)),missing:c.filter(a=>!d.has(a))}}a.s(["default",0,function({params:a}){let{slug:m}=(0,c.use)(a),n=(0,d.useRouter)(),{projects:o}=(0,g.useProjectsWithAgents)(),p=o.find(a=>a.slug===m),[q,r]=(0,c.useState)([]),[s,t]=(0,c.useState)(!0),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(null),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)({}),I=(0,c.useMemo)(()=>(0,e.listTeamTemplates)(),[]),J=(0,c.useMemo)(()=>(0,e.listAgentPresets)(),[]),K=(0,c.useMemo)(()=>I.find(a=>a.id===w)??null,[I,w]),L=(0,c.useMemo)(()=>K?.variants&&y?K.variants.find(a=>a.id===y)??null:null,[K,y]),M=(0,c.useMemo)(()=>L?L.agents:K?K.agents:[],[K,L]),N=(0,c.useCallback)(async()=>{if(p){try{let a=await fetch(`/api/projects/${p.id}/agents/unassigned`);if(a.ok){let b=await a.json();r(b.agents??[])}}catch{}t(!1)}},[p]);(0,c.useEffect)(()=>{N()},[N]);let O=(0,c.useMemo)(()=>I.map(a=>({id:a.id,label:a.name,description:a.description,meta:a.variants?`${a.variants.length} specializations`:`${a.agents.length} roles`})),[I]),P=(0,c.useMemo)(()=>K?.variants?K.variants.map(a=>({id:a.id,label:a.name,description:a.description,meta:`${a.agents.length} roles`})):[],[K]),Q=(0,c.useMemo)(()=>[{id:"__auto__",label:"Auto",description:"Best match based on skills"},...(M.length>0?M:J).map(a=>({id:a.id,label:a.name,meta:a.skillProfileId}))],[M,J]),R=(0,c.useMemo)(()=>0===M.length?q.map(a=>({agent:a,matchedPreset:null,overlap:[],missing:[]})):q.map(a=>{let b=G[a.id];if(b&&"__auto__"!==b){let c=M.find(a=>a.id===b)??J.find(a=>a.id===b)??null;if(c){let{overlap:b,missing:d}=l(a.skills.map(a=>a.file),c);return{agent:a,matchedPreset:c,overlap:b,missing:d}}}let{preset:c,overlap:d,missing:e}=function(a,b){let c=a.skills.map(a=>a.file),d={preset:null,overlap:[],missing:[]},e=-1;for(let a of b){let{overlap:b,missing:f}=l(c,a);b.length>e&&(e=b.length,d={preset:a,overlap:b,missing:f})}return d}(a,M);return{agent:a,matchedPreset:c,overlap:d,missing:e}}),[q,M,G,J]);async function S(){if(u.trim()&&p){D(!0),F(null);try{let a=await fetch(`/api/projects/${p.id}/teams`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.trim()})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to create team");let{team:b}=await a.json();for(let a of R){let c=a.matchedPreset?.id??"member";await fetch(`/api/projects/${p.id}/teams/${b.id}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a.agent.id,roleKey:c})})}if(A){for(let a of R)if(a.missing.length>0&&a.matchedPreset){let b=(0,e.getAgentPresetBindings)(a.matchedPreset),c=new Set(a.missing),d=b.filter(a=>c.has(`${a.repo}/${a.skillId}`)).map(a=>({file:`${a.repo}/${a.skillId}`,...a.condition?{condition:a.condition}:{}}));d.length>0&&await fetch(`/api/agents/${a.agent.id}/skills`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({skills:[...a.agent.skills.map(a=>({file:a.file})),...d]})})}}n.push(`/projects/${m}/teams`)}catch(a){F(a instanceof Error?a.message:"Failed to adopt agents"),D(!1)}}}if(!p||s)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."});let T=!!K?.variants;return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto px-6 py-8 space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-lg font-bold",children:"Adopt Unassigned Agents"}),(0,b.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["Group ",q.length," unassigned agent",1!==q.length?"s":""," into a team."]})]}),E&&(0,b.jsx)("div",{className:"p-3 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:E}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Team name"}),(0,b.jsx)("input",{value:u,onChange:a=>v(a.target.value),placeholder:"e.g. Core Engineering",className:"input w-full text-sm",disabled:C,autoFocus:!0})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Template (optional — for role matching)"}),(0,b.jsx)(f.default,{options:O,value:w,onChange:function(a){x(a),z(null),H({});let b=I.find(b=>b.id===a);b&&!u&&v(b.name)},placeholder:"Select a template...",disabled:C})]}),T&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Specialization"}),(0,b.jsx)(f.default,{options:P,value:y,onChange:function(a){z(a),H({})},placeholder:"Select a specialization...",disabled:C})]}),M.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-2",children:"Role matching"}),(0,b.jsx)("div",{className:"space-y-1.5",children:R.map(a=>(0,b.jsxs)("div",{className:"p-2.5 rounded-xl",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)(h.Users,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-medium truncate",children:a.agent.name})]}),(0,b.jsx)("div",{className:"flex-shrink-0 w-48",children:(0,b.jsx)(f.default,{options:Q,value:G[a.agent.id]??a.matchedPreset?.id??"__auto__",onChange:b=>H(c=>({...c,[a.agent.id]:"__auto__"===b?null:b})),placeholder:"Select role...",disabled:C})})]}),a.matchedPreset&&(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:[a.overlap.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[(0,b.jsx)(j.Check,{className:"w-2.5 h-2.5"}),a.split("/").pop()]},a)),a.missing.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-amber-500/10 text-amber-400 border border-amber-500/20",children:[(0,b.jsx)(k.AlertCircle,{className:"w-2.5 h-2.5"}),a.split("/").pop()]},a))]})]},a.agent.id))})]}),R.some(a=>a.missing.length>0)&&(0,b.jsxs)("label",{className:"flex items-center gap-2.5 cursor-pointer py-1",children:[(0,b.jsx)("input",{type:"checkbox",checked:A,onChange:a=>B(a.target.checked),disabled:C,className:"rounded",style:{borderColor:"var(--border)"}}),(0,b.jsx)("span",{className:"text-sm",children:"Add missing skills from template"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 pt-4 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("button",{onClick:()=>n.push(`/projects/${m}/teams`),disabled:C,className:"px-4 py-2 rounded-xl border hover:bg-[var(--muted)]/50 transition-colors text-sm",style:{borderColor:"var(--border)"},children:"Cancel"}),(0,b.jsx)("button",{onClick:S,disabled:!u.trim()||C,className:"btn-primary px-5 py-2 text-sm min-w-[120px] flex items-center justify-center gap-2",children:C?(0,b.jsx)(i.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Users,{className:"w-4 h-4"}),"Adopt (",q.length,")"]})})]})]})})}])}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_0ld1uug._.js.map
@@ -0,0 +1,4 @@
1
+ module.exports=[168811,a=>{"use strict";var b=a.i(187924),c=a.i(238246),d=a.i(572131),e=a.i(639211);function f(){let[a,c]=(0,d.useState)(null),[f,g]=(0,d.useState)("loading");(0,d.useEffect)(()=>{let a=!0;async function b(){try{let b=await fetch("/api/health");if(!a)return;if(!b.ok)return void g("error");let d=await b.json();c(d),g(d.connected?"connected":"disconnected")}catch{a&&g("error")}}b();let d=setInterval(b,e.UI_POLL_DB_HEALTH_MS);return()=>{a=!1,clearInterval(d)}},[]);let h={loading:"Checking database…",connected:`${a?.adapter??"db"} connected (${a?.latencyMs??"?"}ms)`,disconnected:`${a?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":h[f],children:[(0,b.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[f]}`}),(0,b.jsx)("span",{className:"hidden sm:inline",children:h[f]})]})}function g({children:a,fullWidth:d=!1,noFooter:e=!1}){return(0,b.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,b.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,b.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,b.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,b.jsx)("div",{className:"flex items-center gap-8",children:(0,b.jsx)(c.default,{href:"/",className:"flex items-center gap-3 group",children:(0,b.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,b.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,b.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,b.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,b.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,b.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,b.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(c.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Open Chat"}),(0,b.jsx)(c.default,{href:"/automations",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Automations"}),(0,b.jsx)(c.default,{href:"/skills",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Skills"}),(0,b.jsx)(c.default,{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})]})]})})}),(0,b.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${d?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:a}),!e&&(0,b.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,b.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:"AGX Board • Autonomous Agent Orchestration"}),(0,b.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,b.jsx)(f,{}),(0,b.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}a.s(["default",0,function(a){return(0,b.jsx)(d.Suspense,{fallback:(0,b.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,b.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,b.jsx)(g,{...a})})}],168811)},553893,a=>{"use strict";var b=a.i(639211);b.NODE_TIMEOUT_DEFAULT_MS,b.GRAPH_TIMEOUT_DEFAULT_MS;let c=new Set(["done","passed"]),d=new Set(["pending","running","awaiting_human","blocked"]);function e(a,b){return"root"===b.type?b.title?.trim()||"Task Objective":"work"===b.type||"function"===b.type?b.title?.trim()||a:"gate"===b.type?b.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,a=>a.toUpperCase()):"fork"===b.type?"Fork":"join"===b.type?`Join (${b.joinStrategy})`:"Conditional"}function f(a){for(let[b,c]of Object.entries(a.nodes))if("root"===c.type)return{id:b,node:c};return null}a.s(["buildGraphSummary",0,function(a){let b,g=f(a);return{mode:a.mode,graphVersion:a.graphVersion,nodeCount:Object.keys(a.nodes).length,progress:0===(b=Object.values(a.nodes).filter(a=>"skipped"!==a.status)).length?100:Math.round(b.filter(a=>c.has(a.status)).length/b.length*100),currentBlocker:function(a){let b=function(a){let b=Object.entries(a.nodes),c=b.filter(([,a])=>"gate"===a.type&&a.required),d=c.find(([,a])=>"failed"===a.status);if(d)return d[0];let e=c.find(([,a])=>"awaiting_human"===a.status);if(e)return e[0];let f=c.find(([,a])=>"pending"===a.status||"running"===a.status);if(f)return f[0];let g=b.find(([,a])=>"work"===a.type&&"blocked"===a.status);return g?.[0]??null}(a);if(!b)return null;let c=a.nodes[b];return c?{nodeId:b,label:e(b,c),status:c.status,required:"gate"===c.type&&c.required}:null}(a),derivedStatus:function(a){let b=Object.keys(a.nodes).length;if(0===b)return"INTAKE";if(1===b){let b=Object.values(a.nodes)[0];if("root"===b.type&&!b.graphCreated)return"INTAKE"}return Object.values(a.nodes).some(a=>d.has(a.status))?"PROGRESS":"DONE"}(a),hasRootNode:null!==g,rootNodeId:g?.id??null}},"findRootNode",0,f,"formatNodeStatusLabel",0,function(a){return a.replace(/_/gu," ")},"getNodeLabel",0,e,"toNodeStatusClass",0,function(a){return`node--${a}`}],553893)},984806,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(238246),e=a.i(50944),f=a.i(168811);function g({project:a,onEdit:c,onDelete:d,onClick:e,onManageTasks:f}){let h=a.repos&&a.repos.length>0;return(0,b.jsxs)("div",{onClick:()=>e?.(a),className:`p-5 surface-card space-y-4
2
+ ${e?"cursor-pointer hover:border-gray-300 dark:hover:border-gray-700 hover:shadow-md active:scale-[0.99]":""}`,children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:a.name}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:a.slug})]}),(0,b.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[(0,b.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--muted-foreground)]",children:["Updated ",new Date(a.updated_at).toLocaleDateString()]}),(c||d||f)&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[f&&(0,b.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),f(a)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] bg-[var(--background)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all",children:"Tasks"}),c&&(0,b.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),c(a)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all bg-[var(--background)]",children:"Edit"}),d&&(0,b.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),d(a)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] text-[var(--destructive)] hover:border-[var(--destructive)] transition-all bg-[var(--background)]",children:"Delete"})]})]})]}),a.description&&(0,b.jsx)("p",{className:"text-sm text-[var(--foreground)] line-clamp-2",children:a.description}),a.ci_cd_info&&(0,b.jsxs)("div",{className:"text-sm",children:[(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] text-[12px] uppercase tracking-wide",children:"CI / CD"}),(0,b.jsx)("p",{className:"text-[14px] text-[var(--accent)] font-medium truncate",children:a.ci_cd_info})]}),a.metadata&&Object.keys(a.metadata).length>0&&(0,b.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--muted)]/20 border border-dashed border-[var(--card-border)] space-y-1",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Metadata"}),(0,b.jsx)("div",{className:"space-y-1",children:Object.entries(a.metadata??{}).filter(([a])=>"undefined"!==a&&""!==a).map(([a,c])=>(0,b.jsxs)("div",{className:"text-[12px] text-[var(--muted-foreground)] flex justify-between",children:[(0,b.jsx)("span",{className:"font-semibold",children:a}),(0,b.jsx)("span",{className:"truncate text-right",children:"string"==typeof c?c:JSON.stringify(c)})]},a))})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[12px] uppercase tracking-wider text-[var(--muted-foreground)]",children:"Folders"}),(0,b.jsx)("span",{className:"text-[12px] text-[var(--muted-foreground)]",children:h?`${a.repos.length} connected`:"Unlinked"})]}),h?(0,b.jsxs)("div",{className:"mt-3 space-y-2",children:[a.repos.slice(0,2).map(a=>(0,b.jsxs)("div",{className:"p-2 rounded-lg border border-[var(--card-border)] bg-[var(--background)] text-[11px]",children:[(0,b.jsx)("div",{className:"font-semibold truncate",children:a.name}),a.path&&(0,b.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] truncate",children:a.path})]},a.id)),a.repos.length>2&&(0,b.jsxs)("p",{className:"text-[10px] text-center text-[var(--muted-foreground)]",children:["+ ",a.repos.length-2," more"]})]}):(0,b.jsx)("p",{className:"mt-3 text-[12px] text-[var(--muted-foreground)]",children:"No folders added yet."})]})]})}var h=a.i(188834),i=a.i(532633);let j={in_progress:{title:"In Progress",icon:"🔄",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"🚧",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"📋",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function k({tasks:a,onSelectTask:c,onStatusChange:d}){if(0===a.length)return(0,b.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,b.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,b.jsx)("span",{className:"text-3xl",children:"📋"})}),(0,b.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let e=a.filter(a=>"in_progress"===a.status),f=a.filter(a=>"queued"===a.status),g=a.filter(a=>"blocked"===a.status),h=a.filter(a=>"completed"===a.status||"failed"===a.status),l=(a,e)=>{if(0===e.length)return null;let f=j[a];return(0,b.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:`color-mix(in srgb, ${f.color} 10%, transparent)`},children:[(0,b.jsx)("span",{className:"text-lg",children:f.icon}),(0,b.jsx)("h3",{className:"text-sm font-semibold",style:{color:f.color},children:f.title}),(0,b.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:`color-mix(in srgb, ${f.color} 15%, transparent)`,color:f.color},children:e.length})]}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:f.description})]}),(0,b.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:e.map((a,e)=>(0,b.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${50*e}ms`},children:(0,b.jsx)(i.default,{task:a,onClick:()=>c?.(a),onStatusChange:d?b=>d(a.id,b):void 0})},a.id))})]})};return(0,b.jsxs)("div",{children:[l("in_progress",e),l("blocked",g),l("queued",f),l("completed",h)]})}var l=a.i(207588),m=a.i(830284);function n({project:a,onClose:c}){let{tasks:d,isLoading:e}=(0,l.useTasks)({project:a.slug});return(0,b.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:a=>a.target===a.currentTarget&&c(),children:(0,b.jsxs)("div",{className:"modal-content w-full max-w-5xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,b.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("h2",{className:"text-xl font-bold",children:["Tasks for ",a.name]}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:"Viewing all tasks associated with this project."})]}),(0,b.jsx)("button",{onClick:c,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,b.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto p-8",children:e?(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,b.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full mb-4"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading project tasks..."})]}):(0,b.jsx)(k,{tasks:d})}),(0,b.jsx)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex justify-end flex-shrink-0",children:(0,b.jsx)("button",{onClick:c,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Close"})})]})})}a.s(["default",0,function(){let a=(0,e.useRouter)(),i=(0,e.useSearchParams)(),{projects:j,isLoading:k,error:l,refetch:o,createProject:p,updateProject:q,deleteProject:r}=(0,m.useProjects)(),s=(0,h.useProjectFormState)(),[t,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(null),{form:z,repos:A,handleRepoChange:B,addRepo:C,removeRepo:D,resetForm:E,hydrateFromProject:F,isSubmitting:G,setIsSubmitting:H,formError:I,setFormError:J,setForm:K}=s,L=()=>{u(null),E(),w(!0)},M=a=>{u(a),F(a),w(!0)};(0,c.useEffect)(()=>{let a=i.get("edit");if(!a||0===j.length||v)return;let b=j.find(b=>b.id===a);b&&M(b)},[i,j,v]),(0,c.useEffect)(()=>{"1"!==i.get("new")||v||(L(),a.replace("/projects"))},[i]);let N=(0,c.useCallback)(b=>{b.slug&&a.push(`/projects/${b.slug}`)},[a]),O=(0,c.useCallback)(a=>{y(a)},[]),P=(0,c.useCallback)(()=>{y(null)},[]),Q=()=>{E(),w(!1),u(null),i.get("edit")&&a.replace("/projects")},R=async()=>{if(!z.name.trim())return void J("Project name is required");let a=A.find(a=>a.name.trim()&&!a.path.trim());if(a)return void J(`Local path is required for folder "${a.name}"`);J(null),H(!0);let b=(0,h.createProjectPayload)(z,A);try{t?await q(t.id,b):await p(b),Q()}catch(a){J(a instanceof Error?a.message:"Failed to save project")}finally{H(!1)}},S=async a=>{if(window.confirm(`Delete project "${a.name}"? This cannot be undone.`))try{await r(a.id)}catch(a){alert(a instanceof Error?a.message:"Failed to delete project")}};return(0,b.jsx)(f.default,{children:(0,b.jsxs)("div",{className:"max-w-7xl mx-auto w-full flex flex-col min-h-full",children:[(0,b.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 py-8",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"Manage your projects and their folder contexts."})]}),(0,b.jsxs)("div",{className:"flex gap-3",children:[(0,b.jsx)("button",{onClick:o,className:"px-4 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all text-sm font-medium",children:"Refresh"}),(0,b.jsx)("button",{onClick:L,className:"btn-primary px-6 py-2 shadow-lg shadow-[var(--primary)]/20",children:"+ New Project"})]})]}),k?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,b.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,b.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading projects..."})]})}):0===j.length?(0,b.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,b.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:"📂"}),(0,b.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"You have no projects"}),(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create your first project to start organizing your tasks and connecting your folders."}),(0,b.jsx)("button",{onClick:L,className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Create a Project"})]}):(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-20",children:[(0,b.jsxs)(d.default,{href:"/projects/orphans",className:"p-5 rounded-2xl border border-dashed border-[var(--card-border)] bg-[var(--card-bg)] shadow-sm space-y-4 transition-all hover:border-[var(--primary)] hover:shadow-md",children:[(0,b.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{className:"text-lg font-semibold",children:"Orphan Tasks"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:"Unassigned"})]})}),(0,b.jsx)("p",{className:"text-sm text-[var(--foreground)]",children:"Review tasks with empty project assignment and move them into the correct project."})]}),j.map(a=>(0,b.jsx)(g,{project:a,onEdit:M,onDelete:S,onManageTasks:O,onClick:N},a.id))]}),(0,b.jsx)(h.default,{isOpen:v,onClose:Q,onSubmit:R,editingProject:t,form:z,repos:A,isSubmitting:G,formError:I,onFieldChange:(a,b)=>K(c=>({...c,[a]:b})),onRepoChange:B,onAddRepo:C,onRemoveRepo:D}),x&&(0,b.jsx)(n,{project:x,onClose:P})]})})}],984806)}];
3
+
4
+ //# sourceMappingURL=apps_local_0ms1d6i._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[599086,a=>{"use strict";let b=(0,a.i(831709).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],599086)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Team Lead",title:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Fullstack Engineer",title:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Backend Engineer",title:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Frontend Engineer",title:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Data Engineer",title:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"ML Engineer",title:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"DevOps Engineer",title:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Security Engineer",title:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"UI Designer",title:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"QA Engineer",title:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"SRE",title:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Pen Tester",title:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Product Manager",title:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"UX Designer",title:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Technical Writer",title:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Growth Marketer",title:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Analyst",title:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Content Writer",title:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Researcher",title:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Marketing Strategist",title:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Copywriter",title:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Support Engineer",title:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Support Lead",title:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"DevRel Engineer",title:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Community Manager",title:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Ops Engineer",title:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Project Manager",title:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Solutions Architect",title:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Mobile Engineer",title:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"megaphone",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",0,function(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]},"listAgentPresets",0,function(){return m.map(f)},"listTeamTemplates",0,function(){return o.map(h)}])},231283,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(319405),f=a.i(766412),g=a.i(830284),h=a.i(353532),i=a.i(542341),j=a.i(349692),k=a.i(599086),l=a.i(627421),m=a.i(824179);a.s(["default",0,function({params:a}){let{slug:n}=(0,c.use)(a),o=(0,d.useRouter)(),{projects:p}=(0,g.useProjectsWithAgents)(),q=p.find(a=>a.slug===n),[r,s]=(0,c.useState)([]),[t,u]=(0,c.useState)(!0),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(new Set),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(!1),[H,I]=(0,c.useState)(null),J=(0,c.useMemo)(()=>(0,e.listTeamTemplates)(),[]),K=(0,c.useMemo)(()=>(0,e.listAgentPresets)(),[]),L=(0,c.useMemo)(()=>J.find(a=>a.id===v)??null,[J,v]),M=(0,c.useCallback)(async()=>{if(q){try{let a=await fetch(`/api/projects/${q.id}/agents/unassigned`);if(a.ok){let b=await a.json();s(b.agents??[])}}catch{}u(!1)}},[q]);(0,c.useEffect)(()=>{M()},[M]);let N=(0,c.useMemo)(()=>J.map(a=>({id:a.id,label:a.name,description:a.description,meta:a.variants?`${a.variants.length} specializations`:`${a.agents.length} roles`})),[J]),O=(0,c.useMemo)(()=>L?.variants?L.variants.map(a=>({id:a.id,label:a.name,description:a.description,meta:`${a.agents.length} roles`})):[],[L]),P=(0,c.useMemo)(()=>K.filter(a=>z.has(a.id)),[K,z]),Q=(0,c.useMemo)(()=>{let a=D.toLowerCase();return K.filter(b=>!z.has(b.id)&&(!a||b.name.toLowerCase().includes(a)||b.id.includes(a)||b.skillProfileId.includes(a)))},[K,z,D]);function R(a){A(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}async function S(){if(v&&0!==z.size&&q){G(!0),I(null);try{await Promise.all(r.map(a=>fetch(`/api/projects/${q.id}/agents?agentId=${encodeURIComponent(a.id)}`,{method:"DELETE"})));let a={templateId:v,name:B.trim()||L?.name,agents:[...z]};x&&(a.variantId=x);let b=await fetch(`/api/projects/${q.id}/teams`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create team");o.push(`/projects/${n}/teams`)}catch(a){I(a instanceof Error?a.message:"Failed to replace agents"),G(!1)}}}if(!q||t)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."});let T=!!L?.variants,U=z.size>0;return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto px-6 py-8 space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-lg font-bold",children:"Replace Unassigned Agents"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Remove unassigned agents and create a new team."})]}),H&&(0,b.jsx)("div",{className:"p-3 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:H}),(0,b.jsx)("div",{className:"p-3.5 rounded-xl bg-red-500/5",style:{border:"1px solid rgba(239,68,68,0.2)"},children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(k.AlertTriangle,{className:"w-4 h-4 text-red-400 flex-shrink-0 mt-0.5"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-red-400 mb-1.5",children:"These agents will be removed:"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.map(a=>(0,b.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-lg bg-red-500/10 text-red-300 border border-red-500/20",children:a.name},a.id))})]})]})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Replacement team name"}),(0,b.jsx)("input",{value:B,onChange:a=>C(a.target.value),placeholder:"e.g. Engineering",className:"input w-full text-sm",disabled:F})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Template"}),(0,b.jsx)(f.default,{options:N,value:v,onChange:function(a){w(a),y(null);let b=J.find(b=>b.id===a);b&&(C(b.name),b.variants?A(new Set):A(new Set(b.agents.map(a=>a.id))))},placeholder:"Select a team template...",disabled:F})]}),T&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Specialization"}),(0,b.jsx)(f.default,{options:O,value:x,onChange:function(a){y(a);let b=L?.variants?.find(b=>b.id===a);b&&(C(b.name),A(new Set(b.agents.map(a=>a.id))))},placeholder:"Select a specialization...",disabled:F})]}),U&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-2",children:["Roles (",P.length,")"]}),(0,b.jsx)("div",{className:"space-y-1.5",children:P.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between py-2 px-3 rounded-xl",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,b.jsx)("div",{className:"w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 bg-emerald-500/15",children:(0,b.jsx)(l.Check,{className:"w-3 h-3 text-emerald-400"})}),(0,b.jsx)("span",{className:"text-sm font-medium truncate",children:a.name}),(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full flex-shrink-0",style:{background:"var(--card-bg)",color:"var(--muted-foreground)"},children:a.skillProfileId})]}),(0,b.jsx)("button",{onClick:()=>R(a.id),disabled:F,className:"p-1.5 rounded-lg hover:bg-red-500/15 text-[var(--muted-foreground)] hover:text-red-400 transition-colors",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]},a.id))})]}),v&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Add roles"}),(0,b.jsxs)("div",{className:"relative mb-3",children:[(0,b.jsx)(i.Search,{className:"w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{value:D,onChange:a=>E(a.target.value),placeholder:"Search all roles...",className:"input w-full text-sm",style:{paddingLeft:"2.25rem"},disabled:F}),D&&(0,b.jsx)("button",{onClick:()=>E(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[Q.map(a=>(0,b.jsxs)("button",{onClick:()=>R(a.id),disabled:F,className:"inline-flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-full transition-colors",style:{background:"var(--muted)",border:"1px solid var(--border)",color:"var(--muted-foreground)"},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--primary)",a.currentTarget.style.color="var(--primary)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.color="var(--muted-foreground)"},children:[(0,b.jsx)(h.Plus,{className:"w-3 h-3"}),a.name]},a.id)),0===Q.length&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] py-2",children:D?"No matching roles":"All roles selected"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 pt-4 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("button",{onClick:()=>o.push(`/projects/${n}/teams`),disabled:F,className:"px-4 py-2 rounded-xl border hover:bg-[var(--muted)]/50 transition-colors text-sm",style:{borderColor:"var(--border)"},children:"Cancel"}),(0,b.jsx)("button",{onClick:S,disabled:!U||!v||F,className:"px-5 py-2 rounded-xl text-sm font-medium min-w-[120px] flex items-center justify-center gap-2 bg-red-600 hover:bg-red-700 text-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:F?(0,b.jsx)(j.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.AlertTriangle,{className:"w-4 h-4"}),"Replace (",z.size,")"]})})]})]})})}])}];
1
+ module.exports=[599086,a=>{"use strict";let b=(0,a.i(831709).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],599086)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Ada",role:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Kai",role:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Ravi",role:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Mira",role:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Nia",role:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"Luca",role:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"Juno",role:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Iris",role:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"Theo",role:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"Sana",role:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"Dax",role:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Vega",role:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Sage",role:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"Yara",role:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Orin",role:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Zed",role:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Piper",role:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Wren",role:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Ezra",role:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Finn",role:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Blair",role:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Gwen",role:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Eli",role:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"Milo",role:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Uma",role:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Nate",role:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Quinn",role:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Cass",role:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Rio",role:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"trending-up",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",0,function(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]},"listAgentPresets",0,function(){return m.map(f)},"listTeamTemplates",0,function(){return o.map(h)}])},231283,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(319405),f=a.i(766412),g=a.i(830284),h=a.i(353532),i=a.i(542341),j=a.i(349692),k=a.i(599086),l=a.i(627421),m=a.i(824179);a.s(["default",0,function({params:a}){let{slug:n}=(0,c.use)(a),o=(0,d.useRouter)(),{projects:p}=(0,g.useProjectsWithAgents)(),q=p.find(a=>a.slug===n),[r,s]=(0,c.useState)([]),[t,u]=(0,c.useState)(!0),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(new Set),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(!1),[H,I]=(0,c.useState)(null),J=(0,c.useMemo)(()=>(0,e.listTeamTemplates)(),[]),K=(0,c.useMemo)(()=>(0,e.listAgentPresets)(),[]),L=(0,c.useMemo)(()=>J.find(a=>a.id===v)??null,[J,v]),M=(0,c.useCallback)(async()=>{if(q){try{let a=await fetch(`/api/projects/${q.id}/agents/unassigned`);if(a.ok){let b=await a.json();s(b.agents??[])}}catch{}u(!1)}},[q]);(0,c.useEffect)(()=>{M()},[M]);let N=(0,c.useMemo)(()=>J.map(a=>({id:a.id,label:a.name,description:a.description,meta:a.variants?`${a.variants.length} specializations`:`${a.agents.length} roles`})),[J]),O=(0,c.useMemo)(()=>L?.variants?L.variants.map(a=>({id:a.id,label:a.name,description:a.description,meta:`${a.agents.length} roles`})):[],[L]),P=(0,c.useMemo)(()=>K.filter(a=>z.has(a.id)),[K,z]),Q=(0,c.useMemo)(()=>{let a=D.toLowerCase();return K.filter(b=>!z.has(b.id)&&(!a||b.name.toLowerCase().includes(a)||b.id.includes(a)||b.skillProfileId.includes(a)))},[K,z,D]);function R(a){A(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}async function S(){if(v&&0!==z.size&&q){G(!0),I(null);try{await Promise.all(r.map(a=>fetch(`/api/projects/${q.id}/agents?agentId=${encodeURIComponent(a.id)}`,{method:"DELETE"})));let a={templateId:v,name:B.trim()||L?.name,agents:[...z]};x&&(a.variantId=x);let b=await fetch(`/api/projects/${q.id}/teams`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create team");o.push(`/projects/${n}/teams`)}catch(a){I(a instanceof Error?a.message:"Failed to replace agents"),G(!1)}}}if(!q||t)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."});let T=!!L?.variants,U=z.size>0;return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto px-6 py-8 space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-lg font-bold",children:"Replace Unassigned Agents"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Remove unassigned agents and create a new team."})]}),H&&(0,b.jsx)("div",{className:"p-3 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:H}),(0,b.jsx)("div",{className:"p-3.5 rounded-xl bg-red-500/5",style:{border:"1px solid rgba(239,68,68,0.2)"},children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(k.AlertTriangle,{className:"w-4 h-4 text-red-400 flex-shrink-0 mt-0.5"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-red-400 mb-1.5",children:"These agents will be removed:"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.map(a=>(0,b.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-lg bg-red-500/10 text-red-300 border border-red-500/20",children:a.name},a.id))})]})]})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Replacement team name"}),(0,b.jsx)("input",{value:B,onChange:a=>C(a.target.value),placeholder:"e.g. Engineering",className:"input w-full text-sm",disabled:F})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Template"}),(0,b.jsx)(f.default,{options:N,value:v,onChange:function(a){w(a),y(null);let b=J.find(b=>b.id===a);b&&(C(b.name),b.variants?A(new Set):A(new Set(b.agents.map(a=>a.id))))},placeholder:"Select a team template...",disabled:F})]}),T&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Specialization"}),(0,b.jsx)(f.default,{options:O,value:x,onChange:function(a){y(a);let b=L?.variants?.find(b=>b.id===a);b&&(C(b.name),A(new Set(b.agents.map(a=>a.id))))},placeholder:"Select a specialization...",disabled:F})]}),U&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-2",children:["Roles (",P.length,")"]}),(0,b.jsx)("div",{className:"space-y-1.5",children:P.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between py-2 px-3 rounded-xl",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,b.jsx)("div",{className:"w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 bg-emerald-500/15",children:(0,b.jsx)(l.Check,{className:"w-3 h-3 text-emerald-400"})}),(0,b.jsx)("span",{className:"text-sm font-medium truncate",children:a.role}),(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full flex-shrink-0",style:{background:"var(--card-bg)",color:"var(--muted-foreground)"},children:a.skillProfileId})]}),(0,b.jsx)("button",{onClick:()=>R(a.id),disabled:F,className:"p-1.5 rounded-lg hover:bg-red-500/15 text-[var(--muted-foreground)] hover:text-red-400 transition-colors",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]},a.id))})]}),v&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Add roles"}),(0,b.jsxs)("div",{className:"relative mb-3",children:[(0,b.jsx)(i.Search,{className:"w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{value:D,onChange:a=>E(a.target.value),placeholder:"Search all roles...",className:"input w-full text-sm",style:{paddingLeft:"2.25rem"},disabled:F}),D&&(0,b.jsx)("button",{onClick:()=>E(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[Q.map(a=>(0,b.jsxs)("button",{onClick:()=>R(a.id),disabled:F,className:"inline-flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-full transition-colors",style:{background:"var(--muted)",border:"1px solid var(--border)",color:"var(--muted-foreground)"},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--primary)",a.currentTarget.style.color="var(--primary)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.color="var(--muted-foreground)"},children:[(0,b.jsx)(h.Plus,{className:"w-3 h-3"}),a.name]},a.id)),0===Q.length&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] py-2",children:D?"No matching roles":"All roles selected"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 pt-4 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("button",{onClick:()=>o.push(`/projects/${n}/teams`),disabled:F,className:"px-4 py-2 rounded-xl border hover:bg-[var(--muted)]/50 transition-colors text-sm",style:{borderColor:"var(--border)"},children:"Cancel"}),(0,b.jsx)("button",{onClick:S,disabled:!U||!v||F,className:"px-5 py-2 rounded-xl text-sm font-medium min-w-[120px] flex items-center justify-center gap-2 bg-red-600 hover:bg-red-700 text-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:F?(0,b.jsx)(j.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.AlertTriangle,{className:"w-4 h-4"}),"Replace (",z.size,")"]})})]})]})})}])}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_0p_v0ri._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[667597,a=>{"use strict";let b=(0,a.i(831709).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],667597)},599086,a=>{"use strict";let b=(0,a.i(831709).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],599086)},697183,a=>{"use strict";let b=(0,a.i(831709).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",0,b],697183)},820859,a=>{"use strict";let b=(0,a.i(831709).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",0,b],820859)},44668,a=>{"use strict";let b=(0,a.i(831709).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",0,b],44668)},654340,a=>{"use strict";let b=(0,a.i(831709).default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);a.s(["Activity",0,b],654340)},549429,a=>{"use strict";let b=(0,a.i(831709).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);a.s(["ArrowRight",0,b],549429)},53954,a=>{"use strict";var b=a.i(187924),c=a.i(238246);a.s(["EmptyStateCard",0,function({icon:a,title:d,description:e,ctaLabel:f,ctaHref:g}){return(0,b.jsx)("div",{className:"h-full w-full flex items-center justify-center bg-[var(--background)] px-6 py-12",children:(0,b.jsxs)("div",{className:"max-w-md w-full text-center space-y-6",children:[(0,b.jsx)("div",{className:"mx-auto w-14 h-14 rounded-2xl bg-[var(--secondary)] flex items-center justify-center",children:a}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("h1",{className:"text-[22px] font-bold text-[var(--foreground)] tracking-tight",children:d}),(0,b.jsx)("p",{className:"text-[14px] text-[var(--muted-foreground)] leading-relaxed",children:e})]}),(0,b.jsx)(c.default,{href:g,className:"inline-flex items-center gap-2 px-6 py-2.5 bg-[var(--foreground)] text-[var(--background)] text-[14px] font-semibold rounded-lg hover:opacity-90 transition-all",children:f})]})})}])},675665,a=>{"use strict";var b=a.i(572131);a.s(["useLinearConnection",0,function(){let[a,c]=(0,b.useState)(!1),[d,e]=(0,b.useState)(!0),[f,g]=(0,b.useState)(null),[h,i]=(0,b.useState)({claude:!1,codex:!1,gemini:!1}),[j,k]=(0,b.useState)({}),l=(0,b.useRef)(null),m=(0,b.useCallback)(async()=>{try{let a=await fetch("/api/linear/mcp-setup"),b=await a.json();k(b.configured??{})}catch{}},[]),n=(0,b.useCallback)(async()=>{try{let[a,b]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),d=await a.json(),e=await b.json();return c(d.connected),g(d.user??null),i(d.clis??{claude:!1,codex:!1,gemini:!1}),k(e.configured??{}),d.connected}catch{return c(!1),!1}finally{e(!1)}},[]);(0,b.useEffect)(()=>(n(),()=>{l.current&&clearInterval(l.current)}),[n]);let o=(0,b.useCallback)(()=>{window.open("/api/linear/auth","_blank","noopener"),l.current&&clearInterval(l.current),l.current=setInterval(async()=>{await n()&&l.current&&(clearInterval(l.current),l.current=null)},2e3)},[n]),p=(0,b.useCallback)(async a=>{try{let b=await fetch("/api/linear/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to save token"}}return await n(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[n]);return{connected:a,loading:d,user:f,clis:h,mcpConfigured:j,connect:o,connectWithKey:p,disconnect:(0,b.useCallback)(async()=>{await fetch("/api/linear/status",{method:"DELETE"}),c(!1),g(null)},[]),configureMcp:(0,b.useCallback)(async a=>{try{let b=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to configure MCP"}}return await m(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[m]),refresh:n}}])}];
2
+
3
+ //# sourceMappingURL=apps_local_0x.xj52._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[697183,a=>{"use strict";let b=(0,a.i(831709).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",0,b],697183)},667597,a=>{"use strict";let b=(0,a.i(831709).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],667597)},756490,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],756490)},599086,a=>{"use strict";let b=(0,a.i(831709).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],599086)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Team Lead",title:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Fullstack Engineer",title:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Backend Engineer",title:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Frontend Engineer",title:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Data Engineer",title:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"ML Engineer",title:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"DevOps Engineer",title:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Security Engineer",title:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"UI Designer",title:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"QA Engineer",title:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"SRE",title:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Pen Tester",title:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Product Manager",title:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"UX Designer",title:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Technical Writer",title:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Growth Marketer",title:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Analyst",title:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Content Writer",title:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Researcher",title:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Marketing Strategist",title:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Copywriter",title:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Support Engineer",title:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Support Lead",title:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"DevRel Engineer",title:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Community Manager",title:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Ops Engineer",title:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Project Manager",title:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Solutions Architect",title:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Mobile Engineer",title:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"megaphone",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",0,function(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]},"listAgentPresets",0,function(){return m.map(f)},"listTeamTemplates",0,function(){return o.map(h)}])}];
1
+ module.exports=[697183,a=>{"use strict";let b=(0,a.i(831709).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",0,b],697183)},667597,a=>{"use strict";let b=(0,a.i(831709).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);a.s(["Pencil",0,b],667597)},756490,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],756490)},599086,a=>{"use strict";let b=(0,a.i(831709).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",0,b],599086)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Ada",role:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Kai",role:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Ravi",role:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Mira",role:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Nia",role:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"Luca",role:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"Juno",role:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Iris",role:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"Theo",role:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"Sana",role:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"Dax",role:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Vega",role:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Sage",role:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"Yara",role:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Orin",role:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Zed",role:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Piper",role:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Wren",role:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Ezra",role:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Finn",role:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Blair",role:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Gwen",role:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Eli",role:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"Milo",role:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Uma",role:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Nate",role:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Quinn",role:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Cass",role:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Rio",role:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"trending-up",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",0,function(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]},"listAgentPresets",0,function(){return m.map(f)},"listTeamTemplates",0,function(){return o.map(h)}])}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_0~g2ijr._.js.map