@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=[517259,562428,a=>{"use strict";var b=a.i(831709);let c=(0,b.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);a.s(["Cpu",0,c],517259);let d=(0,b.default)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);a.s(["Box",0,d],562428)},328400,a=>{"use strict";let b=(0,a.i(831709).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);a.s(["BookOpen",0,b],328400)},8e4,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(824179),e=a.i(252197),f=a.i(517259),g=a.i(562428),h=a.i(328400),i=a.i(724938),j=a.i(353532),k=a.i(89613),l=a.i(811760),m=a.i(804632),n=a.i(627421),o=a.i(86466);a.i(749741),a.i(449140),a.i(214512);var p=a.i(766412);function q(a,b=32,c){let d=`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${b}`;if(!c)return d;let e=c.replace("#","");return`${d}&backgroundColor=${e}`}a.i(529889);let r=["claude","ollama","gemini","codex","zai"];function s(a){return(a??[]).map(a=>a.condition?.trim()?`${a.file} | ${a.condition}`:a.file).join("\n")}function t(a){return a.split("\n").map(a=>a.trim()).filter(Boolean).map(a=>{let[b,...c]=a.split("|");return{file:b.trim(),condition:c.join("|").trim()}}).filter(a=>a.file.length>0)}function u(a,b){return JSON.stringify({name:a.name,...a.roleId?{roleId:a.roleId}:{},...a.title?{title:a.title}:{},provider:a.provider,model:a.model,identity:a.identity,color:a.color??"#6B7280",skills:a.skills??[],skillBindings:a.skillBindings??[],...b?{projectIds:b}:{}},null,2)}a.s(["AgentForm",0,function({title:a,initial:v,submitLabel:w,onSubmit:x,onCancel:y,projects:z,initialProjectIds:A,agentId:B,projectMemberships:C,onAddToProject:D,onRemoveFromProject:E,roleOptions:F,roleLabel:G="Role",onRolePresetChange:H}){let[I,J]=(0,c.useState)(v.name),[K,L]=(0,c.useState)(v.roleId??""),[M,N]=(0,c.useState)(v.title??""),[O,P]=(0,c.useState)(v.provider),[Q,R]=(0,c.useState)(v.model),[S,T]=(0,c.useState)(v.identity),[U,V]=(0,c.useState)(v.color??"#6B7280"),[W,X]=(0,c.useState)(s(v.skills)),[Y,Z]=(0,c.useState)(new Set(A??[])),[$,_]=(0,c.useState)("form"),[aa,ab]=(0,c.useState)(()=>u(v,z?A??[]:void 0)),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)(!1),[ag,ah]=(0,c.useState)([]),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(v.skillBindings??[]),ao=(0,c.useRef)(null),ap=(0,c.useRef)(null),aq=!!(F&&F.length>0),ar=B||I.trim()||v.name||"agent";(0,c.useEffect)(()=>{let a=a=>{ap.current&&!ap.current.contains(a.target)&&y()},b=setTimeout(()=>document.addEventListener("pointerdown",a),0);return()=>{clearTimeout(b),document.removeEventListener("pointerdown",a)}},[ap,y]),(0,c.useEffect)(()=>{if(!ak)return;let a=a=>{ao.current&&!ao.current.contains(a.target)&&al(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[ak]),(0,c.useEffect)(()=>{"form"===$&&ab(u({name:I,...aq&&K?{roleId:K}:{},title:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0))},[$,I,K,aq,M,O,Q,S,U,W,am,Y,z]),(0,c.useEffect)(()=>{if(!ae)return;let a=window.setTimeout(()=>af(!1),1200);return()=>window.clearTimeout(a)},[ae]),(0,c.useEffect)(()=>{let a=!1;return async function(){try{let b=await fetch("/api/skills");if(!b.ok)return;let c=await b.json();if(a)return;let d=Array.isArray(c.skills)?c.skills.filter(a=>!!a&&"object"==typeof a).map(a=>({skillId:String(a.skillId??"").trim(),repo:String(a.repo??"").trim(),name:String(a.name??a.skillId??"").trim()})).filter(a=>a.skillId.length>0&&a.repo.length>0):[];ah(d)}catch{a||ah([])}}(),()=>{a=!0}},[]);let as=(a,b)=>{let c=z?(b??[]).filter(a=>z.some(b=>b.id===a)):void 0;return J(a.name),L(a.roleId??""),N(a.title??""),P(a.provider),R(a.model),T(a.identity),V(a.color??"#6B7280"),X(s(a.skills)),an(a.skillBindings??[]),z&&Z(new Set(c??[])),ab(u(a,z?c??[]:void 0)),ad(null),c},at=a=>{let b=function(a,b){let c;try{c=JSON.parse(a)}catch{throw Error("JSON is invalid.")}if(!c||"object"!=typeof c||Array.isArray(c))throw Error("JSON must be an object.");let d=c,e="string"==typeof d.provider?d.provider:b,f=r.includes(e)?e:b,g=(Array.isArray(d.skills)?d.skills:[]).flatMap(a=>{if("string"==typeof a){let[b,...c]=a.split("|"),d=b.trim();return d?[{file:d,condition:c.join("|").trim()}]:[]}if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.file?a.file.trim():"";return b?[{file:b,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]}),h=Array.isArray(d.projectIds)?d.projectIds.filter(a=>"string"==typeof a&&a.trim().length>0):void 0,i=(Array.isArray(d.skillBindings)?d.skillBindings:[]).flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.repo?a.repo.trim():"",c="string"==typeof a.skillId?a.skillId.trim():"";return b&&c?[{repo:b,skillId:c,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]});return{data:{name:"string"==typeof d.name?d.name:"",roleId:"string"==typeof d.roleId?d.roleId:void 0,title:"string"==typeof d.title?d.title:"",provider:f,model:"string"==typeof d.model?d.model:"",identity:"string"==typeof d.identity?d.identity:"",color:"string"==typeof d.color&&d.color.trim()?d.color:"#6B7280",skills:g,skillBindings:i},projectIds:h}}(a,O),c=as(b.data,b.projectIds);return{...b,projectIds:c}},au=()=>{if("form"!==$)try{at(aa),_("form")}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.")}},av=async()=>{try{await navigator.clipboard.writeText(aa),af(!0)}catch{af(!1)}},aw=(0,c.useMemo)(()=>{let a=ai.trim().toLowerCase();return a?ag.filter(b=>[b.name,b.skillId,b.repo].some(b=>b.toLowerCase().includes(a))).slice(0,50):ag.slice(0,50)},[ag,ai]),ax=(0,c.useMemo)(()=>new Set(am.map(a=>`${a.repo}::${a.skillId}`)),[am]);return(0,b.jsx)("div",{ref:ap,className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/30 backdrop-blur-sm",onKeyDown:a=>{"Escape"===a.key&&y()},children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-[32px] shadow-2xl overflow-hidden w-full max-w-2xl max-h-[90vh] flex flex-col animate-in fade-in zoom-in duration-300",children:[(0,b.jsxs)("div",{className:"px-8 pt-8 pb-4 shrink-0 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1.5",children:[(0,b.jsx)("img",{src:q(ar,64,U),alt:I,className:"w-14 h-14 rounded-full bg-[var(--muted)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Color"}),(0,b.jsx)("input",{type:"color",value:U,onChange:a=>V(a.target.value),className:"w-5 h-5 rounded border border-[var(--border)] cursor-pointer p-0"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-[10px] font-bold tracking-widest text-[var(--muted-foreground)] uppercase",children:a}),(0,b.jsx)("h1",{className:"text-2xl font-semibold mt-1",children:I||"Configure Agent"})]})]}),(0,b.jsx)("button",{onClick:y,className:"p-2 text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] hover:bg-[var(--muted)] rounded-full transition-all",children:(0,b.jsx)(d.X,{size:20})})]}),(0,b.jsxs)("div",{className:"px-8 pb-8 space-y-6 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"inline-flex rounded-xl bg-[var(--muted)] p-1",children:[(0,b.jsx)("button",{type:"button",onClick:au,className:"form"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Form"}),(0,b.jsx)("button",{type:"button",onClick:()=>{ab(u({name:I,...aq&&K?{roleId:K}:{},title:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0)),ad(null),_("json")},className:"json"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"JSON"})]}),"json"===$&&(0,b.jsxs)("button",{type:"button",onClick:av,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:[ae?(0,b.jsx)(n.Check,{size:14,className:"text-emerald-500"}):(0,b.jsx)(m.Copy,{size:14}),ae?"Copied":"Copy"]})]}),"form"===$?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(e.User,{size:16})," Name"]}),(0,b.jsx)("input",{type:"text",value:I,onChange:a=>J(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. Ada, Kai, Sage...",autoFocus:!0})]}),aq?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:G}),(0,b.jsx)(p.default,{options:F??[],value:K||null,onChange:a=>{if(!aq)return;let b={name:I,roleId:a,title:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},c=H?.(a,b);c?as({...c,roleId:a},z?Array.from(Y):void 0):L(a)},placeholder:"Select a role preset..."})]}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:"Title"}),(0,b.jsx)("input",{type:"text",value:M,onChange:a=>N(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. VP of Engineering"})]})]}),aq&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:"Title"}),(0,b.jsx)("input",{type:"text",value:M,onChange:a=>N(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. VP of Engineering"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.Box,{size:16})," Provider"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("select",{value:O,onChange:a=>P(a.target.value),className:"w-full appearance-none px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all pr-10 cursor-pointer",children:[(0,b.jsx)("option",{value:"claude",children:"Claude"}),(0,b.jsx)("option",{value:"ollama",children:"Ollama"}),(0,b.jsx)("option",{value:"gemini",children:"Gemini"}),(0,b.jsx)("option",{value:"codex",children:"Codex"}),(0,b.jsx)("option",{value:"zai",children:"Z.AI"})]}),(0,b.jsx)(l.ChevronDown,{className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)] pointer-events-none",size:16})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(f.Cpu,{size:16})," Model"]}),(0,b.jsx)("input",{type:"text",value:Q,onChange:a=>R(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-sm",placeholder:"e.g. claude-sonnet-4-6"})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.BookOpen,{size:16})," Identity"]}),(0,b.jsx)("div",{className:"border border-[var(--border)] rounded-xl overflow-hidden bg-[var(--app-shell-subtle)] focus-within:ring-2 focus-within:ring-indigo-500/20 focus-within:border-indigo-500 transition-all",children:(0,b.jsx)(o.default,{content:S,onChange:a=>T(a),placeholder:"You are a ..."})}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Identity defines who the agent is. Keep portable knowledge separate below; project and repo knowledge belong on their scoped surfaces."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(i.Sparkles,{size:16})," Portable Knowledge"]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3 space-y-3",children:[(0,b.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Skills Picker"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"Pick a skill here. AGX will install it later only if the run actually needs it."})]})}),ag.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"relative",ref:ao,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>al(a=>!a),className:"w-full flex items-center justify-between px-3 py-2 rounded-xl border border-[var(--border)] bg-[var(--card-bg)] text-sm font-medium hover:border-indigo-500",children:[(0,b.jsx)("span",{className:"truncate text-left",children:"Search and add skills"}),(0,b.jsx)(l.ChevronDown,{size:16,className:`shrink-0 text-[var(--muted-foreground)] transition-transform ${ak?"rotate-180":""}`})]}),ak&&(0,b.jsxs)("div",{className:"absolute left-0 right-0 top-full mt-2 z-30 rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--border)]",children:(0,b.jsx)("input",{type:"text",value:ai,onChange:a=>aj(a.target.value),placeholder:"Search skills",className:"w-full px-3 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500",autoFocus:!0})}),(0,b.jsx)("div",{className:"max-h-64 overflow-y-auto",children:aw.length>0?aw.map(a=>{let c=`${a.repo}::${a.skillId}`,d=ax.has(c);return(0,b.jsx)("button",{type:"button",className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-emerald-50 text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void(an(a=>a.some(a=>a.repo===b&&a.skillId===c)?a.filter(a=>a.repo!==b||a.skillId!==c):[...a,{repo:b,skillId:c}]),aj(""))},children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"font-medium",children:a.name||a.skillId}),(0,b.jsx)("div",{className:"text-[11px] text-[var(--muted-foreground)]",children:a.repo})]}),d&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-emerald-100 px-2 py-0.5 text-[10px] font-semibold text-emerald-700",children:"Added"})]})},c)}):(0,b.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]",children:"No matching skills."})})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[am.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-emerald-50 text-emerald-700 border border-emerald-200 px-2.5 py-1 text-[11px] font-medium",children:[a.skillId,(0,b.jsx)("button",{type:"button",onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void an(a=>a.filter(a=>a.repo!==b||a.skillId!==c))},className:"text-emerald-700/70 hover:text-emerald-900",title:`Remove ${a.skillId}`,children:(0,b.jsx)(d.X,{size:12})})]},`${a.repo}::${a.skillId}`)),0===am.length&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No library skills selected yet."})]})]}):(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No catalog skills available right now."})]}),(0,b.jsx)("textarea",{value:W,onChange:a=>X(a.target.value),rows:5,className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-xs",placeholder:"one/path/to/skill.md\npath/to/skill.md | when coding in TypeScript"}),(0,b.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["Portable agent knowledge only. One reference per line. Use ",(0,b.jsx)("code",{children:"|"})," to add an optional condition."]})]}),z&&z.length>0&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Assign To Projects"]}),(0,b.jsx)("div",{className:"space-y-1 max-h-[160px] overflow-y-auto",children:z.map(a=>{let c=Y.has(a.id);return(0,b.jsxs)("button",{type:"button",className:c?"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors bg-indigo-50 text-indigo-700":"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]",onClick:()=>Z(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("div",{className:c?"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center bg-indigo-600 border-indigo-600":"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center border-[var(--border)]",children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"text-xs font-medium text-left",children:a.label??a.name})]},a.id)})})]}),C&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Project Memberships"]}),C.current.length>0?(0,b.jsx)("div",{className:"flex flex-col gap-1",children:C.current.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs bg-[var(--app-shell-subtle)] rounded-lg px-3 py-2",children:[(0,b.jsx)(k.FolderOpen,{size:12,className:"text-[var(--muted-foreground)] shrink-0"}),(0,b.jsx)("span",{className:"truncate flex-1",children:a.name}),E&&!a.is_default&&(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-red-500 transition-colors",onClick:()=>E(a.id),title:"Remove from project",children:(0,b.jsx)(d.X,{size:12})})]},a.id))}):(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] italic",children:"Not assigned to any projects"}),C.available.length>0&&D&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:C.available.map(a=>(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 text-[10px] px-2 py-1 rounded-lg border border-dashed border-[var(--border)] text-[var(--muted-foreground)] hover:border-[var(--border)] hover:text-[var(--foreground)] transition-colors",onClick:()=>D(a.id),children:[(0,b.jsx)(j.Plus,{size:10}),a.name]},a.id))})]})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Paste agent JSON here. Switching back to Form or saving will apply valid JSON to the form state."}),(0,b.jsx)("button",{type:"button",onClick:au,className:"px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:"Apply to Form"})]}),(0,b.jsx)("textarea",{value:aa,onChange:a=>{ab(a.target.value),ac&&ad(null)},rows:22,className:"w-full px-4 py-3 bg-[var(--app-shell-bg)] text-[var(--foreground)] border border-[var(--app-shell-border)] rounded-2xl focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:border-[var(--primary)] transition-all font-mono text-xs",spellCheck:!1,autoFocus:!0}),ac&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ac})]}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-4 border-t border-[var(--border)]",children:[(0,b.jsx)("button",{onClick:y,className:"px-6 py-2.5 text-sm font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all",children:"Cancel"}),(0,b.jsx)("button",{onClick:()=>{let a=I.trim(),b=K,c=M.trim(),d=O,e=Q.trim(),f=S.trim(),g=U,h=t(W),i=am,j=z?Array.from(Y):void 0;if("json"===$)try{let k=at(aa);a=k.data.name.trim(),b=k.data.roleId??"",c=(k.data.title??"").trim(),d=k.data.provider,e=k.data.model.trim(),f=k.data.identity.trim(),g=k.data.color??"#6B7280",h=k.data.skills??[],i=k.data.skillBindings??[],j=z?k.projectIds??[]:void 0}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.");return}a&&e&&x({name:a,...aq&&b?{roleId:b}:{},title:c||void 0,provider:d,model:e,identity:f,color:g,skills:h,skillBindings:i},j)},disabled:"form"===$&&(!I.trim()||!Q.trim()),className:"px-8 py-2.5 bg-indigo-600 text-white text-sm font-semibold rounded-xl shadow-[0_4px_12px_rgba(79,70,229,0.3)] hover:bg-indigo-700 active:scale-95 disabled:opacity-50 transition-all font-bold",children:w})]})]})]})})},"agentAvatarUrl",0,q])}];
1
+ module.exports=[517259,562428,a=>{"use strict";var b=a.i(831709);let c=(0,b.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);a.s(["Cpu",0,c],517259);let d=(0,b.default)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);a.s(["Box",0,d],562428)},328400,a=>{"use strict";let b=(0,a.i(831709).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);a.s(["BookOpen",0,b],328400)},8e4,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(824179),e=a.i(252197),f=a.i(517259),g=a.i(562428),h=a.i(328400),i=a.i(724938),j=a.i(353532),k=a.i(89613),l=a.i(811760),m=a.i(804632),n=a.i(627421),o=a.i(86466);a.i(749741),a.i(449140),a.i(214512);var p=a.i(766412);function q(a,b=32,c){let d=`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${b}`;if(!c)return d;let e=c.replace("#","");return`${d}&backgroundColor=${e}`}a.i(529889);let r=["claude","ollama","gemini","codex","zai"];function s(a){return(a??[]).map(a=>a.condition?.trim()?`${a.file} | ${a.condition}`:a.file).join("\n")}function t(a){return a.split("\n").map(a=>a.trim()).filter(Boolean).map(a=>{let[b,...c]=a.split("|");return{file:b.trim(),condition:c.join("|").trim()}}).filter(a=>a.file.length>0)}function u(a,b){return JSON.stringify({name:a.name,...a.roleId?{roleId:a.roleId}:{},...a.role?{role:a.role}:{},provider:a.provider,model:a.model,identity:a.identity,color:a.color??"#6B7280",skills:a.skills??[],skillBindings:a.skillBindings??[],...b?{projectIds:b}:{}},null,2)}a.s(["AgentForm",0,function({title:a,initial:v,submitLabel:w,onSubmit:x,onCancel:y,projects:z,initialProjectIds:A,agentId:B,projectMemberships:C,onAddToProject:D,onRemoveFromProject:E,roleOptions:F,roleLabel:G="Role",onRolePresetChange:H}){let[I,J]=(0,c.useState)(v.name),[K,L]=(0,c.useState)(v.roleId??""),[M,N]=(0,c.useState)(v.role??""),[O,P]=(0,c.useState)(v.provider),[Q,R]=(0,c.useState)(v.model),[S,T]=(0,c.useState)(v.identity),[U,V]=(0,c.useState)(v.color??"#6B7280"),[W,X]=(0,c.useState)(s(v.skills)),[Y,Z]=(0,c.useState)(new Set(A??[])),[$,_]=(0,c.useState)("form"),[aa,ab]=(0,c.useState)(()=>u(v,z?A??[]:void 0)),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)(!1),[ag,ah]=(0,c.useState)([]),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(v.skillBindings??[]),ao=(0,c.useRef)(null),ap=(0,c.useRef)(null),aq=!!(F&&F.length>0),ar=B||I.trim()||v.name||"agent";(0,c.useEffect)(()=>{let a=a=>{ap.current&&!ap.current.contains(a.target)&&y()},b=setTimeout(()=>document.addEventListener("pointerdown",a),0);return()=>{clearTimeout(b),document.removeEventListener("pointerdown",a)}},[ap,y]),(0,c.useEffect)(()=>{if(!ak)return;let a=a=>{ao.current&&!ao.current.contains(a.target)&&al(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[ak]),(0,c.useEffect)(()=>{"form"===$&&ab(u({name:I,...aq&&K?{roleId:K}:{},role:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0))},[$,I,K,aq,M,O,Q,S,U,W,am,Y,z]),(0,c.useEffect)(()=>{if(!ae)return;let a=window.setTimeout(()=>af(!1),1200);return()=>window.clearTimeout(a)},[ae]),(0,c.useEffect)(()=>{let a=!1;return async function(){try{let b=await fetch("/api/skills");if(!b.ok)return;let c=await b.json();if(a)return;let d=Array.isArray(c.skills)?c.skills.filter(a=>!!a&&"object"==typeof a).map(a=>({skillId:String(a.skillId??"").trim(),repo:String(a.repo??"").trim(),name:String(a.name??a.skillId??"").trim()})).filter(a=>a.skillId.length>0&&a.repo.length>0):[];ah(d)}catch{a||ah([])}}(),()=>{a=!0}},[]);let as=(a,b)=>{let c=z?(b??[]).filter(a=>z.some(b=>b.id===a)):void 0;return J(a.name),L(a.roleId??""),N(a.role??""),P(a.provider),R(a.model),T(a.identity),V(a.color??"#6B7280"),X(s(a.skills)),an(a.skillBindings??[]),z&&Z(new Set(c??[])),ab(u(a,z?c??[]:void 0)),ad(null),c},at=a=>{let b=function(a,b){let c;try{c=JSON.parse(a)}catch{throw Error("JSON is invalid.")}if(!c||"object"!=typeof c||Array.isArray(c))throw Error("JSON must be an object.");let d=c,e="string"==typeof d.provider?d.provider:b,f=r.includes(e)?e:b,g=(Array.isArray(d.skills)?d.skills:[]).flatMap(a=>{if("string"==typeof a){let[b,...c]=a.split("|"),d=b.trim();return d?[{file:d,condition:c.join("|").trim()}]:[]}if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.file?a.file.trim():"";return b?[{file:b,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]}),h=Array.isArray(d.projectIds)?d.projectIds.filter(a=>"string"==typeof a&&a.trim().length>0):void 0,i=(Array.isArray(d.skillBindings)?d.skillBindings:[]).flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.repo?a.repo.trim():"",c="string"==typeof a.skillId?a.skillId.trim():"";return b&&c?[{repo:b,skillId:c,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]});return{data:{name:"string"==typeof d.name?d.name:"",roleId:"string"==typeof d.roleId?d.roleId:void 0,role:"string"==typeof d.role?d.role:"",provider:f,model:"string"==typeof d.model?d.model:"",identity:"string"==typeof d.identity?d.identity:"",color:"string"==typeof d.color&&d.color.trim()?d.color:"#6B7280",skills:g,skillBindings:i},projectIds:h}}(a,O),c=as(b.data,b.projectIds);return{...b,projectIds:c}},au=()=>{if("form"!==$)try{at(aa),_("form")}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.")}},av=async()=>{try{await navigator.clipboard.writeText(aa),af(!0)}catch{af(!1)}},aw=(0,c.useMemo)(()=>{let a=ai.trim().toLowerCase();return a?ag.filter(b=>[b.name,b.skillId,b.repo].some(b=>b.toLowerCase().includes(a))).slice(0,50):ag.slice(0,50)},[ag,ai]),ax=(0,c.useMemo)(()=>new Set(am.map(a=>`${a.repo}::${a.skillId}`)),[am]);return(0,b.jsx)("div",{ref:ap,className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/30 backdrop-blur-sm",onKeyDown:a=>{"Escape"===a.key&&y()},children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-[32px] shadow-2xl overflow-hidden w-full max-w-2xl max-h-[90vh] flex flex-col animate-in fade-in zoom-in duration-300",children:[(0,b.jsxs)("div",{className:"px-8 pt-8 pb-4 shrink-0 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1.5",children:[(0,b.jsx)("img",{src:q(ar,64,U),alt:I,className:"w-14 h-14 rounded-full bg-[var(--muted)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Color"}),(0,b.jsx)("input",{type:"color",value:U,onChange:a=>V(a.target.value),className:"w-5 h-5 rounded border border-[var(--border)] cursor-pointer p-0"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-[10px] font-bold tracking-widest text-[var(--muted-foreground)] uppercase",children:a}),(0,b.jsx)("h1",{className:"text-2xl font-semibold mt-1",children:I||"Configure Agent"})]})]}),(0,b.jsx)("button",{onClick:y,className:"p-2 text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] hover:bg-[var(--muted)] rounded-full transition-all",children:(0,b.jsx)(d.X,{size:20})})]}),(0,b.jsxs)("div",{className:"px-8 pb-8 space-y-6 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"inline-flex rounded-xl bg-[var(--muted)] p-1",children:[(0,b.jsx)("button",{type:"button",onClick:au,className:"form"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Form"}),(0,b.jsx)("button",{type:"button",onClick:()=>{ab(u({name:I,...aq&&K?{roleId:K}:{},role:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0)),ad(null),_("json")},className:"json"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"JSON"})]}),"json"===$&&(0,b.jsxs)("button",{type:"button",onClick:av,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:[ae?(0,b.jsx)(n.Check,{size:14,className:"text-emerald-500"}):(0,b.jsx)(m.Copy,{size:14}),ae?"Copied":"Copy"]})]}),"form"===$?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(e.User,{size:16})," Name"]}),(0,b.jsx)("input",{type:"text",value:I,onChange:a=>J(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. Ada, Kai, Sage...",autoFocus:!0})]}),aq?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:G}),(0,b.jsx)(p.default,{options:F??[],value:K||null,onChange:a=>{if(!aq)return;let b={name:I,roleId:a,role:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},c=H?.(a,b);c?as({...c,roleId:a},z?Array.from(Y):void 0):L(a)},placeholder:"Select a role preset..."})]}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:"Role"}),(0,b.jsx)("input",{type:"text",value:M,onChange:a=>N(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. Senior Backend Engineer"})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.Box,{size:16})," Provider"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("select",{value:O,onChange:a=>P(a.target.value),className:"w-full appearance-none px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all pr-10 cursor-pointer",children:[(0,b.jsx)("option",{value:"claude",children:"Claude"}),(0,b.jsx)("option",{value:"ollama",children:"Ollama"}),(0,b.jsx)("option",{value:"gemini",children:"Gemini"}),(0,b.jsx)("option",{value:"codex",children:"Codex"}),(0,b.jsx)("option",{value:"zai",children:"Z.AI"})]}),(0,b.jsx)(l.ChevronDown,{className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)] pointer-events-none",size:16})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(f.Cpu,{size:16})," Model"]}),(0,b.jsx)("input",{type:"text",value:Q,onChange:a=>R(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-sm",placeholder:"e.g. claude-sonnet-4-6"})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.BookOpen,{size:16})," Identity"]}),(0,b.jsx)("div",{className:"border border-[var(--border)] rounded-xl overflow-hidden bg-[var(--app-shell-subtle)] focus-within:ring-2 focus-within:ring-indigo-500/20 focus-within:border-indigo-500 transition-all",children:(0,b.jsx)(o.default,{content:S,onChange:a=>T(a),placeholder:"You are a ..."})}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Identity defines who the agent is. Keep portable knowledge separate below; project and repo knowledge belong on their scoped surfaces."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(i.Sparkles,{size:16})," Portable Knowledge"]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3 space-y-3",children:[(0,b.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Skills Picker"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"Pick a skill here. AGX will install it later only if the run actually needs it."})]})}),ag.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"relative",ref:ao,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>al(a=>!a),className:"w-full flex items-center justify-between px-3 py-2 rounded-xl border border-[var(--border)] bg-[var(--card-bg)] text-sm font-medium hover:border-indigo-500",children:[(0,b.jsx)("span",{className:"truncate text-left",children:"Search and add skills"}),(0,b.jsx)(l.ChevronDown,{size:16,className:`shrink-0 text-[var(--muted-foreground)] transition-transform ${ak?"rotate-180":""}`})]}),ak&&(0,b.jsxs)("div",{className:"absolute left-0 right-0 top-full mt-2 z-30 rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--border)]",children:(0,b.jsx)("input",{type:"text",value:ai,onChange:a=>aj(a.target.value),placeholder:"Search skills",className:"w-full px-3 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500",autoFocus:!0})}),(0,b.jsx)("div",{className:"max-h-64 overflow-y-auto",children:aw.length>0?aw.map(a=>{let c=`${a.repo}::${a.skillId}`,d=ax.has(c);return(0,b.jsx)("button",{type:"button",className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-emerald-50 text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void(an(a=>a.some(a=>a.repo===b&&a.skillId===c)?a.filter(a=>a.repo!==b||a.skillId!==c):[...a,{repo:b,skillId:c}]),aj(""))},children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"font-medium",children:a.name||a.skillId}),(0,b.jsx)("div",{className:"text-[11px] text-[var(--muted-foreground)]",children:a.repo})]}),d&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-emerald-100 px-2 py-0.5 text-[10px] font-semibold text-emerald-700",children:"Added"})]})},c)}):(0,b.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]",children:"No matching skills."})})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[am.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-emerald-50 text-emerald-700 border border-emerald-200 px-2.5 py-1 text-[11px] font-medium",children:[a.skillId,(0,b.jsx)("button",{type:"button",onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void an(a=>a.filter(a=>a.repo!==b||a.skillId!==c))},className:"text-emerald-700/70 hover:text-emerald-900",title:`Remove ${a.skillId}`,children:(0,b.jsx)(d.X,{size:12})})]},`${a.repo}::${a.skillId}`)),0===am.length&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No library skills selected yet."})]})]}):(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No catalog skills available right now."})]}),(0,b.jsx)("textarea",{value:W,onChange:a=>X(a.target.value),rows:5,className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-xs",placeholder:"one/path/to/skill.md\npath/to/skill.md | when coding in TypeScript"}),(0,b.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["Portable agent knowledge only. One reference per line. Use ",(0,b.jsx)("code",{children:"|"})," to add an optional condition."]})]}),z&&z.length>0&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Assign To Projects"]}),(0,b.jsx)("div",{className:"space-y-1 max-h-[160px] overflow-y-auto",children:z.map(a=>{let c=Y.has(a.id);return(0,b.jsxs)("button",{type:"button",className:c?"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors bg-indigo-50 text-indigo-700":"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]",onClick:()=>Z(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("div",{className:c?"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center bg-indigo-600 border-indigo-600":"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center border-[var(--border)]",children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"text-xs font-medium text-left",children:a.label??a.name})]},a.id)})})]}),C&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Project Memberships"]}),C.current.length>0?(0,b.jsx)("div",{className:"flex flex-col gap-1",children:C.current.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs bg-[var(--app-shell-subtle)] rounded-lg px-3 py-2",children:[(0,b.jsx)(k.FolderOpen,{size:12,className:"text-[var(--muted-foreground)] shrink-0"}),(0,b.jsx)("span",{className:"truncate flex-1",children:a.name}),E&&!a.is_default&&(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-red-500 transition-colors",onClick:()=>E(a.id),title:"Remove from project",children:(0,b.jsx)(d.X,{size:12})})]},a.id))}):(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] italic",children:"Not assigned to any projects"}),C.available.length>0&&D&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:C.available.map(a=>(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 text-[10px] px-2 py-1 rounded-lg border border-dashed border-[var(--border)] text-[var(--muted-foreground)] hover:border-[var(--border)] hover:text-[var(--foreground)] transition-colors",onClick:()=>D(a.id),children:[(0,b.jsx)(j.Plus,{size:10}),a.name]},a.id))})]})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Paste agent JSON here. Switching back to Form or saving will apply valid JSON to the form state."}),(0,b.jsx)("button",{type:"button",onClick:au,className:"px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:"Apply to Form"})]}),(0,b.jsx)("textarea",{value:aa,onChange:a=>{ab(a.target.value),ac&&ad(null)},rows:22,className:"w-full px-4 py-3 bg-[var(--app-shell-bg)] text-[var(--foreground)] border border-[var(--app-shell-border)] rounded-2xl focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:border-[var(--primary)] transition-all font-mono text-xs",spellCheck:!1,autoFocus:!0}),ac&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ac})]}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-4 border-t border-[var(--border)]",children:[(0,b.jsx)("button",{onClick:y,className:"px-6 py-2.5 text-sm font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all",children:"Cancel"}),(0,b.jsx)("button",{onClick:()=>{let a=I.trim(),b=K,c=M.trim(),d=O,e=Q.trim(),f=S.trim(),g=U,h=t(W),i=am,j=z?Array.from(Y):void 0;if("json"===$)try{let k=at(aa);a=k.data.name.trim(),b=k.data.roleId??"",c=(k.data.role??"").trim(),d=k.data.provider,e=k.data.model.trim(),f=k.data.identity.trim(),g=k.data.color??"#6B7280",h=k.data.skills??[],i=k.data.skillBindings??[],j=z?k.projectIds??[]:void 0}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.");return}a&&e&&x({name:a,...aq&&b?{roleId:b}:{},role:c||void 0,provider:d,model:e,identity:f,color:g,skills:h,skillBindings:i},j)},disabled:"form"===$&&(!I.trim()||!Q.trim()),className:"px-8 py-2.5 bg-indigo-600 text-white text-sm font-semibold rounded-xl shadow-[0_4px_12px_rgba(79,70,229,0.3)] hover:bg-indigo-700 active:scale-95 disabled:opacity-50 transition-all font-bold",children:w})]})]})]})})},"agentAvatarUrl",0,q])}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_03z24q2._.js.map
@@ -4,8 +4,8 @@ ${a.content}
4
4
 
5
5
  ${b.join("\n\n")}
6
6
 
7
- `},"extractMentionedLinearIssueIds",0,function(a){let b=new Set;return!function a(b,c){if(b)for(let d of b)c(d),a(d.content,c)}(a.content,a=>{if("linearIssueMention"!==a.type)return;let c="string"==typeof a.attrs?.id?a.attrs.id.trim():"";c&&b.add(c)}),Array.from(b)}],200369);var u=a.i(583489);let v=u.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c="parallel"===a.attrs.mode;return["span",(0,u.mergeAttributes)(b,{"data-participant-mention":"","data-id":a.attrs.id,"data-mode":a.attrs.mode,class:c?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${c?"@@":"@"}${a.attrs.name}`]}}),w=u.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,u.mergeAttributes)(b,{"data-project-mention":"","data-id":a.attrs.id,"data-slug":a.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${a.attrs.name}`]}),x=u.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c=a.attrs.relativePath||a.attrs.path;return["span",(0,u.mergeAttributes)(b,{"data-file-mention":"","data-path":a.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${c}`]}}),y=u.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,u.mergeAttributes)(b,{"data-thread-mention":"","data-thread-id":a.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${a.attrs.title}`]}),z=u.Node.create({name:"linearIssueMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},identifier:{default:""},title:{default:""},status:{default:""},url:{default:null}}),parseHTML:()=>[{tag:"span[data-linear-issue-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,u.mergeAttributes)(b,{"data-linear-issue-mention":"","data-id":a.attrs.id,"data-identifier":a.attrs.identifier,class:"composer-pill composer-pill--linear-issue",contenteditable:"false"}),`@${a.attrs.identifier}`]});a.s(["FileMention",0,x,"LinearIssueMention",0,z,"ParticipantMention",0,v,"ProjectMention",0,w,"ThreadMention",0,y],340914);function A(a){switch(a.type.name){case"participantMention":{let b="parallel"===a.attrs.mode?"@@":"@";return`${b}${a.attrs.name}`}case"projectMention":{let b=String(a.attrs.slug??"").trim();if(b)return`@~project:${b}`;return a.attrs.name?`@${a.attrs.name}`:""}case"fileMention":{let b=a.attrs.relativePath||a.attrs.path;return`@${b}`}case"threadMention":{let b=(a.attrs.threadId??"").slice(0,8);return`@#${b}`}case"linearIssueMention":{let b=String(a.attrs.identifier??"").trim();return b?`@${b}`:""}default:return""}}a.s(["serializeToPlainText",0,function(a){if(!a.content)return"";let b=[];for(let c of a.content)c.type,b.push(function(a){if(!a.content)return"";let b="";for(let c of a.content)switch(c.type){case"text":b+=c.text??"";break;case"participantMention":{let a=c.attrs??{},d="parallel"===a.mode?"@@":"@";b+=`${d}${a.name}`;break}case"projectMention":{let a=c.attrs??{},d=String(a.slug??"").trim();d?b+=`@~project:${d}`:a.name&&(b+=`@${a.name}`);break}case"fileMention":{let a=c.attrs??{},d=a.relativePath||a.path;b+=`@${d}`;break}case"threadMention":{let a=((c.attrs??{}).threadId??"").slice(0,8);b+=`@#${a}`;break}case"linearIssueMention":{let a=String((c.attrs??{}).identifier??"").trim();a&&(b+=`@${a}`);break}default:"hardBreak"===c.type&&(b+="\n")}return b}(c));return b.join("\n")}],413169),a.s(["getCurrentParagraphText",0,function(a){let{state:b}=a,{$from:c}=b.selection,d=c.depth,e=-1;for(let a=d;a>=0;a--)if("paragraph"===c.node(a).type.name){e=a;break}if(-1===e)return null;let f=c.node(e),g=c.start(e),h=c.pos-g,i="",j=0,k=!1;return f.forEach((a,b)=>{let c=b+a.nodeSize;if(a.isText){let d=a.text??"";!k&&h>=b&&h<=c&&(j=i.length+(h-b),k=!0),i+=d}else if(a.isAtom){let d=A(a);!k&&h>=b&&h<=c&&(j=i.length+d.length,k=!0),i+=d}}),k||(j=i.length),{text:i,cursorPos:j,blockStart:g}},"plainTextRangeToPos",0,function(a,b,c,d){let{state:e}=a,f=e.doc.resolve(b),g=f.depth,h=null,i=b;for(let a=g;a>=0;a--){let b=f.node(a);if("paragraph"===b.type.name){h=b,i=f.start(a);break}}h||(h=e.doc.resolve(b).parent,i=b);let j=0,k=null,l=null;return(h.forEach((a,b)=>{let e=i+b,f=a.nodeSize;if(a.isText){let b=a.text??"",f=j+b.length;null===k&&c>=j&&c<=f&&(k=e+(c-j)),null===l&&d>=j&&d<=f&&(l=e+(d-j)),j=f}else if(a.isAtom){let b=A(a),g=j+b.length;null===k&&c>=j&&c<=g&&(k=e),null===l&&d>=j&&d<=g&&(l=e+f),j=g}}),null===k&&c>=j&&(k=i+h.content.size),null===l&&d>=j&&(l=i+h.content.size),null===k||null===l)?null:{from:k,to:l}}],719753);var B=a.i(187924),C=a.i(831709);let D=(0,C.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]),E=(0,C.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var F=a.i(985339);a.s(["MentionPopover",0,function({isOpen:a,suggestions:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){let h=(0,b.useRef)([]);if((0,b.useEffect)(()=>{a&&h.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),!a||0===c.length)return null;let i=new Set;return(0,B.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,B.jsx)("div",{role:"listbox",id:e,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:c.map((a,b)=>{let c=b===d,e="project-group"===a.kind?`project-group-${a.project.id}`:"project"===a.kind?`project-${a.project.id}`:"ticket"===a.kind?`ticket-${a.issue.id}`:a.participant.id,j=a.group,k=null;if(j&&!i.has(j)&&(i.add(j),k=(0,B.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:j})),"project-group"===a.kind)return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)(F.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,B.jsx)("span",{className:"font-medium",children:a.project.name}),(0,B.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[a.project.agents.length," agent",1!==a.project.agents.length?"s":""]})]})})]},e);if("project"===a.kind)return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)(D,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,B.jsx)("span",{className:"font-medium",children:a.project.name}),(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.project.slug})]})})]},e);if("ticket"===a.kind)return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"flex items-start gap-2",children:[(0,B.jsx)(E,{className:"mt-0.5 h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,B.jsxs)("span",{className:"min-w-0",children:[(0,B.jsxs)("span",{className:"block font-medium",children:[a.issue.identifier,(0,B.jsx)("span",{className:"ml-2 text-xs text-[var(--muted-foreground)]",children:a.issue.status})]}),(0,B.jsx)("span",{className:"block truncate text-xs text-[var(--muted-foreground)]",children:a.issue.title})]})]})})]},e);let l=a.participant;return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${l.id}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${j?" pl-6":""}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:l.color},"aria-hidden":!0}),(0,B.jsx)("span",{className:"font-medium",children:l.name}),"all"===l.id?(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):l.model&&(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:l.model})]})})]},e)})})})}],704238),a.s(["CommandPopover",0,function({isOpen:a,commands:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){let h=(0,b.useRef)([]);return((0,b.useEffect)(()=>{a&&h.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),a&&0!==c.length)?(0,B.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,B.jsx)("div",{role:"listbox",id:e,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:c.map((a,b)=>{let c=b===d;return(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${a.name.slice(1)}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)("span",{className:"font-medium font-mono",children:a.name}),a.aliases&&a.aliases.length>0&&(0,B.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",a.aliases.join(", "),")"]}),(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.description})]})},a.name)})})}):null}],589609);var G=a.i(349692),H=a.i(693896);let I=(0,C.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var J=a.i(157633),K=a.i(89613);function L({suggestion:a,isActive:b,optionId:c,onSelect:d,onAttachContents:e,itemRef:f}){let g="folder"===a.type,h="contents"===a.attachMode,i=function(a){if(!a)return null;let b=Math.floor((Date.now()-a)/864e5);return 0===b?"Today":1===b?"Yesterday":b<7?`${b}d ago`:b<30?`${Math.floor(b/7)}w ago`:b<365?`${Math.floor(b/30)}mo ago`:`${Math.floor(b/365)}y ago`}(a.modifiedAt),j=a.relativePath??a.path;return(0,B.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${b?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,B.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:g?b?(0,B.jsx)(K.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,B.jsx)(J.Folder,{className:"h-4 w-4 text-amber-400"}):(0,B.jsx)(I,{className:"h-4 w-4"})}),(0,B.jsxs)("button",{type:"button",role:"option",id:c,"aria-selected":b,ref:f,className:"min-w-0 flex-1 text-left",onMouseDown:a=>a.preventDefault(),onClick:()=>d(a),tabIndex:-1,children:[(0,B.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,B.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:j}),i&&(0,B.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:i})]}),g&&a.manifest&&(0,B.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[a.manifest.childCount," items ·"," ",a.manifest.sizeSummary,h?(0,B.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,B.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),g&&!h&&(0,B.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${j}`,onMouseDown:a=>a.preventDefault(),onClick:()=>e(a),tabIndex:-1,children:"Attach contents"}),g&&h&&(0,B.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var M=a.i(161958);a.s(["FileMentionPopover",0,function({isOpen:a,suggestions:c,activeIndex:d,isLoading:e,error:f,listboxId:g,optionIdPrefix:h,onSelect:i,onAttachContents:j}){let k=(0,b.useRef)([]),l=(0,b.useRef)(null),[m,n]=(0,b.useState)(!1);if((0,b.useEffect)(()=>{a&&k.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),(0,b.useEffect)(()=>{a&&l.current&&n(l.current.getBoundingClientRect().top<280)},[a]),!a)return null;let o=c.length>0?`${h}-${d}`:void 0;return(0,B.jsx)("div",{ref:l,className:`${m?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${M.default.popover}`,children:(0,B.jsxs)("div",{role:"listbox",id:g,"aria-label":"File suggestions","aria-activedescendant":o,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[f&&!e&&(0,B.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,B.jsx)(H.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,B.jsx)("span",{children:f})]}),!f&&e&&0===c.length&&(0,B.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,B.jsx)(G.Loader2,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,B.jsx)("span",{children:"Searching…"})]}),!f&&!e&&0===c.length&&(0,B.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!f&&e&&c.length>0&&(0,B.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,B.jsx)(G.Loader2,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,B.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),c.length>0&&c.map((a,b)=>(0,B.jsx)(L,{suggestion:a,isActive:b===d,optionId:`${h}-${b}`,onSelect:i,onAttachContents:j,itemRef:a=>{k.current[b]=a}},a.path))]})})}],119616);var N=a.i(737313),O=a.i(820859);a.s(["ThreadMentionPopover",0,function({isOpen:a,suggestions:b,activeIndex:c,listboxId:d,optionIdPrefix:e,onSelect:f}){return a&&0!==b.length?(0,B.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:d,children:[(0,B.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,B.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:b.map((a,b)=>{let d=b===c;return(0,B.jsxs)("button",{role:"option",id:`${e}-${b}`,"aria-selected":d,onClick:()=>f(a),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${d?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,B.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${d?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,B.jsx)(N.MessageSquare,{size:14,strokeWidth:2.5})}),(0,B.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,B.jsx)("div",{className:`text-sm font-semibold truncate ${d?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:a.title}),(0,B.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,B.jsxs)("span",{className:`text-xs ${d?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[a.replies.length," replies"]}),(0,B.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,B.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,B.jsx)(O.Clock,{size:10}),function(a){if(!a)return"";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return d<24?`${d}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(a.lastActivityAt)]})]})]})]},a.rootMessageId)})})]}):null}],745975);var P=a.i(824179),Q=a.i(864061),R=a.i(552605);let S=(0,C.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);a.s(["AttachmentTray",0,function({attachments:a,onRemove:b,onRetry:c}){return 0===a.length?null:(0,B.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:a.map(a=>{var d;let e=a.mimeType.startsWith("image/"),f="failed"===a.status,g="uploading"===a.status;return(0,B.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${f?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[e&&a.previewUrl?(0,B.jsx)("img",{src:a.previewUrl,alt:a.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,B.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:e?(0,B.jsx)(S,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,B.jsx)(R.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,B.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,B.jsx)("div",{className:"truncate font-medium",children:a.filename}),f&&a.error?(0,B.jsx)("div",{className:"truncate text-[10px] text-red-500",children:a.error}):(0,B.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(d=a.size)<1024?`${d}B`:d<1048576?`${(d/1024).toFixed(0)}KB`:`${(d/1048576).toFixed(1)}MB`})]}),g&&(0,B.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,B.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${a.progress}%`}})}),(0,B.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[f&&(0,B.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,B.jsx)(Q.RefreshCw,{className:"w-3 h-3"})}),(0,B.jsx)("button",{type:"button",onClick:()=>b(a.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,B.jsx)(P.X,{className:"w-3 h-3"})})]})]},a.id)})})}],669417),a.s(["ComposerDropZone",0,function({onDrop:a,children:c}){let[d,e]=(0,b.useState)(!1),f={current:0},g=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),f.current++,a.dataTransfer.types.includes("Files")&&e(!0)},[]),h=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),i=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),f.current--,0===f.current&&e(!1)},[]),j=(0,b.useCallback)(b=>{b.preventDefault(),b.stopPropagation(),f.current=0,e(!1),b.dataTransfer.files.length>0&&a(b.dataTransfer.files)},[a]);return(0,B.jsxs)("div",{className:"relative",onDragEnter:g,onDragOver:h,onDragLeave:i,onDrop:j,children:[c,d&&(0,B.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,B.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}],667494);let T=(0,C.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["Paperclip",0,T],514840)},915534,a=>{"use strict";let b=(0,a.i(831709).default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);a.s(["Rocket",0,b],915534)},689882,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(313872),e=a.i(628977),f=a.i(609345),g=a.i(981717),h=a.i(29714),i=a.i(279384),j=a.i(950364),k=a.i(177521),l=a.i(924434),m=a.i(45813),n=a.i(95348),o=a.i(382460),p=a.i(200369),q=a.i(785061),r=a.i(677955),s=a.i(340914),t=a.i(413169),u=a.i(719753),v=a.i(704238),w=a.i(589609),x=a.i(119616),y=a.i(745975),z=a.i(669417),A=a.i(667494),B=a.i(514840),C=a.i(915534),D=a.i(736868),E=a.i(811760),F=a.i(824179);function G(a,b,c,d,e){if(!a)return;let f=(0,u.plainTextRangeToPos)(a,b,c,d);f&&a.chain().focus().deleteRange(f).insertContent(e).insertContent(" ").run()}a.s(["Composer",0,function({onSend:a,onStop:H,loading:I,activityStatus:J,sendInterruptsBusy:K=!1,participants:L,projects:M=[],projectGroups:N=[],projectSlug:O,messages:P=[],commands:Q,placeholder:R="Message — @name to mention, /search, /summarize",workspaceRoots:S=[],onConfigureRoots:T,pendingThreadInsert:U,onClearPendingThread:V,autoMode:W=!1,onAutoModeChange:X,repos:Y=[],selectedRepoIds:Z,onRepoSelectionChange:$,initialPinnedParticipantId:_}){let aa,ab,ac,ad=J??(I?"working":"ready"),ae="ready"!==ad,[af,ag]=(0,c.useState)(_??null),[ah,ai]=(0,c.useState)(new Set),aj=Z??ah,ak=(0,c.useRef)(aj);ak.current=aj;let al=(0,c.useCallback)(a=>{let b="function"==typeof a?a(ak.current):a;$?$(b):ai(b)},[$]),[am,an]=(0,c.useState)(!1),ao=(0,c.useRef)(null),ap=(0,c.useRef)(null),aq=(0,c.useRef)(!1),ar=(0,c.useCallback)(()=>{ap.current?.click()},[]),[as,at]=(0,c.useState)([]),{issues:au}=(0,n.useLinearIssueMentions)({projectSlug:O}),av=(0,g.useMentionAutocomplete)({participants:L,projectGroups:N,projects:M,linearIssues:au,maxSuggestions:8}),aw=(0,h.useCommandAutocomplete)({commands:Q,maxSuggestions:6}),ax=(0,j.useFileMention)({maxSuggestions:8}),ay=(0,k.useThreadMention)({messages:P,maxSuggestions:8}),az=(0,i.useAttachments)(),aA=(0,l.useComposerAttachments)(),aB=(0,m.useComposerHistory)();(0,c.useEffect)(()=>{af&&!L.some(a=>a.id===af)&&ag(null)},[L,af]),(0,c.useEffect)(()=>{if(!am)return;let a=a=>{ao.current&&!ao.current.contains(a.target)&&an(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[am]),(0,c.useEffect)(()=>{if(null!=Z||0===ah.size)return;let a=new Set(Y.map(a=>a.id)),b=new Set([...ah].filter(b=>a.has(b)));b.size<ah.size&&ai(b)},[Y,Z,ah]);let aC=(0,d.useEditor)({immediatelyRender:!1,extensions:[e.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),f.default.configure({placeholder:R}),s.ParticipantMention,s.ProjectMention,s.FileMention,s.ThreadMention,s.LinearIssueMention],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handleDOMEvents:{compositionstart:()=>(aq.current=!0,av.startComposition(),!1),compositionend:(a,b)=>(aq.current=!1,setTimeout(()=>{if(!aC)return;let a=(0,u.getCurrentParagraphText)(aC);a&&av.endComposition(a.text,a.cursorPos)},0),!1)},handleKeyDown:(a,b)=>{if("Tab"===b.key||"Enter"===b.key&&!b.shiftKey){if(aw.isOpen&&aw.filteredCommands.length>0){b.preventDefault();let a=aw.filteredCommands[aw.activeIndex];return a&&aJ(a),!0}if(ax.isOpen&&ax.suggestions.length>0){b.preventDefault();let a=ax.suggestions[ax.activeIndex];return a&&("folder"===a.type?aH(a):aG(a)),!0}if(ay.isOpen&&ay.suggestions.length>0){b.preventDefault();let a=ay.suggestions[ay.activeIndex];return a&&aI(a),!0}if(av.isOpen&&av.filteredSuggestions.length>0){b.preventDefault();let a=av.filteredSuggestions[av.activeIndex];return a&&aF(a),!0}}let c={key:b.key,preventDefault:()=>b.preventDefault()};if(aw.isOpen&&aw.handleKeyDown(c)||ax.isOpen&&ax.handleKeyDown(c)||ay.isOpen&&ay.handleKeyDown(c)||av.handleKeyDown(c))return!0;if(("ArrowUp"===b.key||"ArrowDown"===b.key)&&!av.isOpen&&!aw.isOpen&&!ax.isOpen&&!ay.isOpen){let a=(0,t.serializeToPlainText)(aC.getJSON()).trim(),{state:c}=aC.view,d="ArrowUp"===b.key,e=d?c.selection.from<=1:c.selection.to>=c.doc.content.size-1,f=aB.navigate(d?"up":"down",a,e);if(null!==f)return b.preventDefault(),aC.commands.setContent(f),aC.commands.focus("end"),!0}return"Enter"===b.key&&!b.shiftKey&&(b.preventDefault(),aK(),!0)}},onUpdate:({editor:a})=>{if(aq.current)return;-1!==aB.historyIndex&&aB.resetNavigation();let b=(0,u.getCurrentParagraphText)(a);b&&(av.handleInput(b.text,b.cursorPos),aw.handleInput(b.text,b.cursorPos),ax.handleInput(b.text,b.cursorPos),ay.handleInput(b.text,b.cursorPos))},onBlur:()=>{av.close(),aw.close(),ax.close(),ay.close()}});(0,c.useEffect)(()=>{if(!U||!aC)return;let{title:a,threadId:b,messages:c}=U;aC.chain().focus().insertContent({type:"threadMention",attrs:{threadId:b,title:a}}).insertContent(" ").run();let d=c[0];if(d){let e={rootMessageId:b,title:a,rootMessage:d,replies:c.slice(1),participantIds:[...new Set(c.map(a=>a.participantId||"user"))],lastActivityAt:Math.max(...c.map(a=>a.timestamp))};ay.exportDiscussion(e).then(a=>at(b=>[...b,a])).catch(a=>console.error("Failed to export discussion for Add to chat:",a))}V?.()},[U]);let aD=(0,c.useCallback)(()=>{if(!aC)return;let a=(0,u.getCurrentParagraphText)(aC);a&&av.handleInput(a.text,a.cursorPos)},[aC,av]),aE=(0,c.useCallback)(a=>{let{clipboardData:b}=a,c=(0,r.getClipboardAttachmentFiles)(b);if(c.length>0){a.preventDefault(),a.stopPropagation(),az.stageFiles(c);return}let d="u">typeof navigator?navigator.clipboard:void 0;(0,r.clipboardMayContainImageAttachments)(b)&&"function"==typeof d?.read&&(a.preventDefault(),a.stopPropagation(),(0,r.readClipboardAttachmentFiles)(b,d).then(a=>{a.length>0&&az.stageFiles(a)}).catch(a=>{console.error("Failed to read pasted clipboard attachments:",a)}))},[az]),aF=(0,c.useCallback)(a=>{if(!aC)return;let b=av.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aC);if(!c)return;let d=b.text.startsWith("@@"),e="project-group"===a.kind?{type:"participantMention",attrs:{id:a.project.id,name:a.project.name,mode:d?"parallel":"sequential",kind:"project"}}:"project"===a.kind?{type:"projectMention",attrs:{id:a.project.id,slug:a.project.slug,name:a.project.name}}:"ticket"===a.kind?{type:"linearIssueMention",attrs:{id:a.issue.id,identifier:a.issue.identifier,title:a.issue.title,status:a.issue.status,url:a.issue.url}}:{type:"participantMention",attrs:{id:a.participant.id,name:a.participant.name,mode:d?"parallel":"sequential",kind:"agent"}};G(aC,c.blockStart,b.startIndex,b.endIndex,e),av.close()},[aC,av]),aG=(0,c.useCallback)(a=>{if(!aC)return;let b=ax.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aC);if(!c)return;let d={type:"fileMention",attrs:{path:a.path,relativePath:a.relativePath??a.path,trigger:ax.token?.trigger??"@/",attachMode:a.attachMode}};G(aC,c.blockStart,b.startIndex,b.endIndex,d),aA.addFilePath(a.path,a.relativePath??a.path,a.attachMode)},[aC,ax,aA]),aH=(0,c.useCallback)(a=>{if(!aC)return;let b=(0,u.getCurrentParagraphText)(aC);if(!b)return;let c=ax.drillDown(a);if(!c)return;let d=(0,u.plainTextRangeToPos)(aC,b.blockStart,c.startIndex,c.endIndex);d&&aC.chain().focus().deleteRange(d).insertContent(c.text).run()},[aC,ax]),aI=(0,c.useCallback)(async a=>{if(!aC)return;let b=ay.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aC);if(!c)return;let d={type:"threadMention",attrs:{threadId:a.rootMessageId,title:a.title}};G(aC,c.blockStart,b.startIndex,b.endIndex,d);try{let b=await ay.exportDiscussion(a);at(a=>[...a,b])}catch(a){console.error("Failed to export discussion:",a)}},[aC,ay]),aJ=(0,c.useCallback)(a=>{aw.selectCommand(a),aC&&aC.commands.clearContent()},[aw,aC]),aK=(0,c.useCallback)(async()=>{if(!aC)return;let b=aC.getJSON(),c=(0,t.serializeToPlainText)(b).trim();if(!c&&!az.hasUploaded&&!aA.hasFilePaths||!az.canSend)return;if(c){let a=Q.find(a=>a.name===c||a.aliases?.some(a=>`/${a}`===c));if(a){a.execute(),aC.commands.clearContent(),aw.close(),av.close();return}}let d=c||"(attached files)",e=[];if(aj.size>0){let a=Y.filter(a=>aj.has(a.id));if(a.length>0){let b=a.map(a=>{let b=[a.name];return a.path&&b.push(`path: ${a.path}`),a.notes&&b.push(a.notes),`- ${b.join(" | ")}`}).join("\n");e.push(`Focused repos (the user is specifically talking about these repositories):
8
- ${b}`)}}if(as.length>0){let a=as.map(a=>`- "${a.title}" — ${a.summary} (full transcript: ${a.filePath})`).join("\n");e.push(`Referenced threads:
9
- ${a}`)}if(aA.hasFilePaths){let a=await (0,o.buildAgentContext)(aA.filePaths);a.contextPrefix&&e.push(a.contextPrefix.trimEnd())}let f=(0,p.extractMentionedLinearIssueIds)(b);if(f.length>0)try{let a=await fetch("/api/linear/issues/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issueIds:f})});if(!a.ok)throw Error(`Failed to load issue context: ${a.status}`);let b=await a.json().catch(()=>({})),c=Array.isArray(b.issues)?b.issues:[],d=(0,p.buildLinearIssueContextPrefix)(c);d&&e.push(d.trimEnd())}catch(a){console.error("Failed to load Linear issue mention context:",a)}let g=e.length>0?e.join("\n\n")+"\n\n":void 0,h=(0,q.extractComposerRouting)(b,af);c&&aB.pushEntry(c);let i=az.attachmentIds.length>0?az.attachmentIds:void 0,j=i?az.getAttachmentMetas():void 0;a(d,10,i,j,af??void 0,g,h),aC.commands.clearContent(),at([]),az.clear(),aA.clearFilePaths(),av.close(),aw.close(),ay.close()},[aC,av,aw,Q,a,az,aA,as,ay,aB,aj,Y,af]),aL=av.isOpen&&av.filteredSuggestions.length>0;aw.isOpen&&aw.filteredCommands.length,ax.isOpen&&ax.suggestions.length,ay.isOpen&&ay.suggestions.length,aL&&av.filteredSuggestions[av.activeIndex];let aM=az.staged.some(a=>"uploading"===a.status),aN=!aC||aC.isEmpty,aO=L.find(a=>a.id===af)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(A.ComposerDropZone,{onDrop:az.stageFiles,children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-surface)] border border-[var(--app-shell-border)] shadow-[var(--shadow-sm)] focus-within:border-[var(--app-shell-border-strong)] focus-within:ring-1 focus-within:ring-[var(--ring)] transition-all flex flex-col rounded-2xl",children:[X&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${W?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${W?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:W?"shipBgSweep 4s ease-in-out infinite":"none"}}),W&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${W?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:W?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(C.Rocket,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${W?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${W?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${W?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:W?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>X(!W),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${W?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${W?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[az.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(z.AttachmentTray,{attachments:az.staged,onRemove:az.remove,onRetry:az.retry})}),(0,b.jsxs)("div",{className:"p-2 relative",children:[(0,b.jsx)("input",{ref:ap,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(az.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:aD,onPasteCapture:aE,children:[(0,b.jsx)(d.EditorContent,{editor:aC,className:"composer-editor"}),(0,b.jsx)(v.MentionPopover,{isOpen:av.isOpen&&!aw.isOpen,suggestions:av.filteredSuggestions,activeIndex:av.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:aF}),(0,b.jsx)(w.CommandPopover,{isOpen:aw.isOpen,commands:aw.filteredCommands,activeIndex:aw.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:aJ}),(0,b.jsx)(x.FileMentionPopover,{isOpen:ax.isOpen,suggestions:ax.suggestions,activeIndex:ax.activeIndex,isLoading:ax.isLoading,error:ax.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?aH(a):aG(a)},onAttachContents:ax.onAttachContents}),(0,b.jsx)(y.ThreadMentionPopover,{isOpen:ay.isOpen&&!aw.isOpen&&!ax.isOpen,suggestions:ay.suggestions,activeIndex:ay.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:aI})]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--app-shell-border)] transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{type:"button",onClick:ar,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,b.jsx)(B.Paperclip,{className:"h-4 w-4",strokeWidth:1.75})}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===L.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):L.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":af===a.id,onClick:()=>ag(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),ag(b=>b===a.id?null:a.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${af===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),ae&&(0,b.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===ad?"bg-amber-400":"bg-emerald-400"}`})]},a.id))})]}),aO&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:aO.name})]})]}),Y.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)("div",{className:"relative",ref:ao,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>an(a=>!a),className:"composer-repo-select-trigger","aria-haspopup":"listbox","aria-expanded":am,children:[(0,b.jsx)(D.FolderGit2,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Folders"}),(0,b.jsx)(E.ChevronDown,{className:`h-3 w-3 transition-transform ${am?"rotate-180":""}`})]}),am&&(0,b.jsx)("div",{className:"composer-repo-dropdown",role:"listbox","aria-multiselectable":"true",children:Y.map(a=>{let c=aj.has(a.id);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":c,className:`composer-repo-dropdown__item ${c?"composer-repo-dropdown__item--selected":""}`,onClick:()=>al(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("span",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${c?"bg-emerald-500 border-emerald-500 text-white":"border-[var(--app-shell-border-strong)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)})})]}),(ab=(aa=Y.filter(a=>aj.has(a.id))).slice(0,1),ac=aa.length-1,(0,b.jsxs)(b.Fragment,{children:[ab.map(a=>(0,b.jsxs)("span",{className:"composer-repo-pill",title:a.path||a.name,children:[(0,b.jsx)(D.FolderGit2,{className:"h-3 w-3 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{className:"composer-repo-pill__name",children:a.name}),(0,b.jsx)("button",{type:"button",className:"composer-repo-pill__remove",onClick:()=>al(b=>{let c=new Set(b);return c.delete(a.id),c}),"aria-label":`Remove ${a.name}`,children:(0,b.jsx)(F.X,{className:"h-3 w-3"})})]},a.id)),ac>0&&(0,b.jsxs)("span",{className:"composer-repo-pill composer-repo-pill--overflow",children:["+",ac]})]}))]})]})]}),ae&&!K?(0,b.jsx)("button",{type:"button",onClick:H,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,b.jsxs)("button",{type:"button",onClick:aK,disabled:aN&&!az.hasUploaded&&!aA.hasFilePaths||aM,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===ad?"bg-emerald-400 animate-pulse":"queued"===ad?"bg-amber-400":"bg-emerald-400"}`}),(0,b.jsx)("span",{children:"working"===ad?"Working":"queued"===ad?"Queued":"Ready"})]}),(0,b.jsxs)("span",{children:["Press ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}])}];
7
+ `},"extractMentionedLinearIssueIds",0,function(a){let b=new Set;return!function a(b,c){if(b)for(let d of b)c(d),a(d.content,c)}(a.content,a=>{if("linearIssueMention"!==a.type)return;let c="string"==typeof a.attrs?.id?a.attrs.id.trim():"";c&&b.add(c)}),Array.from(b)}],200369);var u=a.i(583489);let v=u.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c="parallel"===a.attrs.mode;return["span",(0,u.mergeAttributes)(b,{"data-participant-mention":"","data-id":a.attrs.id,"data-mode":a.attrs.mode,class:c?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${c?"@@":"@"}${a.attrs.name}`]}}),w=u.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,u.mergeAttributes)(b,{"data-project-mention":"","data-id":a.attrs.id,"data-slug":a.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${a.attrs.name}`]}),x=u.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c=a.attrs.relativePath||a.attrs.path;return["span",(0,u.mergeAttributes)(b,{"data-file-mention":"","data-path":a.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${c}`]}}),y=u.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,u.mergeAttributes)(b,{"data-thread-mention":"","data-thread-id":a.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${a.attrs.title}`]}),z=u.Node.create({name:"linearIssueMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},identifier:{default:""},title:{default:""},status:{default:""},url:{default:null}}),parseHTML:()=>[{tag:"span[data-linear-issue-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,u.mergeAttributes)(b,{"data-linear-issue-mention":"","data-id":a.attrs.id,"data-identifier":a.attrs.identifier,class:"composer-pill composer-pill--linear-issue",contenteditable:"false"}),`@${a.attrs.identifier}`]});a.s(["FileMention",0,x,"LinearIssueMention",0,z,"ParticipantMention",0,v,"ProjectMention",0,w,"ThreadMention",0,y],340914);function A(a){switch(a.type.name){case"participantMention":{let b="parallel"===a.attrs.mode?"@@":"@";return`${b}${a.attrs.name}`}case"projectMention":{let b=String(a.attrs.slug??"").trim();if(b)return`@~project:${b}`;return a.attrs.name?`@${a.attrs.name}`:""}case"fileMention":{let b=a.attrs.relativePath||a.attrs.path;return`@${b}`}case"threadMention":{let b=(a.attrs.threadId??"").slice(0,8);return`@#${b}`}case"linearIssueMention":{let b=String(a.attrs.identifier??"").trim();return b?`@${b}`:""}default:return""}}a.s(["serializeToPlainText",0,function(a){if(!a.content)return"";let b=[];for(let c of a.content)c.type,b.push(function(a){if(!a.content)return"";let b="";for(let c of a.content)switch(c.type){case"text":b+=c.text??"";break;case"participantMention":{let a=c.attrs??{},d="parallel"===a.mode?"@@":"@";b+=`${d}${a.name}`;break}case"projectMention":{let a=c.attrs??{},d=String(a.slug??"").trim();d?b+=`@~project:${d}`:a.name&&(b+=`@${a.name}`);break}case"fileMention":{let a=c.attrs??{},d=a.relativePath||a.path;b+=`@${d}`;break}case"threadMention":{let a=((c.attrs??{}).threadId??"").slice(0,8);b+=`@#${a}`;break}case"linearIssueMention":{let a=String((c.attrs??{}).identifier??"").trim();a&&(b+=`@${a}`);break}default:"hardBreak"===c.type&&(b+="\n")}return b}(c));return b.join("\n")}],413169),a.s(["getCurrentParagraphText",0,function(a){let{state:b}=a,{$from:c}=b.selection,d=c.depth,e=-1;for(let a=d;a>=0;a--)if("paragraph"===c.node(a).type.name){e=a;break}if(-1===e)return null;let f=c.node(e),g=c.start(e),h=c.pos-g,i="",j=0,k=!1;return f.forEach((a,b)=>{let c=b+a.nodeSize;if(a.isText){let d=a.text??"";!k&&h>=b&&h<=c&&(j=i.length+(h-b),k=!0),i+=d}else if(a.isAtom){let d=A(a);!k&&h>=b&&h<=c&&(j=i.length+d.length,k=!0),i+=d}}),k||(j=i.length),{text:i,cursorPos:j,blockStart:g}},"plainTextRangeToPos",0,function(a,b,c,d){let{state:e}=a,f=e.doc.resolve(b),g=f.depth,h=null,i=b;for(let a=g;a>=0;a--){let b=f.node(a);if("paragraph"===b.type.name){h=b,i=f.start(a);break}}h||(h=e.doc.resolve(b).parent,i=b);let j=0,k=null,l=null;return(h.forEach((a,b)=>{let e=i+b,f=a.nodeSize;if(a.isText){let b=a.text??"",f=j+b.length;null===k&&c>=j&&c<=f&&(k=e+(c-j)),null===l&&d>=j&&d<=f&&(l=e+(d-j)),j=f}else if(a.isAtom){let b=A(a),g=j+b.length;null===k&&c>=j&&c<=g&&(k=e),null===l&&d>=j&&d<=g&&(l=e+f),j=g}}),null===k&&c>=j&&(k=i+h.content.size),null===l&&d>=j&&(l=i+h.content.size),null===k||null===l)?null:{from:k,to:l}}],719753);var B=a.i(187924),C=a.i(831709);let D=(0,C.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]),E=(0,C.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var F=a.i(985339);a.s(["MentionPopover",0,function({isOpen:a,suggestions:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){let h=(0,b.useRef)([]);if((0,b.useEffect)(()=>{a&&h.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),!a||0===c.length)return null;let i=new Set;return(0,B.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,B.jsx)("div",{role:"listbox",id:e,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:c.map((a,b)=>{let c=b===d,e="project-group"===a.kind?`project-group-${a.project.id}`:"project"===a.kind?`project-${a.project.id}`:"ticket"===a.kind?`ticket-${a.issue.id}`:a.participant.id,j=a.group,k=null;if(j&&!i.has(j)&&(i.add(j),k=(0,B.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:j})),"project-group"===a.kind)return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)(F.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,B.jsx)("span",{className:"font-medium",children:a.project.name}),(0,B.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[a.project.agents.length," agent",1!==a.project.agents.length?"s":""]})]})})]},e);if("project"===a.kind)return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)(D,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,B.jsx)("span",{className:"font-medium",children:a.project.name}),(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.project.slug})]})})]},e);if("ticket"===a.kind)return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"flex items-start gap-2",children:[(0,B.jsx)(E,{className:"mt-0.5 h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,B.jsxs)("span",{className:"min-w-0",children:[(0,B.jsxs)("span",{className:"block font-medium",children:[a.issue.identifier,(0,B.jsx)("span",{className:"ml-2 text-xs text-[var(--muted-foreground)]",children:a.issue.status})]}),(0,B.jsx)("span",{className:"block truncate text-xs text-[var(--muted-foreground)]",children:a.issue.title})]})]})})]},e);let l=a.participant;return(0,B.jsxs)("div",{children:[k,(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${l.id}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${j?" pl-6":""}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:l.color},"aria-hidden":!0}),(0,B.jsx)("span",{className:"font-medium",children:l.name}),"all"===l.id?(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):l.model&&(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:l.model})]})})]},e)})})})}],704238),a.s(["CommandPopover",0,function({isOpen:a,commands:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){let h=(0,b.useRef)([]);return((0,b.useEffect)(()=>{a&&h.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),a&&0!==c.length)?(0,B.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,B.jsx)("div",{role:"listbox",id:e,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:c.map((a,b)=>{let c=b===d;return(0,B.jsx)("button",{type:"button",role:"option",id:`${f}-${a.name.slice(1)}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>g(a),children:(0,B.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,B.jsx)("span",{className:"font-medium font-mono",children:a.name}),a.aliases&&a.aliases.length>0&&(0,B.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",a.aliases.join(", "),")"]}),(0,B.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.description})]})},a.name)})})}):null}],589609);var G=a.i(349692),H=a.i(693896);let I=(0,C.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var J=a.i(157633),K=a.i(89613);function L({suggestion:a,isActive:b,optionId:c,onSelect:d,onAttachContents:e,itemRef:f}){let g="folder"===a.type,h="contents"===a.attachMode,i=function(a){if(!a)return null;let b=Math.floor((Date.now()-a)/864e5);return 0===b?"Today":1===b?"Yesterday":b<7?`${b}d ago`:b<30?`${Math.floor(b/7)}w ago`:b<365?`${Math.floor(b/30)}mo ago`:`${Math.floor(b/365)}y ago`}(a.modifiedAt),j=a.relativePath??a.path;return(0,B.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${b?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,B.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:g?b?(0,B.jsx)(K.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,B.jsx)(J.Folder,{className:"h-4 w-4 text-amber-400"}):(0,B.jsx)(I,{className:"h-4 w-4"})}),(0,B.jsxs)("button",{type:"button",role:"option",id:c,"aria-selected":b,ref:f,className:"min-w-0 flex-1 text-left",onMouseDown:a=>a.preventDefault(),onClick:()=>d(a),tabIndex:-1,children:[(0,B.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,B.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:j}),i&&(0,B.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:i})]}),g&&a.manifest&&(0,B.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[a.manifest.childCount," items ·"," ",a.manifest.sizeSummary,h?(0,B.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,B.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),g&&!h&&(0,B.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${j}`,onMouseDown:a=>a.preventDefault(),onClick:()=>e(a),tabIndex:-1,children:"Attach contents"}),g&&h&&(0,B.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var M=a.i(161958);a.s(["FileMentionPopover",0,function({isOpen:a,suggestions:c,activeIndex:d,isLoading:e,error:f,listboxId:g,optionIdPrefix:h,onSelect:i,onAttachContents:j}){let k=(0,b.useRef)([]),l=(0,b.useRef)(null),[m,n]=(0,b.useState)(!1);if((0,b.useEffect)(()=>{a&&k.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),(0,b.useEffect)(()=>{a&&l.current&&n(l.current.getBoundingClientRect().top<280)},[a]),!a)return null;let o=c.length>0?`${h}-${d}`:void 0;return(0,B.jsx)("div",{ref:l,className:`${m?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${M.default.popover}`,children:(0,B.jsxs)("div",{role:"listbox",id:g,"aria-label":"File suggestions","aria-activedescendant":o,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[f&&!e&&(0,B.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,B.jsx)(H.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,B.jsx)("span",{children:f})]}),!f&&e&&0===c.length&&(0,B.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,B.jsx)(G.Loader2,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,B.jsx)("span",{children:"Searching…"})]}),!f&&!e&&0===c.length&&(0,B.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!f&&e&&c.length>0&&(0,B.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,B.jsx)(G.Loader2,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,B.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),c.length>0&&c.map((a,b)=>(0,B.jsx)(L,{suggestion:a,isActive:b===d,optionId:`${h}-${b}`,onSelect:i,onAttachContents:j,itemRef:a=>{k.current[b]=a}},a.path))]})})}],119616);var N=a.i(737313),O=a.i(820859);a.s(["ThreadMentionPopover",0,function({isOpen:a,suggestions:b,activeIndex:c,listboxId:d,optionIdPrefix:e,onSelect:f}){return a&&0!==b.length?(0,B.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:d,children:[(0,B.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,B.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:b.map((a,b)=>{let d=b===c;return(0,B.jsxs)("button",{role:"option",id:`${e}-${b}`,"aria-selected":d,onClick:()=>f(a),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${d?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,B.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${d?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,B.jsx)(N.MessageSquare,{size:14,strokeWidth:2.5})}),(0,B.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,B.jsx)("div",{className:`text-sm font-semibold truncate ${d?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:a.title}),(0,B.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,B.jsxs)("span",{className:`text-xs ${d?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[a.replies.length," replies"]}),(0,B.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,B.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,B.jsx)(O.Clock,{size:10}),function(a){if(!a)return"";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return d<24?`${d}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(a.lastActivityAt)]})]})]})]},a.rootMessageId)})})]}):null}],745975);var P=a.i(824179),Q=a.i(864061),R=a.i(552605);let S=(0,C.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);a.s(["AttachmentTray",0,function({attachments:a,onRemove:b,onRetry:c}){return 0===a.length?null:(0,B.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:a.map(a=>{var d;let e=a.mimeType.startsWith("image/"),f="failed"===a.status,g="uploading"===a.status;return(0,B.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${f?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[e&&a.previewUrl?(0,B.jsx)("img",{src:a.previewUrl,alt:a.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,B.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:e?(0,B.jsx)(S,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,B.jsx)(R.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,B.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,B.jsx)("div",{className:"truncate font-medium",children:a.filename}),f&&a.error?(0,B.jsx)("div",{className:"truncate text-[10px] text-red-500",children:a.error}):(0,B.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(d=a.size)<1024?`${d}B`:d<1048576?`${(d/1024).toFixed(0)}KB`:`${(d/1048576).toFixed(1)}MB`})]}),g&&(0,B.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,B.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${a.progress}%`}})}),(0,B.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[f&&(0,B.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,B.jsx)(Q.RefreshCw,{className:"w-3 h-3"})}),(0,B.jsx)("button",{type:"button",onClick:()=>b(a.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,B.jsx)(P.X,{className:"w-3 h-3"})})]})]},a.id)})})}],669417),a.s(["ComposerDropZone",0,function({onDrop:a,children:c}){let[d,e]=(0,b.useState)(!1),f={current:0},g=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),f.current++,a.dataTransfer.types.includes("Files")&&e(!0)},[]),h=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),i=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),f.current--,0===f.current&&e(!1)},[]),j=(0,b.useCallback)(b=>{b.preventDefault(),b.stopPropagation(),f.current=0,e(!1),b.dataTransfer.files.length>0&&a(b.dataTransfer.files)},[a]);return(0,B.jsxs)("div",{className:"relative",onDragEnter:g,onDragOver:h,onDragLeave:i,onDrop:j,children:[c,d&&(0,B.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,B.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}],667494);let T=(0,C.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["Paperclip",0,T],514840)},915534,a=>{"use strict";let b=(0,a.i(831709).default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);a.s(["Rocket",0,b],915534)},689882,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(313872),e=a.i(628977),f=a.i(609345),g=a.i(981717),h=a.i(29714),i=a.i(279384),j=a.i(950364),k=a.i(177521),l=a.i(924434),m=a.i(45813),n=a.i(95348),o=a.i(382460),p=a.i(200369),q=a.i(785061),r=a.i(677955),s=a.i(340914),t=a.i(413169),u=a.i(719753),v=a.i(704238),w=a.i(589609),x=a.i(119616),y=a.i(745975),z=a.i(669417),A=a.i(667494),B=a.i(514840),C=a.i(915534),D=a.i(736868),E=a.i(811760),F=a.i(824179);function G(a,b,c,d,e){if(!a)return;let f=(0,u.plainTextRangeToPos)(a,b,c,d);f&&a.chain().focus().deleteRange(f).insertContent(e).insertContent(" ").run()}a.s(["Composer",0,function({onSend:a,onStop:H,loading:I,activityStatus:J,sendInterruptsBusy:K=!1,participants:L,projects:M=[],projectGroups:N=[],projectSlug:O,messages:P=[],commands:Q,placeholder:R="Message — @name to mention, /search, /summarize",workspaceRoots:S=[],onConfigureRoots:T,pendingThreadInsert:U,onClearPendingThread:V,autoMode:W=!1,onAutoModeChange:X,repos:Y=[],selectedRepoIds:Z,onRepoSelectionChange:$,initialPinnedParticipantId:_}){let aa,ab,ac,ad=J??(I?"working":"ready"),ae="ready"!==ad,[af,ag]=(0,c.useState)(_??null),[ah,ai]=(0,c.useState)(new Set),aj=Z??ah,ak=(0,c.useRef)(aj);ak.current=aj;let al=(0,c.useCallback)(a=>{let b="function"==typeof a?a(ak.current):a;$?$(b):ai(b)},[$]),[am,an]=(0,c.useState)(!1),ao=(0,c.useRef)(null),ap=(0,c.useRef)(null),aq=(0,c.useRef)(!1),ar=(0,c.useRef)(()=>{}),as=(0,c.useCallback)(()=>{ap.current?.click()},[]),[at,au]=(0,c.useState)([]),{issues:av}=(0,n.useLinearIssueMentions)({projectSlug:O}),aw=(0,g.useMentionAutocomplete)({participants:L,projectGroups:N,projects:M,linearIssues:av,maxSuggestions:8}),ax=(0,h.useCommandAutocomplete)({commands:Q,maxSuggestions:6}),ay=(0,j.useFileMention)({maxSuggestions:8}),az=(0,k.useThreadMention)({messages:P,maxSuggestions:8}),aA=(0,i.useAttachments)();ar.current=aA.stageFiles;let aB=(0,l.useComposerAttachments)(),aC=(0,m.useComposerHistory)();(0,c.useEffect)(()=>{af&&!L.some(a=>a.id===af)&&ag(null)},[L,af]),(0,c.useEffect)(()=>{if(!am)return;let a=a=>{ao.current&&!ao.current.contains(a.target)&&an(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[am]),(0,c.useEffect)(()=>{if(null!=Z||0===ah.size)return;let a=new Set(Y.map(a=>a.id)),b=new Set([...ah].filter(b=>a.has(b)));b.size<ah.size&&ai(b)},[Y,Z,ah]);let aD=(0,d.useEditor)({immediatelyRender:!1,extensions:[e.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),f.default.configure({placeholder:R}),s.ParticipantMention,s.ProjectMention,s.FileMention,s.ThreadMention,s.LinearIssueMention],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handleDOMEvents:{compositionstart:()=>(aq.current=!0,aw.startComposition(),!1),compositionend:(a,b)=>(aq.current=!1,setTimeout(()=>{if(!aD)return;let a=(0,u.getCurrentParagraphText)(aD);a&&aw.endComposition(a.text,a.cursorPos)},0),!1)},handlePaste:(a,b)=>{let c=(0,r.getClipboardAttachmentFiles)(b.clipboardData);if(c.length>0)return ar.current(c),!0;if((0,r.clipboardMayContainImageAttachments)(b.clipboardData)){let a="u">typeof navigator?navigator.clipboard:void 0;if("function"==typeof a?.read)return(0,r.readClipboardAttachmentFiles)(b.clipboardData,a).then(a=>{a.length>0&&ar.current(a)}).catch(a=>{console.error("Failed to read pasted clipboard attachments:",a)}),!0}return!1},handleKeyDown:(a,b)=>{if("Tab"===b.key||"Enter"===b.key&&!b.shiftKey){if(ax.isOpen&&ax.filteredCommands.length>0){b.preventDefault();let a=ax.filteredCommands[ax.activeIndex];return a&&aJ(a),!0}if(ay.isOpen&&ay.suggestions.length>0){b.preventDefault();let a=ay.suggestions[ay.activeIndex];return a&&("folder"===a.type?aH(a):aG(a)),!0}if(az.isOpen&&az.suggestions.length>0){b.preventDefault();let a=az.suggestions[az.activeIndex];return a&&aI(a),!0}if(aw.isOpen&&aw.filteredSuggestions.length>0){b.preventDefault();let a=aw.filteredSuggestions[aw.activeIndex];return a&&aF(a),!0}}let c={key:b.key,preventDefault:()=>b.preventDefault()};if(ax.isOpen&&ax.handleKeyDown(c)||ay.isOpen&&ay.handleKeyDown(c)||az.isOpen&&az.handleKeyDown(c)||aw.handleKeyDown(c))return!0;if(("ArrowUp"===b.key||"ArrowDown"===b.key)&&!aw.isOpen&&!ax.isOpen&&!ay.isOpen&&!az.isOpen){let a=(0,t.serializeToPlainText)(aD.getJSON()).trim(),{state:c}=aD.view,d="ArrowUp"===b.key,e=d?c.selection.from<=1:c.selection.to>=c.doc.content.size-1,f=aC.navigate(d?"up":"down",a,e);if(null!==f)return b.preventDefault(),aD.commands.setContent(f),aD.commands.focus("end"),!0}return"Enter"===b.key&&!b.shiftKey&&(b.preventDefault(),aK(),!0)}},onUpdate:({editor:a})=>{if(aq.current)return;-1!==aC.historyIndex&&aC.resetNavigation();let b=(0,u.getCurrentParagraphText)(a);b&&(aw.handleInput(b.text,b.cursorPos),ax.handleInput(b.text,b.cursorPos),ay.handleInput(b.text,b.cursorPos),az.handleInput(b.text,b.cursorPos))},onBlur:()=>{aw.close(),ax.close(),ay.close(),az.close()}});(0,c.useEffect)(()=>{if(!U||!aD)return;let{title:a,threadId:b,messages:c}=U;aD.chain().focus().insertContent({type:"threadMention",attrs:{threadId:b,title:a}}).insertContent(" ").run();let d=c[0];if(d){let e={rootMessageId:b,title:a,rootMessage:d,replies:c.slice(1),participantIds:[...new Set(c.map(a=>a.participantId||"user"))],lastActivityAt:Math.max(...c.map(a=>a.timestamp))};az.exportDiscussion(e).then(a=>au(b=>[...b,a])).catch(a=>console.error("Failed to export discussion for Add to chat:",a))}V?.()},[U]);let aE=(0,c.useCallback)(()=>{if(!aD)return;let a=(0,u.getCurrentParagraphText)(aD);a&&aw.handleInput(a.text,a.cursorPos)},[aD,aw]),aF=(0,c.useCallback)(a=>{if(!aD)return;let b=aw.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aD);if(!c)return;let d=b.text.startsWith("@@"),e="project-group"===a.kind?{type:"participantMention",attrs:{id:a.project.id,name:a.project.name,mode:d?"parallel":"sequential",kind:"project"}}:"project"===a.kind?{type:"projectMention",attrs:{id:a.project.id,slug:a.project.slug,name:a.project.name}}:"ticket"===a.kind?{type:"linearIssueMention",attrs:{id:a.issue.id,identifier:a.issue.identifier,title:a.issue.title,status:a.issue.status,url:a.issue.url}}:{type:"participantMention",attrs:{id:a.participant.id,name:a.participant.name,mode:d?"parallel":"sequential",kind:"agent"}};G(aD,c.blockStart,b.startIndex,b.endIndex,e),aw.close()},[aD,aw]),aG=(0,c.useCallback)(a=>{if(!aD)return;let b=ay.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aD);if(!c)return;let d={type:"fileMention",attrs:{path:a.path,relativePath:a.relativePath??a.path,trigger:ay.token?.trigger??"@/",attachMode:a.attachMode}};G(aD,c.blockStart,b.startIndex,b.endIndex,d),aB.addFilePath(a.path,a.relativePath??a.path,a.attachMode)},[aD,ay,aB]),aH=(0,c.useCallback)(a=>{if(!aD)return;let b=(0,u.getCurrentParagraphText)(aD);if(!b)return;let c=ay.drillDown(a);if(!c)return;let d=(0,u.plainTextRangeToPos)(aD,b.blockStart,c.startIndex,c.endIndex);d&&aD.chain().focus().deleteRange(d).insertContent(c.text).run()},[aD,ay]),aI=(0,c.useCallback)(async a=>{if(!aD)return;let b=az.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aD);if(!c)return;let d={type:"threadMention",attrs:{threadId:a.rootMessageId,title:a.title}};G(aD,c.blockStart,b.startIndex,b.endIndex,d);try{let b=await az.exportDiscussion(a);au(a=>[...a,b])}catch(a){console.error("Failed to export discussion:",a)}},[aD,az]),aJ=(0,c.useCallback)(a=>{ax.selectCommand(a),aD&&aD.commands.clearContent()},[ax,aD]),aK=(0,c.useCallback)(async()=>{if(!aD)return;let b=aD.getJSON(),c=(0,t.serializeToPlainText)(b).trim();if(!c&&!aA.hasUploaded&&!aB.hasFilePaths||!aA.canSend)return;if(c){let a=Q.find(a=>a.name===c||a.aliases?.some(a=>`/${a}`===c));if(a){a.execute(),aD.commands.clearContent(),ax.close(),aw.close();return}}let d=c||"(attached files)",e=[];if(aj.size>0){let a=Y.filter(a=>aj.has(a.id));if(a.length>0){let b=a.map(a=>{let b=[a.name];return a.path&&b.push(`path: ${a.path}`),a.notes&&b.push(a.notes),`- ${b.join(" | ")}`}).join("\n");e.push(`Focused repos (the user is specifically talking about these repositories):
8
+ ${b}`)}}if(at.length>0){let a=at.map(a=>`- "${a.title}" — ${a.summary} (full transcript: ${a.filePath})`).join("\n");e.push(`Referenced threads:
9
+ ${a}`)}if(aB.hasFilePaths){let a=await (0,o.buildAgentContext)(aB.filePaths);a.contextPrefix&&e.push(a.contextPrefix.trimEnd())}let f=(0,p.extractMentionedLinearIssueIds)(b);if(f.length>0)try{let a=await fetch("/api/linear/issues/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issueIds:f})});if(!a.ok)throw Error(`Failed to load issue context: ${a.status}`);let b=await a.json().catch(()=>({})),c=Array.isArray(b.issues)?b.issues:[],d=(0,p.buildLinearIssueContextPrefix)(c);d&&e.push(d.trimEnd())}catch(a){console.error("Failed to load Linear issue mention context:",a)}let g=e.length>0?e.join("\n\n")+"\n\n":void 0,h=(0,q.extractComposerRouting)(b,af);c&&aC.pushEntry(c);let i=aA.attachmentIds.length>0?aA.attachmentIds:void 0,j=i?aA.getAttachmentMetas():void 0;a(d,10,i,j,af??void 0,g,h),aD.commands.clearContent(),au([]),aA.clear(),aB.clearFilePaths(),aw.close(),ax.close(),az.close()},[aD,aw,ax,Q,a,aA,aB,at,az,aC,aj,Y,af]),aL=aw.isOpen&&aw.filteredSuggestions.length>0;ax.isOpen&&ax.filteredCommands.length,ay.isOpen&&ay.suggestions.length,az.isOpen&&az.suggestions.length,aL&&aw.filteredSuggestions[aw.activeIndex];let aM=aA.staged.some(a=>"uploading"===a.status),aN=!aD||aD.isEmpty,aO=L.find(a=>a.id===af)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(A.ComposerDropZone,{onDrop:aA.stageFiles,children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-surface)] border border-[var(--app-shell-border)] shadow-[var(--shadow-sm)] focus-within:border-[var(--app-shell-border-strong)] focus-within:ring-1 focus-within:ring-[var(--ring)] transition-all flex flex-col rounded-2xl",children:[X&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${W?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${W?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:W?"shipBgSweep 4s ease-in-out infinite":"none"}}),W&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${W?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:W?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(C.Rocket,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${W?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${W?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${W?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:W?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>X(!W),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${W?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${W?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[aA.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(z.AttachmentTray,{attachments:aA.staged,onRemove:aA.remove,onRetry:aA.retry})}),(0,b.jsxs)("div",{className:"p-2 relative",children:[(0,b.jsx)("input",{ref:ap,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(aA.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:aE,children:[(0,b.jsx)(d.EditorContent,{editor:aD,className:"composer-editor"}),(0,b.jsx)(v.MentionPopover,{isOpen:aw.isOpen&&!ax.isOpen,suggestions:aw.filteredSuggestions,activeIndex:aw.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:aF}),(0,b.jsx)(w.CommandPopover,{isOpen:ax.isOpen,commands:ax.filteredCommands,activeIndex:ax.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:aJ}),(0,b.jsx)(x.FileMentionPopover,{isOpen:ay.isOpen,suggestions:ay.suggestions,activeIndex:ay.activeIndex,isLoading:ay.isLoading,error:ay.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?aH(a):aG(a)},onAttachContents:ay.onAttachContents}),(0,b.jsx)(y.ThreadMentionPopover,{isOpen:az.isOpen&&!ax.isOpen&&!ay.isOpen,suggestions:az.suggestions,activeIndex:az.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:aI})]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--app-shell-border)] transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{type:"button",onClick:as,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,b.jsx)(B.Paperclip,{className:"h-4 w-4",strokeWidth:1.75})}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===L.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):L.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":af===a.id,onClick:()=>ag(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),ag(b=>b===a.id?null:a.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${af===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),ae&&(0,b.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===ad?"bg-amber-400":"bg-emerald-400"}`})]},a.id))})]}),aO&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:aO.name})]})]}),Y.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)("div",{className:"relative",ref:ao,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>an(a=>!a),className:"composer-repo-select-trigger","aria-haspopup":"listbox","aria-expanded":am,children:[(0,b.jsx)(D.FolderGit2,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Folders"}),(0,b.jsx)(E.ChevronDown,{className:`h-3 w-3 transition-transform ${am?"rotate-180":""}`})]}),am&&(0,b.jsx)("div",{className:"composer-repo-dropdown",role:"listbox","aria-multiselectable":"true",children:Y.map(a=>{let c=aj.has(a.id);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":c,className:`composer-repo-dropdown__item ${c?"composer-repo-dropdown__item--selected":""}`,onClick:()=>al(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("span",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${c?"bg-emerald-500 border-emerald-500 text-white":"border-[var(--app-shell-border-strong)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)})})]}),(ab=(aa=Y.filter(a=>aj.has(a.id))).slice(0,1),ac=aa.length-1,(0,b.jsxs)(b.Fragment,{children:[ab.map(a=>(0,b.jsxs)("span",{className:"composer-repo-pill",title:a.path||a.name,children:[(0,b.jsx)(D.FolderGit2,{className:"h-3 w-3 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{className:"composer-repo-pill__name",children:a.name}),(0,b.jsx)("button",{type:"button",className:"composer-repo-pill__remove",onClick:()=>al(b=>{let c=new Set(b);return c.delete(a.id),c}),"aria-label":`Remove ${a.name}`,children:(0,b.jsx)(F.X,{className:"h-3 w-3"})})]},a.id)),ac>0&&(0,b.jsxs)("span",{className:"composer-repo-pill composer-repo-pill--overflow",children:["+",ac]})]}))]})]})]}),ae&&!K?(0,b.jsx)("button",{type:"button",onClick:H,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,b.jsxs)("button",{type:"button",onClick:aK,disabled:aN&&!aA.hasUploaded&&!aB.hasFilePaths||aM,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===ad?"bg-emerald-400 animate-pulse":"queued"===ad?"bg-amber-400":"bg-emerald-400"}`}),(0,b.jsx)("span",{children:"working"===ad?"Working":"queued"===ad?"Queued":"Ready"})]}),(0,b.jsxs)("span",{children:["Press ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}])}];
10
10
 
11
11
  //# sourceMappingURL=apps_local_0_ac-.f._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[328400,a=>{"use strict";let b=(0,a.i(831709).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);a.s(["BookOpen",0,b],328400)},517259,562428,a=>{"use strict";var b=a.i(831709);let c=(0,b.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);a.s(["Cpu",0,c],517259);let d=(0,b.default)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);a.s(["Box",0,d],562428)},8e4,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(824179),e=a.i(252197),f=a.i(517259),g=a.i(562428),h=a.i(328400),i=a.i(724938),j=a.i(353532),k=a.i(89613),l=a.i(811760),m=a.i(804632),n=a.i(627421),o=a.i(86466);a.i(749741),a.i(449140),a.i(214512);var p=a.i(766412);function q(a,b=32,c){let d=`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${b}`;if(!c)return d;let e=c.replace("#","");return`${d}&backgroundColor=${e}`}a.i(529889);let r=["claude","ollama","gemini","codex","zai"];function s(a){return(a??[]).map(a=>a.condition?.trim()?`${a.file} | ${a.condition}`:a.file).join("\n")}function t(a){return a.split("\n").map(a=>a.trim()).filter(Boolean).map(a=>{let[b,...c]=a.split("|");return{file:b.trim(),condition:c.join("|").trim()}}).filter(a=>a.file.length>0)}function u(a,b){return JSON.stringify({name:a.name,...a.roleId?{roleId:a.roleId}:{},...a.title?{title:a.title}:{},provider:a.provider,model:a.model,identity:a.identity,color:a.color??"#6B7280",skills:a.skills??[],skillBindings:a.skillBindings??[],...b?{projectIds:b}:{}},null,2)}a.s(["AgentForm",0,function({title:a,initial:v,submitLabel:w,onSubmit:x,onCancel:y,projects:z,initialProjectIds:A,agentId:B,projectMemberships:C,onAddToProject:D,onRemoveFromProject:E,roleOptions:F,roleLabel:G="Role",onRolePresetChange:H}){let[I,J]=(0,c.useState)(v.name),[K,L]=(0,c.useState)(v.roleId??""),[M,N]=(0,c.useState)(v.title??""),[O,P]=(0,c.useState)(v.provider),[Q,R]=(0,c.useState)(v.model),[S,T]=(0,c.useState)(v.identity),[U,V]=(0,c.useState)(v.color??"#6B7280"),[W,X]=(0,c.useState)(s(v.skills)),[Y,Z]=(0,c.useState)(new Set(A??[])),[$,_]=(0,c.useState)("form"),[aa,ab]=(0,c.useState)(()=>u(v,z?A??[]:void 0)),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)(!1),[ag,ah]=(0,c.useState)([]),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(v.skillBindings??[]),ao=(0,c.useRef)(null),ap=(0,c.useRef)(null),aq=!!(F&&F.length>0),ar=B||I.trim()||v.name||"agent";(0,c.useEffect)(()=>{let a=a=>{ap.current&&!ap.current.contains(a.target)&&y()},b=setTimeout(()=>document.addEventListener("pointerdown",a),0);return()=>{clearTimeout(b),document.removeEventListener("pointerdown",a)}},[ap,y]),(0,c.useEffect)(()=>{if(!ak)return;let a=a=>{ao.current&&!ao.current.contains(a.target)&&al(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[ak]),(0,c.useEffect)(()=>{"form"===$&&ab(u({name:I,...aq&&K?{roleId:K}:{},title:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0))},[$,I,K,aq,M,O,Q,S,U,W,am,Y,z]),(0,c.useEffect)(()=>{if(!ae)return;let a=window.setTimeout(()=>af(!1),1200);return()=>window.clearTimeout(a)},[ae]),(0,c.useEffect)(()=>{let a=!1;return async function(){try{let b=await fetch("/api/skills");if(!b.ok)return;let c=await b.json();if(a)return;let d=Array.isArray(c.skills)?c.skills.filter(a=>!!a&&"object"==typeof a).map(a=>({skillId:String(a.skillId??"").trim(),repo:String(a.repo??"").trim(),name:String(a.name??a.skillId??"").trim()})).filter(a=>a.skillId.length>0&&a.repo.length>0):[];ah(d)}catch{a||ah([])}}(),()=>{a=!0}},[]);let as=(a,b)=>{let c=z?(b??[]).filter(a=>z.some(b=>b.id===a)):void 0;return J(a.name),L(a.roleId??""),N(a.title??""),P(a.provider),R(a.model),T(a.identity),V(a.color??"#6B7280"),X(s(a.skills)),an(a.skillBindings??[]),z&&Z(new Set(c??[])),ab(u(a,z?c??[]:void 0)),ad(null),c},at=a=>{let b=function(a,b){let c;try{c=JSON.parse(a)}catch{throw Error("JSON is invalid.")}if(!c||"object"!=typeof c||Array.isArray(c))throw Error("JSON must be an object.");let d=c,e="string"==typeof d.provider?d.provider:b,f=r.includes(e)?e:b,g=(Array.isArray(d.skills)?d.skills:[]).flatMap(a=>{if("string"==typeof a){let[b,...c]=a.split("|"),d=b.trim();return d?[{file:d,condition:c.join("|").trim()}]:[]}if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.file?a.file.trim():"";return b?[{file:b,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]}),h=Array.isArray(d.projectIds)?d.projectIds.filter(a=>"string"==typeof a&&a.trim().length>0):void 0,i=(Array.isArray(d.skillBindings)?d.skillBindings:[]).flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.repo?a.repo.trim():"",c="string"==typeof a.skillId?a.skillId.trim():"";return b&&c?[{repo:b,skillId:c,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]});return{data:{name:"string"==typeof d.name?d.name:"",roleId:"string"==typeof d.roleId?d.roleId:void 0,title:"string"==typeof d.title?d.title:"",provider:f,model:"string"==typeof d.model?d.model:"",identity:"string"==typeof d.identity?d.identity:"",color:"string"==typeof d.color&&d.color.trim()?d.color:"#6B7280",skills:g,skillBindings:i},projectIds:h}}(a,O),c=as(b.data,b.projectIds);return{...b,projectIds:c}},au=()=>{if("form"!==$)try{at(aa),_("form")}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.")}},av=async()=>{try{await navigator.clipboard.writeText(aa),af(!0)}catch{af(!1)}},aw=(0,c.useMemo)(()=>{let a=ai.trim().toLowerCase();return a?ag.filter(b=>[b.name,b.skillId,b.repo].some(b=>b.toLowerCase().includes(a))).slice(0,50):ag.slice(0,50)},[ag,ai]),ax=(0,c.useMemo)(()=>new Set(am.map(a=>`${a.repo}::${a.skillId}`)),[am]);return(0,b.jsx)("div",{ref:ap,className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/30 backdrop-blur-sm",onKeyDown:a=>{"Escape"===a.key&&y()},children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-[32px] shadow-2xl overflow-hidden w-full max-w-2xl max-h-[90vh] flex flex-col animate-in fade-in zoom-in duration-300",children:[(0,b.jsxs)("div",{className:"px-8 pt-8 pb-4 shrink-0 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1.5",children:[(0,b.jsx)("img",{src:q(ar,64,U),alt:I,className:"w-14 h-14 rounded-full bg-[var(--muted)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Color"}),(0,b.jsx)("input",{type:"color",value:U,onChange:a=>V(a.target.value),className:"w-5 h-5 rounded border border-[var(--border)] cursor-pointer p-0"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-[10px] font-bold tracking-widest text-[var(--muted-foreground)] uppercase",children:a}),(0,b.jsx)("h1",{className:"text-2xl font-semibold mt-1",children:I||"Configure Agent"})]})]}),(0,b.jsx)("button",{onClick:y,className:"p-2 text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] hover:bg-[var(--muted)] rounded-full transition-all",children:(0,b.jsx)(d.X,{size:20})})]}),(0,b.jsxs)("div",{className:"px-8 pb-8 space-y-6 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"inline-flex rounded-xl bg-[var(--muted)] p-1",children:[(0,b.jsx)("button",{type:"button",onClick:au,className:"form"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Form"}),(0,b.jsx)("button",{type:"button",onClick:()=>{ab(u({name:I,...aq&&K?{roleId:K}:{},title:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0)),ad(null),_("json")},className:"json"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"JSON"})]}),"json"===$&&(0,b.jsxs)("button",{type:"button",onClick:av,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:[ae?(0,b.jsx)(n.Check,{size:14,className:"text-emerald-500"}):(0,b.jsx)(m.Copy,{size:14}),ae?"Copied":"Copy"]})]}),"form"===$?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(e.User,{size:16})," Name"]}),(0,b.jsx)("input",{type:"text",value:I,onChange:a=>J(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. Ada, Kai, Sage...",autoFocus:!0})]}),aq?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:G}),(0,b.jsx)(p.default,{options:F??[],value:K||null,onChange:a=>{if(!aq)return;let b={name:I,roleId:a,title:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},c=H?.(a,b);c?as({...c,roleId:a},z?Array.from(Y):void 0):L(a)},placeholder:"Select a role preset..."})]}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:"Title"}),(0,b.jsx)("input",{type:"text",value:M,onChange:a=>N(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. VP of Engineering"})]})]}),aq&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:"Title"}),(0,b.jsx)("input",{type:"text",value:M,onChange:a=>N(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. VP of Engineering"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.Box,{size:16})," Provider"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("select",{value:O,onChange:a=>P(a.target.value),className:"w-full appearance-none px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all pr-10 cursor-pointer",children:[(0,b.jsx)("option",{value:"claude",children:"Claude"}),(0,b.jsx)("option",{value:"ollama",children:"Ollama"}),(0,b.jsx)("option",{value:"gemini",children:"Gemini"}),(0,b.jsx)("option",{value:"codex",children:"Codex"}),(0,b.jsx)("option",{value:"zai",children:"Z.AI"})]}),(0,b.jsx)(l.ChevronDown,{className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)] pointer-events-none",size:16})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(f.Cpu,{size:16})," Model"]}),(0,b.jsx)("input",{type:"text",value:Q,onChange:a=>R(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-sm",placeholder:"e.g. claude-sonnet-4-6"})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.BookOpen,{size:16})," Identity"]}),(0,b.jsx)("div",{className:"border border-[var(--border)] rounded-xl overflow-hidden bg-[var(--app-shell-subtle)] focus-within:ring-2 focus-within:ring-indigo-500/20 focus-within:border-indigo-500 transition-all",children:(0,b.jsx)(o.default,{content:S,onChange:a=>T(a),placeholder:"You are a ..."})}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Identity defines who the agent is. Keep portable knowledge separate below; project and repo knowledge belong on their scoped surfaces."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(i.Sparkles,{size:16})," Portable Knowledge"]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3 space-y-3",children:[(0,b.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Skills Picker"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"Pick a skill here. AGX will install it later only if the run actually needs it."})]})}),ag.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"relative",ref:ao,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>al(a=>!a),className:"w-full flex items-center justify-between px-3 py-2 rounded-xl border border-[var(--border)] bg-[var(--card-bg)] text-sm font-medium hover:border-indigo-500",children:[(0,b.jsx)("span",{className:"truncate text-left",children:"Search and add skills"}),(0,b.jsx)(l.ChevronDown,{size:16,className:`shrink-0 text-[var(--muted-foreground)] transition-transform ${ak?"rotate-180":""}`})]}),ak&&(0,b.jsxs)("div",{className:"absolute left-0 right-0 top-full mt-2 z-30 rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--border)]",children:(0,b.jsx)("input",{type:"text",value:ai,onChange:a=>aj(a.target.value),placeholder:"Search skills",className:"w-full px-3 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500",autoFocus:!0})}),(0,b.jsx)("div",{className:"max-h-64 overflow-y-auto",children:aw.length>0?aw.map(a=>{let c=`${a.repo}::${a.skillId}`,d=ax.has(c);return(0,b.jsx)("button",{type:"button",className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-emerald-50 text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void(an(a=>a.some(a=>a.repo===b&&a.skillId===c)?a.filter(a=>a.repo!==b||a.skillId!==c):[...a,{repo:b,skillId:c}]),aj(""))},children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"font-medium",children:a.name||a.skillId}),(0,b.jsx)("div",{className:"text-[11px] text-[var(--muted-foreground)]",children:a.repo})]}),d&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-emerald-100 px-2 py-0.5 text-[10px] font-semibold text-emerald-700",children:"Added"})]})},c)}):(0,b.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]",children:"No matching skills."})})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[am.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-emerald-50 text-emerald-700 border border-emerald-200 px-2.5 py-1 text-[11px] font-medium",children:[a.skillId,(0,b.jsx)("button",{type:"button",onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void an(a=>a.filter(a=>a.repo!==b||a.skillId!==c))},className:"text-emerald-700/70 hover:text-emerald-900",title:`Remove ${a.skillId}`,children:(0,b.jsx)(d.X,{size:12})})]},`${a.repo}::${a.skillId}`)),0===am.length&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No library skills selected yet."})]})]}):(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No catalog skills available right now."})]}),(0,b.jsx)("textarea",{value:W,onChange:a=>X(a.target.value),rows:5,className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-xs",placeholder:"one/path/to/skill.md\npath/to/skill.md | when coding in TypeScript"}),(0,b.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["Portable agent knowledge only. One reference per line. Use ",(0,b.jsx)("code",{children:"|"})," to add an optional condition."]})]}),z&&z.length>0&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Assign To Projects"]}),(0,b.jsx)("div",{className:"space-y-1 max-h-[160px] overflow-y-auto",children:z.map(a=>{let c=Y.has(a.id);return(0,b.jsxs)("button",{type:"button",className:c?"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors bg-indigo-50 text-indigo-700":"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]",onClick:()=>Z(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("div",{className:c?"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center bg-indigo-600 border-indigo-600":"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center border-[var(--border)]",children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"text-xs font-medium text-left",children:a.label??a.name})]},a.id)})})]}),C&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Project Memberships"]}),C.current.length>0?(0,b.jsx)("div",{className:"flex flex-col gap-1",children:C.current.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs bg-[var(--app-shell-subtle)] rounded-lg px-3 py-2",children:[(0,b.jsx)(k.FolderOpen,{size:12,className:"text-[var(--muted-foreground)] shrink-0"}),(0,b.jsx)("span",{className:"truncate flex-1",children:a.name}),E&&!a.is_default&&(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-red-500 transition-colors",onClick:()=>E(a.id),title:"Remove from project",children:(0,b.jsx)(d.X,{size:12})})]},a.id))}):(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] italic",children:"Not assigned to any projects"}),C.available.length>0&&D&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:C.available.map(a=>(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 text-[10px] px-2 py-1 rounded-lg border border-dashed border-[var(--border)] text-[var(--muted-foreground)] hover:border-[var(--border)] hover:text-[var(--foreground)] transition-colors",onClick:()=>D(a.id),children:[(0,b.jsx)(j.Plus,{size:10}),a.name]},a.id))})]})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Paste agent JSON here. Switching back to Form or saving will apply valid JSON to the form state."}),(0,b.jsx)("button",{type:"button",onClick:au,className:"px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:"Apply to Form"})]}),(0,b.jsx)("textarea",{value:aa,onChange:a=>{ab(a.target.value),ac&&ad(null)},rows:22,className:"w-full px-4 py-3 bg-[var(--app-shell-bg)] text-[var(--foreground)] border border-[var(--app-shell-border)] rounded-2xl focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:border-[var(--primary)] transition-all font-mono text-xs",spellCheck:!1,autoFocus:!0}),ac&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ac})]}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-4 border-t border-[var(--border)]",children:[(0,b.jsx)("button",{onClick:y,className:"px-6 py-2.5 text-sm font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all",children:"Cancel"}),(0,b.jsx)("button",{onClick:()=>{let a=I.trim(),b=K,c=M.trim(),d=O,e=Q.trim(),f=S.trim(),g=U,h=t(W),i=am,j=z?Array.from(Y):void 0;if("json"===$)try{let k=at(aa);a=k.data.name.trim(),b=k.data.roleId??"",c=(k.data.title??"").trim(),d=k.data.provider,e=k.data.model.trim(),f=k.data.identity.trim(),g=k.data.color??"#6B7280",h=k.data.skills??[],i=k.data.skillBindings??[],j=z?k.projectIds??[]:void 0}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.");return}a&&e&&x({name:a,...aq&&b?{roleId:b}:{},title:c||void 0,provider:d,model:e,identity:f,color:g,skills:h,skillBindings:i},j)},disabled:"form"===$&&(!I.trim()||!Q.trim()),className:"px-8 py-2.5 bg-indigo-600 text-white text-sm font-semibold rounded-xl shadow-[0_4px_12px_rgba(79,70,229,0.3)] hover:bg-indigo-700 active:scale-95 disabled:opacity-50 transition-all font-bold",children:w})]})]})]})})},"agentAvatarUrl",0,q])}];
1
+ module.exports=[328400,a=>{"use strict";let b=(0,a.i(831709).default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);a.s(["BookOpen",0,b],328400)},517259,562428,a=>{"use strict";var b=a.i(831709);let c=(0,b.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);a.s(["Cpu",0,c],517259);let d=(0,b.default)("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);a.s(["Box",0,d],562428)},8e4,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(824179),e=a.i(252197),f=a.i(517259),g=a.i(562428),h=a.i(328400),i=a.i(724938),j=a.i(353532),k=a.i(89613),l=a.i(811760),m=a.i(804632),n=a.i(627421),o=a.i(86466);a.i(749741),a.i(449140),a.i(214512);var p=a.i(766412);function q(a,b=32,c){let d=`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${b}`;if(!c)return d;let e=c.replace("#","");return`${d}&backgroundColor=${e}`}a.i(529889);let r=["claude","ollama","gemini","codex","zai"];function s(a){return(a??[]).map(a=>a.condition?.trim()?`${a.file} | ${a.condition}`:a.file).join("\n")}function t(a){return a.split("\n").map(a=>a.trim()).filter(Boolean).map(a=>{let[b,...c]=a.split("|");return{file:b.trim(),condition:c.join("|").trim()}}).filter(a=>a.file.length>0)}function u(a,b){return JSON.stringify({name:a.name,...a.roleId?{roleId:a.roleId}:{},...a.role?{role:a.role}:{},provider:a.provider,model:a.model,identity:a.identity,color:a.color??"#6B7280",skills:a.skills??[],skillBindings:a.skillBindings??[],...b?{projectIds:b}:{}},null,2)}a.s(["AgentForm",0,function({title:a,initial:v,submitLabel:w,onSubmit:x,onCancel:y,projects:z,initialProjectIds:A,agentId:B,projectMemberships:C,onAddToProject:D,onRemoveFromProject:E,roleOptions:F,roleLabel:G="Role",onRolePresetChange:H}){let[I,J]=(0,c.useState)(v.name),[K,L]=(0,c.useState)(v.roleId??""),[M,N]=(0,c.useState)(v.role??""),[O,P]=(0,c.useState)(v.provider),[Q,R]=(0,c.useState)(v.model),[S,T]=(0,c.useState)(v.identity),[U,V]=(0,c.useState)(v.color??"#6B7280"),[W,X]=(0,c.useState)(s(v.skills)),[Y,Z]=(0,c.useState)(new Set(A??[])),[$,_]=(0,c.useState)("form"),[aa,ab]=(0,c.useState)(()=>u(v,z?A??[]:void 0)),[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)(!1),[ag,ah]=(0,c.useState)([]),[ai,aj]=(0,c.useState)(""),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(v.skillBindings??[]),ao=(0,c.useRef)(null),ap=(0,c.useRef)(null),aq=!!(F&&F.length>0),ar=B||I.trim()||v.name||"agent";(0,c.useEffect)(()=>{let a=a=>{ap.current&&!ap.current.contains(a.target)&&y()},b=setTimeout(()=>document.addEventListener("pointerdown",a),0);return()=>{clearTimeout(b),document.removeEventListener("pointerdown",a)}},[ap,y]),(0,c.useEffect)(()=>{if(!ak)return;let a=a=>{ao.current&&!ao.current.contains(a.target)&&al(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[ak]),(0,c.useEffect)(()=>{"form"===$&&ab(u({name:I,...aq&&K?{roleId:K}:{},role:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0))},[$,I,K,aq,M,O,Q,S,U,W,am,Y,z]),(0,c.useEffect)(()=>{if(!ae)return;let a=window.setTimeout(()=>af(!1),1200);return()=>window.clearTimeout(a)},[ae]),(0,c.useEffect)(()=>{let a=!1;return async function(){try{let b=await fetch("/api/skills");if(!b.ok)return;let c=await b.json();if(a)return;let d=Array.isArray(c.skills)?c.skills.filter(a=>!!a&&"object"==typeof a).map(a=>({skillId:String(a.skillId??"").trim(),repo:String(a.repo??"").trim(),name:String(a.name??a.skillId??"").trim()})).filter(a=>a.skillId.length>0&&a.repo.length>0):[];ah(d)}catch{a||ah([])}}(),()=>{a=!0}},[]);let as=(a,b)=>{let c=z?(b??[]).filter(a=>z.some(b=>b.id===a)):void 0;return J(a.name),L(a.roleId??""),N(a.role??""),P(a.provider),R(a.model),T(a.identity),V(a.color??"#6B7280"),X(s(a.skills)),an(a.skillBindings??[]),z&&Z(new Set(c??[])),ab(u(a,z?c??[]:void 0)),ad(null),c},at=a=>{let b=function(a,b){let c;try{c=JSON.parse(a)}catch{throw Error("JSON is invalid.")}if(!c||"object"!=typeof c||Array.isArray(c))throw Error("JSON must be an object.");let d=c,e="string"==typeof d.provider?d.provider:b,f=r.includes(e)?e:b,g=(Array.isArray(d.skills)?d.skills:[]).flatMap(a=>{if("string"==typeof a){let[b,...c]=a.split("|"),d=b.trim();return d?[{file:d,condition:c.join("|").trim()}]:[]}if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.file?a.file.trim():"";return b?[{file:b,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]}),h=Array.isArray(d.projectIds)?d.projectIds.filter(a=>"string"==typeof a&&a.trim().length>0):void 0,i=(Array.isArray(d.skillBindings)?d.skillBindings:[]).flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return[];let b="string"==typeof a.repo?a.repo.trim():"",c="string"==typeof a.skillId?a.skillId.trim():"";return b&&c?[{repo:b,skillId:c,condition:"string"==typeof a.condition?a.condition.trim():""}]:[]});return{data:{name:"string"==typeof d.name?d.name:"",roleId:"string"==typeof d.roleId?d.roleId:void 0,role:"string"==typeof d.role?d.role:"",provider:f,model:"string"==typeof d.model?d.model:"",identity:"string"==typeof d.identity?d.identity:"",color:"string"==typeof d.color&&d.color.trim()?d.color:"#6B7280",skills:g,skillBindings:i},projectIds:h}}(a,O),c=as(b.data,b.projectIds);return{...b,projectIds:c}},au=()=>{if("form"!==$)try{at(aa),_("form")}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.")}},av=async()=>{try{await navigator.clipboard.writeText(aa),af(!0)}catch{af(!1)}},aw=(0,c.useMemo)(()=>{let a=ai.trim().toLowerCase();return a?ag.filter(b=>[b.name,b.skillId,b.repo].some(b=>b.toLowerCase().includes(a))).slice(0,50):ag.slice(0,50)},[ag,ai]),ax=(0,c.useMemo)(()=>new Set(am.map(a=>`${a.repo}::${a.skillId}`)),[am]);return(0,b.jsx)("div",{ref:ap,className:"fixed inset-0 z-[100] flex items-center justify-center p-4 bg-black/30 backdrop-blur-sm",onKeyDown:a=>{"Escape"===a.key&&y()},children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-[32px] shadow-2xl overflow-hidden w-full max-w-2xl max-h-[90vh] flex flex-col animate-in fade-in zoom-in duration-300",children:[(0,b.jsxs)("div",{className:"px-8 pt-8 pb-4 shrink-0 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-col items-center gap-1.5",children:[(0,b.jsx)("img",{src:q(ar,64,U),alt:I,className:"w-14 h-14 rounded-full bg-[var(--muted)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Color"}),(0,b.jsx)("input",{type:"color",value:U,onChange:a=>V(a.target.value),className:"w-5 h-5 rounded border border-[var(--border)] cursor-pointer p-0"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-[10px] font-bold tracking-widest text-[var(--muted-foreground)] uppercase",children:a}),(0,b.jsx)("h1",{className:"text-2xl font-semibold mt-1",children:I||"Configure Agent"})]})]}),(0,b.jsx)("button",{onClick:y,className:"p-2 text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] hover:bg-[var(--muted)] rounded-full transition-all",children:(0,b.jsx)(d.X,{size:20})})]}),(0,b.jsxs)("div",{className:"px-8 pb-8 space-y-6 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"inline-flex rounded-xl bg-[var(--muted)] p-1",children:[(0,b.jsx)("button",{type:"button",onClick:au,className:"form"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Form"}),(0,b.jsx)("button",{type:"button",onClick:()=>{ab(u({name:I,...aq&&K?{roleId:K}:{},role:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},z?Array.from(Y):void 0)),ad(null),_("json")},className:"json"===$?"px-3 py-1.5 text-xs font-semibold rounded-lg bg-[var(--card-bg)] text-[var(--foreground)] shadow-sm":"px-3 py-1.5 text-xs font-semibold rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"JSON"})]}),"json"===$&&(0,b.jsxs)("button",{type:"button",onClick:av,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:[ae?(0,b.jsx)(n.Check,{size:14,className:"text-emerald-500"}):(0,b.jsx)(m.Copy,{size:14}),ae?"Copied":"Copy"]})]}),"form"===$?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(e.User,{size:16})," Name"]}),(0,b.jsx)("input",{type:"text",value:I,onChange:a=>J(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. Ada, Kai, Sage...",autoFocus:!0})]}),aq?(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:G}),(0,b.jsx)(p.default,{options:F??[],value:K||null,onChange:a=>{if(!aq)return;let b={name:I,roleId:a,role:M,provider:O,model:Q,identity:S,color:U,skills:t(W),skillBindings:am},c=H?.(a,b);c?as({...c,roleId:a},z?Array.from(Y):void 0):L(a)},placeholder:"Select a role preset..."})]}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:"Role"}),(0,b.jsx)("input",{type:"text",value:M,onChange:a=>N(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all",placeholder:"e.g. Senior Backend Engineer"})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.Box,{size:16})," Provider"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("select",{value:O,onChange:a=>P(a.target.value),className:"w-full appearance-none px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all pr-10 cursor-pointer",children:[(0,b.jsx)("option",{value:"claude",children:"Claude"}),(0,b.jsx)("option",{value:"ollama",children:"Ollama"}),(0,b.jsx)("option",{value:"gemini",children:"Gemini"}),(0,b.jsx)("option",{value:"codex",children:"Codex"}),(0,b.jsx)("option",{value:"zai",children:"Z.AI"})]}),(0,b.jsx)(l.ChevronDown,{className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)] pointer-events-none",size:16})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(f.Cpu,{size:16})," Model"]}),(0,b.jsx)("input",{type:"text",value:Q,onChange:a=>R(a.target.value),className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-sm",placeholder:"e.g. claude-sonnet-4-6"})]})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.BookOpen,{size:16})," Identity"]}),(0,b.jsx)("div",{className:"border border-[var(--border)] rounded-xl overflow-hidden bg-[var(--app-shell-subtle)] focus-within:ring-2 focus-within:ring-indigo-500/20 focus-within:border-indigo-500 transition-all",children:(0,b.jsx)(o.default,{content:S,onChange:a=>T(a),placeholder:"You are a ..."})}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Identity defines who the agent is. Keep portable knowledge separate below; project and repo knowledge belong on their scoped surfaces."})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(i.Sparkles,{size:16})," Portable Knowledge"]}),(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3 space-y-3",children:[(0,b.jsx)("div",{className:"flex items-center justify-between gap-3",children:(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Skills Picker"}),(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"Pick a skill here. AGX will install it later only if the run actually needs it."})]})}),ag.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"relative",ref:ao,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>al(a=>!a),className:"w-full flex items-center justify-between px-3 py-2 rounded-xl border border-[var(--border)] bg-[var(--card-bg)] text-sm font-medium hover:border-indigo-500",children:[(0,b.jsx)("span",{className:"truncate text-left",children:"Search and add skills"}),(0,b.jsx)(l.ChevronDown,{size:16,className:`shrink-0 text-[var(--muted-foreground)] transition-transform ${ak?"rotate-180":""}`})]}),ak&&(0,b.jsxs)("div",{className:"absolute left-0 right-0 top-full mt-2 z-30 rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--border)]",children:(0,b.jsx)("input",{type:"text",value:ai,onChange:a=>aj(a.target.value),placeholder:"Search skills",className:"w-full px-3 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500",autoFocus:!0})}),(0,b.jsx)("div",{className:"max-h-64 overflow-y-auto",children:aw.length>0?aw.map(a=>{let c=`${a.repo}::${a.skillId}`,d=ax.has(c);return(0,b.jsx)("button",{type:"button",className:`w-full px-3 py-2 text-left text-sm transition-colors ${d?"bg-emerald-50 text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void(an(a=>a.some(a=>a.repo===b&&a.skillId===c)?a.filter(a=>a.repo!==b||a.skillId!==c):[...a,{repo:b,skillId:c}]),aj(""))},children:(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"font-medium",children:a.name||a.skillId}),(0,b.jsx)("div",{className:"text-[11px] text-[var(--muted-foreground)]",children:a.repo})]}),d&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-emerald-100 px-2 py-0.5 text-[10px] font-semibold text-emerald-700",children:"Added"})]})},c)}):(0,b.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]",children:"No matching skills."})})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[am.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full bg-emerald-50 text-emerald-700 border border-emerald-200 px-2.5 py-1 text-[11px] font-medium",children:[a.skillId,(0,b.jsx)("button",{type:"button",onClick:()=>{var b,c;return b=a.repo,c=a.skillId,void an(a=>a.filter(a=>a.repo!==b||a.skillId!==c))},className:"text-emerald-700/70 hover:text-emerald-900",title:`Remove ${a.skillId}`,children:(0,b.jsx)(d.X,{size:12})})]},`${a.repo}::${a.skillId}`)),0===am.length&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No library skills selected yet."})]})]}):(0,b.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:"No catalog skills available right now."})]}),(0,b.jsx)("textarea",{value:W,onChange:a=>X(a.target.value),rows:5,className:"w-full px-4 py-3 bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl focus:outline-none focus:ring-2 focus:ring-indigo-500/20 focus:border-indigo-500 transition-all font-mono text-xs",placeholder:"one/path/to/skill.md\npath/to/skill.md | when coding in TypeScript"}),(0,b.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["Portable agent knowledge only. One reference per line. Use ",(0,b.jsx)("code",{children:"|"})," to add an optional condition."]})]}),z&&z.length>0&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Assign To Projects"]}),(0,b.jsx)("div",{className:"space-y-1 max-h-[160px] overflow-y-auto",children:z.map(a=>{let c=Y.has(a.id);return(0,b.jsxs)("button",{type:"button",className:c?"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors bg-indigo-50 text-indigo-700":"w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]",onClick:()=>Z(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("div",{className:c?"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center bg-indigo-600 border-indigo-600":"w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center border-[var(--border)]",children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"text-xs font-medium text-left",children:a.label??a.name})]},a.id)})})]}),C&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.FolderOpen,{size:16})," Project Memberships"]}),C.current.length>0?(0,b.jsx)("div",{className:"flex flex-col gap-1",children:C.current.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs bg-[var(--app-shell-subtle)] rounded-lg px-3 py-2",children:[(0,b.jsx)(k.FolderOpen,{size:12,className:"text-[var(--muted-foreground)] shrink-0"}),(0,b.jsx)("span",{className:"truncate flex-1",children:a.name}),E&&!a.is_default&&(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-red-500 transition-colors",onClick:()=>E(a.id),title:"Remove from project",children:(0,b.jsx)(d.X,{size:12})})]},a.id))}):(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] italic",children:"Not assigned to any projects"}),C.available.length>0&&D&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:C.available.map(a=>(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 text-[10px] px-2 py-1 rounded-lg border border-dashed border-[var(--border)] text-[var(--muted-foreground)] hover:border-[var(--border)] hover:text-[var(--foreground)] transition-colors",onClick:()=>D(a.id),children:[(0,b.jsx)(j.Plus,{size:10}),a.name]},a.id))})]})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Paste agent JSON here. Switching back to Form or saving will apply valid JSON to the form state."}),(0,b.jsx)("button",{type:"button",onClick:au,className:"px-3 py-1.5 text-xs font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] rounded-lg transition-colors",children:"Apply to Form"})]}),(0,b.jsx)("textarea",{value:aa,onChange:a=>{ab(a.target.value),ac&&ad(null)},rows:22,className:"w-full px-4 py-3 bg-[var(--app-shell-bg)] text-[var(--foreground)] border border-[var(--app-shell-border)] rounded-2xl focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:border-[var(--primary)] transition-all font-mono text-xs",spellCheck:!1,autoFocus:!0}),ac&&(0,b.jsx)("p",{className:"text-xs text-red-500",children:ac})]}),(0,b.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-4 border-t border-[var(--border)]",children:[(0,b.jsx)("button",{onClick:y,className:"px-6 py-2.5 text-sm font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all",children:"Cancel"}),(0,b.jsx)("button",{onClick:()=>{let a=I.trim(),b=K,c=M.trim(),d=O,e=Q.trim(),f=S.trim(),g=U,h=t(W),i=am,j=z?Array.from(Y):void 0;if("json"===$)try{let k=at(aa);a=k.data.name.trim(),b=k.data.roleId??"",c=(k.data.role??"").trim(),d=k.data.provider,e=k.data.model.trim(),f=k.data.identity.trim(),g=k.data.color??"#6B7280",h=k.data.skills??[],i=k.data.skillBindings??[],j=z?k.projectIds??[]:void 0}catch(a){ad(a instanceof Error?a.message:"Unable to parse JSON.");return}a&&e&&x({name:a,...aq&&b?{roleId:b}:{},role:c||void 0,provider:d,model:e,identity:f,color:g,skills:h,skillBindings:i},j)},disabled:"form"===$&&(!I.trim()||!Q.trim()),className:"px-8 py-2.5 bg-indigo-600 text-white text-sm font-semibold rounded-xl shadow-[0_4px_12px_rgba(79,70,229,0.3)] hover:bg-indigo-700 active:scale-95 disabled:opacity-50 transition-all font-bold",children:w})]})]})]})})},"agentAvatarUrl",0,q])}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_0a-8i4p._.js.map
@@ -1,3 +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)},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=[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)},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_0k4~c1x._.js.map