@mndrk/agx 2.0.44 → 2.0.46

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 (503) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +2 -0
  3. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/.next/routes-manifest.json +13 -1
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  26. package/cloud-runtime/standalone/.next/server/app/agents.rsc +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +2 -2
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route/app-paths-manifest.json +3 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route/build-manifest.json +11 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route/server-reference-manifest.json +4 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js +10 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.map +5 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route_client-reference-manifest.js +2 -0
  61. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js +5 -2
  62. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route/app-paths-manifest.json +3 -0
  64. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route/build-manifest.json +11 -0
  65. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route/server-reference-manifest.json +4 -0
  66. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +7 -0
  67. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.map +5 -0
  68. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -0
  69. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route_client-reference-manifest.js +2 -0
  70. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +4 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +4 -4
  111. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -4
  113. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +1 -1
  119. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +3 -3
  175. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  181. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  183. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  185. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  187. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  188. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  189. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  190. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  195. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  196. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  197. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  203. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
  205. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
  206. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  207. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  208. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/index.rsc +4 -4
  213. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  214. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  215. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  217. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  218. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +2 -2
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  225. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +3 -3
  226. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  227. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  229. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  233. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  234. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  236. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  238. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  239. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  240. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  243. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  244. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  245. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  246. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  247. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  249. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  252. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  253. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  254. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  255. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  256. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  258. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  260. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  261. package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
  262. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  263. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  264. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  265. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  266. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  267. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  269. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  270. package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
  271. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
  272. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  273. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  274. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  275. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  276. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  277. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  278. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  279. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  280. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  281. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +2 -2
  282. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +2 -2
  283. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  284. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  285. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  286. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
  287. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  288. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +2 -0
  289. package/cloud-runtime/standalone/.next/server/chunks/{[externals]__29a2424c._.js → [externals]__31e26905._.js} +1 -1
  290. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fb1f7e58._.js → [root-of-the-server]__00fd30c8._.js} +2 -2
  291. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e4f01b5c._.js → [root-of-the-server]__0e98af48._.js} +2 -2
  292. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1154e5b3._.js +67 -0
  293. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__44ef900b._.js → [root-of-the-server]__11c1214e._.js} +2 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5e5eb809._.js → [root-of-the-server]__152b2000._.js} +10 -10
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f21849ad._.js → [root-of-the-server]__15f3bb96._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__7cade6c6._.js → [root-of-the-server]__1f53e82e._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c77efd85._.js → [root-of-the-server]__20533a2c._.js} +2 -2
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e0994be2._.js → [root-of-the-server]__3b1431b6._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b83b657._.js +147 -0
  300. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d3945cae._.js → [root-of-the-server]__3bf516b6._.js} +2 -2
  301. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2d15af44._.js → [root-of-the-server]__3fd3c5b1._.js} +2 -2
  302. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13fe776f._.js → [root-of-the-server]__42e713f5._.js} +2 -2
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1be9b30e._.js → [root-of-the-server]__4b0b5fe1._.js} +2 -2
  304. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__558389f7._.js +3 -0
  305. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5a042505._.js → [root-of-the-server]__5aaf8c25._.js} +2 -2
  306. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__22b7bf38._.js → [root-of-the-server]__5b13e7a5._.js} +2 -2
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__34efe92e._.js → [root-of-the-server]__635fe0f9._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c9550a93._.js → [root-of-the-server]__68da2825._.js} +2 -2
  309. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e5bad635._.js → [root-of-the-server]__6921fe3f._.js} +2 -2
  310. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dc542063._.js → [root-of-the-server]__6988985c._.js} +2 -2
  311. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5025f86._.js → [root-of-the-server]__7012e83d._.js} +7 -7
  312. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9d3a2caa._.js → [root-of-the-server]__70327010._.js} +2 -2
  313. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__748c718f._.js +147 -0
  314. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__76290829._.js +46 -8
  315. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c0919d7d._.js → [root-of-the-server]__79fa35e4._.js} +2 -2
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ac9b93fd._.js → [root-of-the-server]__8d205f82._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0281ad06._.js → [root-of-the-server]__9ffa67b7._.js} +2 -2
  318. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dd1cb250._.js → [root-of-the-server]__a300f072._.js} +2 -2
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5fbc700c._.js → [root-of-the-server]__a7e0ac67._.js} +2 -2
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__91b51f33._.js → [root-of-the-server]__aad349b4._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ad6d6402._.js +46 -8
  322. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__349d67e7._.js → [root-of-the-server]__b133856b._.js} +2 -2
  323. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__45a50de9._.js → [root-of-the-server]__c029daab._.js} +2 -2
  324. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a1e62918._.js → [root-of-the-server]__c8195768._.js} +1 -1
  325. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ce2a1672._.js +67 -0
  326. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a2e17f69._.js → [root-of-the-server]__d4f42f49._.js} +2 -2
  327. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9f2041b._.js +47 -9
  328. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ad4cb055._.js → [root-of-the-server]__dca6026a._.js} +2 -2
  329. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__bacb0193._.js → [root-of-the-server]__ddb3aa76._.js} +2 -2
  330. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__de295ef3._.js +3 -0
  331. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__7d4fa0fd._.js → [root-of-the-server]__e7be56ba._.js} +2 -2
  332. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__73b17f49._.js → [root-of-the-server]__ebece93b._.js} +2 -2
  333. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef27f8cd._.js +49 -0
  334. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__56dbe1a4._.js → [root-of-the-server]__f13c29c6._.js} +2 -2
  335. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98d58423._.js → [root-of-the-server]__fcdaf6d8._.js} +2 -2
  336. package/cloud-runtime/standalone/.next/server/chunks/_6e7f0ae4._.js +6 -0
  337. package/cloud-runtime/standalone/.next/server/chunks/_a93e80e8._.js +3 -0
  338. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_linear_issues_context_route_actions_0b2c282c.js +3 -0
  339. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_linear_options_route_actions_29764947.js +3 -0
  340. package/cloud-runtime/standalone/.next/server/chunks/lib_app-config_ts_7f2f30ad._.js +3 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1c4256ce._.js +3 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__4c9d0778._.js +3 -0
  343. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__69887882._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f59f0dc7._.js +3 -0
  345. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_95434d70._.js → _1d26be78._.js} +2 -2
  346. package/cloud-runtime/standalone/.next/server/chunks/ssr/_32c878b9._.js +3 -0
  347. package/cloud-runtime/standalone/.next/server/chunks/ssr/_60d0bae4._.js +3 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/ssr/_77e1407a._.js +3 -0
  349. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7f7a828a._.js +3 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/ssr/_ba5903a7._.js +3 -0
  351. package/cloud-runtime/standalone/.next/server/chunks/ssr/_ed4fece9._.js +3 -0
  352. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f51a3112._.js +3 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +3 -3
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +7 -3
  355. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +2 -0
  356. package/cloud-runtime/standalone/.next/server/instrumentation.js +1 -1
  357. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  358. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  359. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  360. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  361. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  362. package/cloud-runtime/standalone/.next/static/chunks/02add5a8d35c53fe.js +1 -0
  363. package/cloud-runtime/standalone/.next/static/chunks/2362d5c0dcaa5d64.js +1 -0
  364. package/cloud-runtime/standalone/.next/static/chunks/2730394502dd3664.js +1 -0
  365. package/cloud-runtime/standalone/.next/static/chunks/37f07896b044d69f.css +1 -0
  366. package/cloud-runtime/standalone/.next/static/chunks/3dc50de1c86e1ce9.js +1 -0
  367. package/cloud-runtime/standalone/.next/static/chunks/4ea8f08087116055.js +1 -0
  368. package/cloud-runtime/standalone/.next/static/chunks/5607ad702ebb8a4b.js +9 -0
  369. package/cloud-runtime/standalone/.next/static/chunks/6103b9b5538bba4d.css +2 -0
  370. package/cloud-runtime/standalone/.next/static/chunks/98c20da4973991f0.js +1 -0
  371. package/cloud-runtime/standalone/.next/static/chunks/a9da98f883ac833b.js +1 -0
  372. package/cloud-runtime/standalone/.next/static/chunks/{da12f313213a5615.js → b2127dc67c5ade9f.js} +1 -1
  373. package/cloud-runtime/standalone/.next/static/chunks/{76229fb555232113.js → b3377e39d47c71cf.js} +1 -1
  374. package/cloud-runtime/standalone/.next/static/chunks/bf2a2fafb710e63c.js +1 -0
  375. package/cloud-runtime/standalone/.next/static/chunks/c0d17e0c37ba8e7a.js +1 -0
  376. package/cloud-runtime/standalone/.next/static/chunks/cca7c8e4ade050f0.js +37 -0
  377. package/cloud-runtime/standalone/.next/static/chunks/db131a0b6350e416.js +1 -0
  378. package/cloud-runtime/standalone/.next/static/chunks/e51fddf53a6dc1e4.js +9 -0
  379. package/cloud-runtime/standalone/.next/static/chunks/{66769c2bf128027d.js → f4360c3e4089263f.js} +1 -1
  380. package/cloud-runtime/standalone/Dockerfile +5 -5
  381. package/cloud-runtime/standalone/app/api/linear/callback/route.ts +2 -1
  382. package/cloud-runtime/standalone/app/api/linear/issues/context/route.ts +26 -0
  383. package/cloud-runtime/standalone/app/api/linear/issues/route.ts +44 -42
  384. package/cloud-runtime/standalone/app/api/linear/options/route.ts +31 -0
  385. package/cloud-runtime/standalone/app/api/status/route.ts +2 -2
  386. package/cloud-runtime/standalone/components/LinearBoard.tsx +411 -117
  387. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +3 -1
  388. package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +54 -2
  389. package/cloud-runtime/standalone/components/chat-ui/MentionPopover.tsx +43 -2
  390. package/cloud-runtime/standalone/hooks/useLinearIssueMentions.ts +64 -0
  391. package/cloud-runtime/standalone/hooks/useLinearIssues.ts +30 -6
  392. package/cloud-runtime/standalone/hooks/useMentionAutocomplete.ts +54 -6
  393. package/cloud-runtime/standalone/instrumentation.ts +2 -1
  394. package/cloud-runtime/standalone/lib/app-config.ts +55 -0
  395. package/cloud-runtime/standalone/lib/chat/linear-issue-context.ts +79 -0
  396. package/cloud-runtime/standalone/lib/linear-client.ts +166 -15
  397. package/cloud-runtime/standalone/lib/linear-issue-store.ts +433 -0
  398. package/cloud-runtime/standalone/lib/linear-issues.ts +360 -0
  399. package/cloud-runtime/standalone/lib/security.ts +2 -2
  400. package/cloud-runtime/standalone/lib/tiptap/composer-mentions.ts +38 -0
  401. package/cloud-runtime/standalone/lib/tiptap/editor-utils.ts +11 -0
  402. package/cloud-runtime/standalone/lib/tiptap/serialize-composer.ts +10 -0
  403. package/cloud-runtime/standalone/next.config.ts +2 -1
  404. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +2 -5
  405. package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +3 -3
  406. package/cloud-runtime/standalone/styles/composer-pills.css +13 -0
  407. package/package.json +1 -1
  408. package/cloud-runtime/standalone/.linear-token.json +0 -4
  409. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__05243927._.js +0 -29
  410. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1017e012._.js +0 -3
  411. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__28524c6a._.js +0 -3
  412. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c1b28690._.js +0 -49
  413. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dffa5183._.js +0 -29
  414. package/cloud-runtime/standalone/.next/server/chunks/_110bf46e._.js +0 -6
  415. package/cloud-runtime/standalone/.next/server/chunks/_22fe5fd2._.js +0 -3
  416. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__35f9b4a6._.js +0 -3
  417. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__43a0398d._.js +0 -3
  418. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__7e7d6790._.js +0 -3
  419. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__b6598a70._.js +0 -3
  420. package/cloud-runtime/standalone/.next/server/chunks/ssr/_087a5b2b._.js +0 -3
  421. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1e5aee62._.js +0 -3
  422. package/cloud-runtime/standalone/.next/server/chunks/ssr/_45f91a8f._.js +0 -3
  423. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fb404ac0._.js +0 -3
  424. package/cloud-runtime/standalone/.next/static/chunks/0010f3df27ae53b8.js +0 -1
  425. package/cloud-runtime/standalone/.next/static/chunks/09c637be82a06122.js +0 -1
  426. package/cloud-runtime/standalone/.next/static/chunks/0fe219bd73492107.js +0 -5
  427. package/cloud-runtime/standalone/.next/static/chunks/2dbfd095c1e1d01f.js +0 -1
  428. package/cloud-runtime/standalone/.next/static/chunks/360fde144fd22461.js +0 -1
  429. package/cloud-runtime/standalone/.next/static/chunks/416cf5039e669b5d.js +0 -1
  430. package/cloud-runtime/standalone/.next/static/chunks/95b85b1cb6868d27.js +0 -1
  431. package/cloud-runtime/standalone/.next/static/chunks/966278eaefc0aa32.js +0 -1
  432. package/cloud-runtime/standalone/.next/static/chunks/ab74849aeb87503e.js +0 -5
  433. package/cloud-runtime/standalone/.next/static/chunks/c5661b1d4c5abd6a.css +0 -2
  434. package/cloud-runtime/standalone/.next/static/chunks/d522224ad5c8d724.css +0 -1
  435. package/cloud-runtime/standalone/.next/static/chunks/e2fa3c18dd56dc25.js +0 -1
  436. package/cloud-runtime/standalone/.next/static/chunks/e910386016ceacad.js +0 -37
  437. package/cloud-runtime/standalone/.next/static/chunks/f2fe77583374541b.js +0 -1
  438. package/cloud-runtime/standalone/coverage/clover.xml +0 -1208
  439. package/cloud-runtime/standalone/coverage/coverage-final.json +0 -29
  440. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +0 -116
  441. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +0 -208
  442. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +0 -116
  443. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +0 -166
  444. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +0 -116
  445. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +0 -532
  446. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +0 -116
  447. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +0 -178
  448. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +0 -116
  449. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +0 -262
  450. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +0 -116
  451. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +0 -448
  452. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +0 -116
  453. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +0 -331
  454. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +0 -116
  455. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +0 -505
  456. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +0 -116
  457. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +0 -412
  458. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +0 -116
  459. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +0 -304
  460. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +0 -116
  461. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +0 -116
  462. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +0 -202
  463. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +0 -373
  464. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +0 -116
  465. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +0 -499
  466. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +0 -116
  467. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +0 -349
  468. package/cloud-runtime/standalone/coverage/lcov-report/base.css +0 -224
  469. package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +0 -87
  470. package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +0 -259
  471. package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +0 -1228
  472. package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +0 -1024
  473. package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +0 -211
  474. package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +0 -535
  475. package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +0 -415
  476. package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +0 -358
  477. package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +0 -439
  478. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +0 -514
  479. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +0 -256
  480. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +0 -622
  481. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +0 -253
  482. package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +0 -281
  483. package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
  484. package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +0 -116
  485. package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +0 -1042
  486. package/cloud-runtime/standalone/coverage/lcov-report/index.html +0 -341
  487. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +0 -202
  488. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +0 -172
  489. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +0 -265
  490. package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +0 -1252
  491. package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +0 -131
  492. package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +0 -409
  493. package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +0 -1165
  494. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +0 -175
  495. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +0 -157
  496. package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +0 -1
  497. package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +0 -2
  498. package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  499. package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +0 -210
  500. package/cloud-runtime/standalone/coverage/lcov.info +0 -2386
  501. /package/cloud-runtime/standalone/.next/static/{1ixi4WIJBgIPp7LJeYeKs → 1Q0q2lXllTpqCvmNQYtpD}/_buildManifest.js +0 -0
  502. /package/cloud-runtime/standalone/.next/static/{1ixi4WIJBgIPp7LJeYeKs → 1Q0q2lXllTpqCvmNQYtpD}/_clientMiddlewareManifest.json +0 -0
  503. /package/cloud-runtime/standalone/.next/static/{1ixi4WIJBgIPp7LJeYeKs → 1Q0q2lXllTpqCvmNQYtpD}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,268542,531245,154238,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(174080),s=e.i(664659),n=e.i(463059),o=e.i(88081),i=e.i(475254);let l=(0,i.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",()=>l],531245);var d=e.i(39312),c=e.i(327025),u=e.i(690272);let p=(0,i.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var m=e.i(788699),h=e.i(107233),f=e.i(555436),x=e.i(727612),g=e.i(37727),b=e.i(778917),v=e.i(239616),j=e.i(522016),y=e.i(325459),k=e.i(811132);function w({threads:e,participants:i=[],activeThreadId:w,isLoading:N,isCreating:_,onSelectThread:C,onCreateThread:S,onRenameThread:P,onDeleteThread:E,deletingThreadId:A=null,renamingThreadId:T=null,activeParticipantIds:O=[],onToggleParticipantActive:$,visible:I=!1,isRestoringActiveThread:M=!1,onToggle:L,onSearch:F,projects:z=[],onCreateProject:D,onUpdateProject:R,onDeleteProject:U,onAddAgentToProject:B,onRemoveAgentFromProject:K,onAddAgentViaForm:V,onReorderProjectAgents:H,onUpdateParticipant:W,onSelectProject:J,activeProjectId:q=null,activeProjectView:X=null}){let G,Z,Y=(0,r.useRef)(null),[Q,ee]=(0,r.useState)(!1),[et,er]=(0,r.useState)(new Set);(0,r.useEffect)(()=>{if(et.size>0||!z?.length)return;let e=z.find(e=>window.location.pathname.includes(`/projects/${e.slug}`));er(new Set([e?.id??z[0].id]))},[z]);let[ea,es]=(0,r.useState)(null),[en,eo]=(0,r.useState)(new Set),[ei,el]=(0,r.useState)(!1),[ed,ec]=(0,r.useState)(null),[eu,ep]=(0,r.useState)(null),em=(0,k.useProjectFormState)(),[eh,ef]=(0,r.useState)(null),ex=(0,r.useCallback)(e=>{e&&(e.focus(),e.select())},[]),[eg,eb]=(0,r.useState)(null),[ev,ej]=(0,r.useState)(null),ey=ev?i.find(e=>e.id===ev)??null:null,[ek,ew]=(0,r.useState)(null),[eN,e_]=(0,r.useState)(null),eC=async()=>{if(!ed&&!eu)return;if(!em.form.name.trim())return void em.setFormError("Project name is required");let e=em.repos.find(e=>e.name.trim()&&!e.path.trim());if(e)return void em.setFormError(`Local path is required for folder "${e.name}"`);em.setFormError(null),em.setIsSubmitting(!0);let t=(0,k.createProjectPayload)(em.form,em.repos);eu?await R?.(eu.id,t):await D?.(t,ed?.threadId),em.setIsSubmitting(!1),ec(null),ep(null)},eS=async e=>{em.resetForm();try{let t=await fetch(`/api/projects/${e}`);if(!t.ok)throw Error("Failed to load project");let r=(await t.json()).project;ep(r),em.hydrateFromProject(r)}catch(e){console.error("Failed to load project settings",e)}};(0,r.useEffect)(()=>{ee(!0)},[]),(0,r.useEffect)(()=>{let e=!1;async function t(){if(ek?.repoId)try{let t=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(ek.repoId)}`),r=(t.ok?await t.json():{note:null}).note;e||ew(e=>e&&e.repoId===ek.repoId?{...e,generatedKnowledge:r?.content?[{id:r.id,content:r.content,created_at:r.updatedAt??r.createdAt}]:[],isLoadingKnowledge:!1}:e)}catch{e||ew(e=>e&&e.repoId===ek.repoId?{...e,generatedKnowledge:[],isLoadingKnowledge:!1}:e)}}return ek?.repoId&&t(),()=>{e=!0}},[ek?.repoId]);let eP=e=>{V?V(e):(eo(new Set),es({projectId:e}))},eE=ea?z.find(e=>e.id===ea.projectId):null,eA=new Set(eE?.agents.map(e=>e.agent_id)??[]),eT=ea?i.filter(e=>!eA.has(e.id)):[],eO=e.length>0,e$=!!I,eI=[...e].sort((e,t)=>(e.title??"").localeCompare(t.title??"")),eM=new Map(e.map(e=>[e.id,e])),eL=z.filter(e=>!e.is_default),eF=eI.filter(e=>!eL.some(t=>t.thread_ids?.includes(e.id)));!function({focusTarget:e,shouldFocus:t}){(0,r.useEffect)(()=>{if(!t||"u"<typeof document)return;let r=e.current;if(!r||r instanceof HTMLButtonElement&&r.disabled)return;let a=document.activeElement;if(!(a&&(r===a||r.contains(a))))try{r.focus({preventScroll:!0})}catch{r.focus()}},[e,t])}({focusTarget:Y,shouldFocus:e$&&!(N&&!eO||M&&eO)&&!eO&&!_});let ez=()=>{ef({title:"Create chat",placeholder:"Chat title",defaultValue:"",onSubmit:e=>void S({title:e})})};return e$?(0,t.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar","aria-label":"Workspace sidebar","aria-busy":N?"true":void 0,children:[(0,t.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__brand-content flex items-center gap-2 px-1",children:[(0,t.jsx)("div",{className:"workspace-sidebar__brand-icon","aria-hidden":"true",children:(0,t.jsx)("span",{className:"text-[10px]",children:"AGX"})}),(0,t.jsx)("span",{className:"workspace-sidebar__brand-title",children:"Workspace"})]}),L&&(0,t.jsx)("button",{type:"button",onClick:L,"aria-label":"Hide chats",title:"Hide chats",className:"workspace-sidebar__brand-toggle ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,t.jsx)(p,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,t.jsxs)("div",{className:"workspace-sidebar__content",children:[F&&(0,t.jsx)("div",{className:"px-3 pt-2 pb-1",children:(0,t.jsxs)("button",{type:"button",onClick:F,className:"flex h-8 w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 text-xs text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] hover:text-[var(--app-shell-muted)]",children:[(0,t.jsx)(f.Search,{className:"h-3.5 w-3.5 shrink-0",strokeWidth:1.75}),(0,t.jsx)("span",{children:"Search..."}),(0,t.jsx)("kbd",{className:"ml-auto rounded border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1 py-0.5 font-sans text-[10px] font-medium text-[var(--app-shell-soft-text)]",children:"⌘K"})]})}),(0,t.jsx)("nav",{className:"workspace-sidebar__section",style:{gap:0},children:(0,t.jsxs)(j.default,{href:"/agents",className:"workspace-sidebar__nav-item",children:[(0,t.jsx)(l,{size:14,className:"flex-shrink-0"}),"Manage Agents"]})}),(0,t.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__section-header group/projects-header",children:[(0,t.jsx)("p",{className:"workspace-sidebar__section-label",children:"Projects"}),(0,t.jsx)("div",{className:"workspace-sidebar__header-actions",children:(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/projects-header:opacity-100",onClick:()=>{em.resetForm(),ep(null),ec({})},"aria-label":"Create project",title:"Create project",children:(0,t.jsx)(h.Plus,{size:14})})})]}),eL.map(e=>{let r=et.has(e.id),a=eI.filter(t=>e.thread_ids?.includes(t.id)),l=e.id===q,p=e.thread_ids?.find(e=>eM.has(e))??e.thread_ids?.[0]??a[0]?.id??null,f=l&&"thread"===X&&p===w,g=l&&"automations"===X,k=l&&"linear"===X;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-item group",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item",children:[(0,t.jsx)("button",{type:"button",className:"inline-flex items-center justify-center rounded-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>{var t;return t=e.id,void er(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},"aria-label":r?`Collapse ${e.name}`:`Expand ${e.name}`,title:r?"Collapse project":"Expand project",children:r?(0,t.jsx)(s.ChevronDown,{size:14,className:"flex-shrink-0"}):(0,t.jsx)(n.ChevronRight,{size:14,className:"flex-shrink-0"})}),(0,t.jsx)(c.Folder,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title",children:e.name})]}),(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-actions",children:[(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action",onClick:()=>void eS(e.id),"aria-label":`Open project settings for ${e.name}`,title:"Project settings",children:(0,t.jsx)(m.Pencil,{size:12})}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action workspace-sidebar__workspace-action--delete",onClick:()=>{var t;let r;return t=e.id,r=z.find(e=>e.id===t),void eb({title:"Delete project",message:`Delete "${r?.name??"project"}"? Its agents will move to the Default project.`,onConfirm:()=>void U?.(t)})},"aria-label":`Delete project ${e.name}`,title:`Delete project ${e.name}`,children:(0,t.jsx)(x.Trash2,{size:12})})]})]}),r&&(0,t.jsxs)("div",{className:"ml-4 my-1 flex flex-col gap-0.5 border-l border-[var(--app-shell-border)] pl-3",children:[(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-item group/linear flex items-center",children:[(0,t.jsxs)(j.default,{href:`/projects/${e.slug}/linear`,className:`workspace-sidebar__nav-item flex-1 ${k?"workspace-sidebar__nav-item--active":""}`,"aria-current":k?"page":void 0,children:[(0,t.jsx)(b.ExternalLink,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Linear"})]}),(0,t.jsx)(j.default,{href:`/projects/${e.slug}/linear?settings=true`,className:"flex h-5 w-5 items-center justify-center rounded opacity-0 group-hover/linear:opacity-100 hover:bg-[var(--sidebar-hover)] transition-opacity",title:"Linear settings",children:(0,t.jsx)(v.Settings,{size:11,className:"text-[var(--muted-foreground)]"})})]}),(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,t.jsxs)(j.default,{href:`/projects/${e.slug}/automations`,className:`workspace-sidebar__nav-item ${g?"workspace-sidebar__nav-item--active":""}`,"aria-current":g?"page":void 0,children:[(0,t.jsx)(d.Zap,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Scheduled Tasks"})]})}),(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item",children:p?(0,t.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${f?"workspace-sidebar__nav-item--active":""}`,onClick:()=>C(p),"aria-current":f?"page":void 0,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Chat"})]}):(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item",onClick:ez,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Chat"})]})}),(0,t.jsxs)("div",{className:"pt-1",children:[(0,t.jsxs)("div",{className:"group/repos-header flex items-center justify-between px-3 py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Folders"}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>ew({projectId:e.id,projectName:e.name,repoId:null,name:"",path:"",gitUrl:"",notes:"",generatedKnowledge:[],isLoadingKnowledge:!1,isSaving:!1,error:null}),"aria-label":"Add folder",title:"Add folder",children:(0,t.jsx)(h.Plus,{size:12})})]}),e.repos.length>0?e.repos.map(r=>(0,t.jsxs)("div",{className:"workspace-sidebar__workspace-item group/repo flex items-center",children:[(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item min-w-0 flex-1 text-left",onClick:()=>ew({projectId:e.id,projectName:e.name,repoId:r.id,name:r.name,path:r.path||"",gitUrl:r.git_url||"",notes:r.notes||"",generatedKnowledge:[],isLoadingKnowledge:!0,isSaving:!1,error:null}),children:[(0,t.jsx)(u.FolderGit2,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)] ml-2"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:r.name})]}),(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 group-hover/repo:opacity-100 transition-opacity flex-shrink-0 text-[var(--muted-foreground)] hover:text-red-400",onClick:async t=>{t.stopPropagation();let a=e.repos.filter(e=>e.id!==r.id).map(e=>({id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes}));await R?.(e.id,{repos:a})},"aria-label":"Delete folder",title:"Delete folder",children:(0,t.jsx)(x.Trash2,{size:12})})]},`${e.id}:${r.name}:${r.path??""}`)):(0,t.jsx)("p",{className:"px-3 py-1 text-[11px] text-[var(--muted-foreground)]",children:"No folders"})]}),(0,t.jsxs)("div",{className:"pt-1",children:[(0,t.jsxs)("div",{className:"group/agents-header flex items-center justify-between px-3 py-1",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Agents"}),e.agents.length>0&&(0,t.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>eP(e.id),"aria-label":"Add agents",title:"Add agents",children:(0,t.jsx)(h.Plus,{size:12})})]}),e.agents.length>0?(0,t.jsx)(t.Fragment,{children:e.agents.map((r,a)=>{let s=i.find(e=>e.id===r.agent_id),n=eN?.projectId===e.id&&eN?.agentId===r.agent_id,o=eN?.projectId===e.id&&eN?.overIndex===a&&!n;return(0,t.jsx)("div",{draggable:!0,onDragStart:t=>{t.dataTransfer.effectAllowed="move",e_({projectId:e.id,agentId:r.agent_id,overIndex:a})},onDragOver:t=>{t.preventDefault(),eN&&eN.projectId===e.id&&e_(e=>e?{...e,overIndex:a}:null)},onDragEnd:()=>{if(eN&&eN.projectId===e.id&&H){let t=e.agents.map(e=>e.agent_id),r=t.indexOf(eN.agentId),a=eN.overIndex;if(-1!==r&&r!==a){let s=[...t],[n]=s.splice(r,1);s.splice(a,0,n),H(e.id,s)}}e_(null)},className:`group/agent flex items-center ${o?"border-t-2 border-[var(--border)]":"border-t-2 border-transparent"} ${n?"opacity-40":""}`,children:(0,t.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item flex-1 min-w-0 !py-1",onClick:()=>ej(r.agent_id),children:[(0,t.jsx)("span",{className:`cursor-grab text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] flex-shrink-0 mr-0.5 transition-opacity ${0===a?"opacity-100":"opacity-0 group-hover/agent:opacity-100"}`,title:"Drag to reorder",children:"⠿"}),(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(r.agent_id,16,s?.color),alt:"",className:"w-4 h-4 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:s?.name??r.agent_id}),0===a&&(0,t.jsx)("span",{className:"ml-auto text-[9px] text-[var(--muted-foreground)] font-medium flex-shrink-0",title:"Default responder (top agent responds first)",children:"DEFAULT"})]})},r.agent_id)})}):(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 px-3 py-1 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>eP(e.id),children:[(0,t.jsx)(h.Plus,{size:10}),(0,t.jsx)("span",{children:"Add agents"})]})]})]})]},e.id)}),eF.length>0&&(0,t.jsxs)("div",{className:"pt-3",children:[(0,t.jsx)("p",{className:"px-1 py-1 text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Unassigned Threads"}),eF.map(e=>{let r=e.id===w,a=e.title?.trim()||"Untitled thread";return(0,t.jsx)("div",{className:"workspace-sidebar__workspace-item group",children:(0,t.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item ${r?"workspace-sidebar__nav-item--active workspace-sidebar__workspace-nav-item--active":""}`,onClick:()=>C(e.id),"aria-current":r?"page":void 0,children:[(0,t.jsx)(o.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"workspace-sidebar__workspace-title",children:a})]})},e.id)})]})]})]}),(0,t.jsx)("div",{className:"mt-auto px-3 pb-3",children:(0,t.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:e=>e.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:e=>e.currentTarget.style.backgroundColor="#5865F2",children:[(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})}),Q&&ek&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{ek.isSaving||ew(null)},children:(0,t.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:ek.projectName}),(0,t.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:ek.repoId?ek.name||"Folder":"Add Folder"})]}),(0,t.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{ek.isSaving||ew(null)},"aria-label":"Close folder details",disabled:ek.isSaving,children:(0,t.jsx)(g.X,{size:16})})]}),(0,t.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,t.jsx)("input",{value:ek.name,onChange:e=>ew(t=>t?{...t,name:e.target.value,error:null}:t),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:ek.isSaving,placeholder:"e.g. Frontend, API Docs, Design System"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:ek.path,onChange:e=>ew(t=>t?{...t,path:e.target.value,error:null}:t),className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:ek.isSaving,placeholder:"Local path to folder"}),(0,t.jsx)("button",{type:"button",className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",disabled:ek.isSaving,onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&ew(e=>e?{...e,path:t.path,error:null}:e)}catch{}},children:"Browse"})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Notes"}),(0,t.jsx)("textarea",{value:ek.notes,onChange:e=>ew(t=>t?{...t,notes:e.target.value,error:null}:t),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:ek.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),ek.repoId?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Note"}),ek.isLoadingKnowledge?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):ek.generatedKnowledge.length>0?(0,t.jsx)("div",{className:"space-y-2",children:ek.generatedKnowledge.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No note yet."})]}):null,ek.error?(0,t.jsx)("p",{className:"text-xs text-red-600",children:ek.error}):null,(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,t.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>ew(null),disabled:ek.isSaving,children:"Cancel"}),(0,t.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:ek.isSaving||!R,onClick:async()=>{let e=z.find(e=>e.id===ek.projectId);if(!e)return void ew(e=>e?{...e,error:"Project not found."}:e);let t=ek.name.trim(),r=ek.path.trim();if(!t)return void ew(e=>e?{...e,error:"Folder name is required."}:e);if(!r)return void ew(e=>e?{...e,error:"Folder path is required."}:e);ew(e=>e?{...e,isSaving:!0,error:null}:e);try{let a=ek.repoId?e.repos.map(e=>e.id===ek.repoId?{id:e.id,name:t,path:r,git_url:ek.gitUrl.trim()||void 0,notes:ek.notes.trim()||void 0}:{id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes}):[...e.repos.map(e=>({id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes})),{name:t,path:r,git_url:ek.gitUrl.trim()||void 0,notes:ek.notes.trim()||void 0}];await R?.(e.id,{repos:a}),ew(null)}catch(e){ew(t=>t?{...t,isSaving:!1,error:e instanceof Error?e.message:"Failed to save folder details."}:t)}},children:ek.isSaving?"Saving...":ek.repoId?"Save":"Add Folder"})]})]})]})}),document.body),Q&&ea&&!ei&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>es(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",eE?.name??"project"]}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>es(null),children:(0,t.jsx)(g.X,{size:16})})]}),(0,t.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,t.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>el(!0),children:[(0,t.jsx)(h.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===eT.length?(0,t.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):eT.map(e=>{let r=en.has(e.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${r?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{eo(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},children:[(0,t.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${r?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:r&&(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,t.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(e.id,24,e.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,t.jsx)("div",{className:"truncate font-medium text-xs",children:e.name}),(0,t.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:e.model})]})]},e.id)})]}),eT.length>0&&(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>es(null),children:"Cancel"}),(0,t.jsxs)("button",{type:"button",disabled:0===en.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let e of en)B?.(ea.projectId,e);es(null)},children:["Add ",en.size>0?`(${en.size})`:""]})]})]})}),document.body),Q&&ei&&(0,a.createPortal)((0,t.jsx)(y.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:z?.filter(e=>!e.is_default).map(t=>{let r=(t.thread_ids??[]).map(t=>e.find(e=>e.id===t)?.title?.trim()).filter(Boolean).join(", ")||"No chat";return{id:t.id,name:t.name,label:`${r} › ${t.name}`}}),initialProjectIds:ea?[ea.projectId]:[],onSubmit:async(e,t)=>{let r=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],a=r[i.length%r.length],s=e.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),n=t?.[0],o=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:s,name:e.name,provider:e.provider,model:e.model,color:e.color??a,...e.title?{title:e.title}:{},...e.identity?{identity:e.identity}:{},skills:e.skills??[],skillBindings:e.skillBindings??[],...n?{projectId:n}:{}})});if(o.ok){let e=await o.json().catch(()=>({})),r="string"==typeof e?.id&&e.id.trim()?e.id.trim():s;for(let e of(t??[]).slice(1))B?.(e,r);el(!1),es(null)}},onCancel:()=>{el(!1)}}),document.body),Q&&eh&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ef(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:eh.title}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ef(null),children:(0,t.jsx)(g.X,{size:16})})]}),(0,t.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:e=>{e.preventDefault();let t=new FormData(e.currentTarget),r=t.get("value")?.trim();r&&(eh.onSubmit(r),ef(null))},children:[(0,t.jsx)("input",{ref:ex,name:"value",type:"text",defaultValue:eh.defaultValue,placeholder:eh.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>ef(null),children:"Cancel"}),(0,t.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:eh.defaultValue?"Save":"Create"})]})]})]})}),document.body),Q&&eg&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>eb(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:eg.title}),(0,t.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>eb(null),children:(0,t.jsx)(g.X,{size:16})})]}),(0,t.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:eg.message}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>eb(null),children:"Cancel"}),(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{eg.onConfirm(),eb(null)},children:"Delete"})]})]})]})}),document.body),Q&&(ed||eu)&&(0,a.createPortal)((0,t.jsx)(k.default,{isOpen:!0,onClose:()=>{em.resetForm(),ec(null),ep(null)},onSubmit:()=>void eC(),editingProject:eu,form:em.form,repos:em.repos,isSubmitting:em.isSubmitting,formError:em.formError,onFieldChange:(e,t)=>em.setForm(r=>({...r,[e]:t})),onRepoChange:em.handleRepoChange,onAddRepo:em.addRepo,onRemoveRepo:em.removeRepo}),document.body),Q&&ey&&(0,a.createPortal)((G=z.filter(e=>e.agents.some(e=>e.agent_id===ey.id)),Z=z.filter(e=>!e.agents.some(e=>e.agent_id===ey.id)),(0,t.jsx)(y.AgentForm,{title:"Edit agent",initial:{name:ey.name,title:ey.title||"",provider:ey.provider,model:ey.model||"",identity:ey.identity||"",color:ey.color,skills:ey.skills||[],skillBindings:ey.skillBindings||[]},agentId:ey.id,submitLabel:"Save",projectMemberships:{current:G.map(e=>({id:e.id,name:e.name,is_default:!!e.is_default})),available:Z.map(e=>({id:e.id,name:e.name}))},onAddToProject:B?e=>B(e,ey.id):void 0,onRemoveFromProject:K?e=>K(e,ey.id):void 0,onSubmit:async e=>{W&&await W({...ey,name:e.name,title:e.title||void 0,provider:e.provider,model:e.model,color:e.color??ey.color,...e.identity?{identity:e.identity}:{},skills:e.skills??[],skillBindings:e.skillBindings??[]}),ej(null)},onCancel:()=>ej(null)})),document.body)]}):(0,t.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,t.jsx)("div",{className:"workspace-sidebar__brand",children:(0,t.jsx)("button",{type:"button",onClick:L,className:"workspace-sidebar__brand-icon border-none outline-none cursor-pointer","aria-label":"Show chats",title:"Show chats",children:(0,t.jsx)("span",{className:"text-[10px]",children:"AGX"})})}),(0,t.jsx)("div",{className:"mt-auto p-2",children:(0,t.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:e=>e.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:e=>e.currentTarget.style.backgroundColor="#5865F2",title:"Join Discord",children:(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})}e.s(["WorkspaceSidebar",()=>w],268542);let N="agx-chat:uiSettings",_={threadSidebarVisible:!1};function C(){return void 0!==window.localStorage}function S(){if(!C())return{..._};let e=window.localStorage.getItem(N);if(!e)return{..._};try{let t=JSON.parse(e);return{..._,threadSidebarVisible:"boolean"==typeof t.threadSidebarVisible&&t.threadSidebarVisible}}catch{return{..._}}}function P(){return S().threadSidebarVisible}function E(e){var t={...S(),threadSidebarVisible:e};if(C())try{window.localStorage.setItem(N,JSON.stringify(t))}catch{}}e.s(["loadWorkspaceSidebarVisible",()=>P,"persistWorkspaceSidebarVisible",()=>E],154238)},239616,e=>{"use strict";let t=(0,e.i(475254).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",()=>t],239616)},274049,e=>{"use strict";var t=e.i(271645);function r(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!1),[n,o]=(0,t.useState)(null),i=(0,t.useCallback)(async()=>{s(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),o(null)}catch(e){o(e instanceof Error?e:Error("Unknown error"))}finally{s(!1)}},[]);(0,t.useEffect)(()=>{i()},[i]);let l=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:n,refetch:i,createProject:l,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?s:t)),s},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}}function a(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!0),n=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,s]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),s.ok&&(r=((await s.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{s(!1)}},[]);(0,t.useEffect)(()=>{n()},[n]);let o=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,s=a.name.trim(),n=(a.slug||s.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:s,slug:n})});if(!o.ok)return null;let{project:i}=await o.json(),l=Array.isArray(t)?t:t?[t]:[];for(let e of l)await fetch(`/api/projects/${i.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(()=>{});let d={...i,repos:i.repos??[],agents:[],thread_ids:l,workspace_ids:l};return r(e=>[...e,d].sort((e,t)=>e.name.localeCompare(t.name))),d}catch{return null}},[]),i=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),l=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...s,repos:s.repos??t.repos}:t)),s}catch{return null}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:o,updateProject:d,renameProject:i,deleteProject:l,addAgent:c,removeAgent:u,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await n()}catch{}},[n]),refresh:n}}e.s(["useProjects",()=>r,"useProjectsWithAgents",()=>a])},555436,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],555436)},778917,e=>{"use strict";let t=(0,e.i(475254).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],778917)},811132,e=>{"use strict";var t=e.i(843476),r=e.i(271645);function a({initialPath:e,onSelect:a,onCancel:s}){let[n,o]=(0,r.useState)(e||""),[i,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null),m=(0,r.useRef)(null),h=(0,r.useCallback)(async e=>{c(!0),p(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void p(a.error||"Failed to browse");l(a),o(a.current),m.current?.scrollTo(0,0)}catch{p("Failed to connect")}finally{c(!1)}},[]);return(0,r.useEffect)(()=>{h(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:n,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&h(n)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>h(n),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:m,className:"max-h-48 overflow-y-auto",children:[d&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!d&&i&&(0,t.jsxs)("div",{className:"py-1",children:[i.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>h(i.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===i.dirs.length&&!i.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),i.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>h(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:i?.current||n}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(i?.current||n),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}let s={name:"",description:""},n={name:"",path:"",notes:""};function o(){let[e,t]=(0,r.useState)(s),[a,o]=(0,r.useState)([n]),[i,l]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),u=(0,r.useCallback)((e,t,r)=>{o(a=>a.map((a,s)=>s===e?{...a,[t]:r}:a))},[]),p=(0,r.useCallback)(()=>{o(e=>[...e,{...n}])},[]),m=(0,r.useCallback)(e=>{o(t=>t.filter((t,r)=>r!==e))},[]),h=(0,r.useCallback)(()=>{t(s),o([n]),c(null)},[]),f=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?o(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):o([n]),c(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:u,addRepo:p,removeRepo:m,resetForm:h,hydrateFromProject:f,isSubmitting:i,setIsSubmitting:l,formError:d,setFormError:c}}function i(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}}function l({form:e,repos:s,isEditingProject:n,isSubmitting:o,onFieldChange:i,onRepoChange:l,onAddRepo:d,onRemoveRepo:c}){let[u,p]=(0,r.useState)([]),[m,h]=(0,r.useState)(null),f=(0,r.useRef)(0);(0,r.useEffect)(()=>{n?p([]):p(s.map((e,t)=>t)),f.current=s.length},[n,s.length]),(0,r.useEffect)(()=>{if(!n){f.current=s.length;return}let e=f.current;p(t=>{let r=t.filter(e=>e<s.length);return s.length>e&&r.push(...Array.from({length:s.length-e},(t,r)=>e+r)),r}),f.current=s.length},[n,s.length]);let x=(0,r.useCallback)(e=>{p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),g=(0,r.useCallback)(e=>!n||u.includes(e),[u,n]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>i("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:o})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>i("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:o})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:"Code repos, doc folders, design assets, config directories — any path your team needs access to."})]}),(0,t.jsx)("button",{type:"button",onClick:d,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:o,children:"+ Add Folder"})]}),(0,t.jsx)("div",{className:"space-y-4",children:s.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",r+1]}),n&&!g(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed folder"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[n&&(0,t.jsx)("button",{type:"button",onClick:()=>x(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:o,children:g(r)?"Done":"Edit"}),s.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>c(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:o,children:"Remove"})]})]}),g(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>l(r,"name",e.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:o}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>l(r,"path",e.target.value),placeholder:"Local path to folder",className:"input text-sm flex-1",disabled:o}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&l(r,"path",t.path)}catch{h(m===r?null:r)}},className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:o,children:"Browse"})]}),m===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a,{initialPath:e.path||"",onSelect:e=>{l(r,"path",e),h(null)},onCancel:()=>h(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>l(r,"notes",e.target.value),placeholder:"Notes for this folder — e.g. coding conventions, deploy steps, ownership, doc standards...",className:"input text-sm w-full min-h-24 resize-y",disabled:o})})]}):null]},r))})]})]})}function d({isOpen:e,onClose:a,onSubmit:s,editingProject:n,form:o,repos:i,isSubmitting:d,formError:c,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:h}){let[f,x]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let e=!1;return async function(){if(!n)return x([]);try{let t=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(n.id)}`),r=(t.ok?await t.json():{note:null}).note;e||x(r?.content?[{id:r.id,content:r.content,created_at:r.updatedAt??r.createdAt,source:r.sourceType}]:[])}catch{e||x([])}}(),()=>{e=!0}},[n]),e)?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:n?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:n?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[n&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),f.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:f.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,t.jsx)(l,{form:o,repos:i,isEditingProject:!!n,isSubmitting:d,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:h}),c&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:c})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:s,disabled:d,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:d?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):n?"Save Changes":"Create Project"})]})]})}):null}e.s(["createProjectPayload",()=>i,"default",()=>d,"useProjectFormState",()=>o],811132)},75505,e=>{"use strict";let t=(0,e.i(475254).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],75505)},643531,e=>{"use strict";let t=(0,e.i(475254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],643531)},284614,e=>{"use strict";let t=(0,e.i(475254).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",()=>t],284614)},283086,e=>{"use strict";let t=(0,e.i(475254).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",()=>t],283086)},107233,e=>{"use strict";let t=(0,e.i(475254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],107233)},664659,e=>{"use strict";let t=(0,e.i(475254).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],664659)},475254,e=>{"use strict";var t=e.i(271645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var s={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:n=2,absoluteStrokeWidth:o,className:i="",children:l,iconNode:d,...c},u)=>(0,t.createElement)("svg",{ref:u,...s,width:a,height:a,stroke:e,strokeWidth:o?24*Number(n)/Number(a):n,className:r("lucide",i),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...d.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(l)?l:[l]])),o=(e,s)=>{let o=(0,t.forwardRef)(({className:o,...i},l)=>(0,t.createElement)(n,{ref:l,iconNode:s,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...i}));return o.displayName=a(e),o};e.s(["default",()=>o],475254)},37727,e=>{"use strict";let t=(0,e.i(475254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],37727)},233525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},998183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return l},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return i}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});function n(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,o(e));else t.set(r,o(a));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return i},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(190809)._(e.r(998183)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,a=e.protocol||"",s=e.pathname||"",i=e.hash||"",l=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(n.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==d?(d="//"+(d||""),s&&"/"!==s[0]&&(s="/"+s)):d||(d=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),s=s.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${s}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return i(e)}},818581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return s}});let a=e.r(271645);function s(e,t){let r=(0,a.useRef)(null),s=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(r.current=n(e,a)),t&&(s.current=n(t,a))},[e,t])}function n(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},718967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return y},MissingStaticPage:function(){return j},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return f},ST:function(){return x},WEB_VITALS:function(){return n},execOnce:function(){return o},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return k}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>i.test(e);function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function m(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&p(r))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let f="u">typeof performance,x=f&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class y extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function k(e){return JSON.stringify({message:e.message,stack:e.stack})}},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return n}});let a=e.r(718967),s=e.r(652817);function n(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,s.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return g},useLinkStatus:function(){return v}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(190809),o=e.r(843476),i=n._(e.r(271645)),l=e.r(195057),d=e.r(8372),c=e.r(818581),u=e.r(718967),p=e.r(405550);e.r(233525);let m=e.r(91949),h=e.r(573668),f=e.r(509396);function x(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function g(t){var r;let a,s,n,[l,g]=(0,i.useOptimistic)(m.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:j,as:y,children:k,prefetch:w=null,passHref:N,replace:_,shallow:C,scroll:S,onClick:P,onMouseEnter:E,onTouchStart:A,legacyBehavior:T=!1,onNavigate:O,ref:$,unstable_dynamicOnHover:I,...M}=t;a=k,T&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let L=i.default.useContext(d.AppRouterContext),F=!1!==w,z=!1!==w?null===(r=w)||"auto"===r?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:D,as:R}=i.default.useMemo(()=>{let e=x(j);return{href:e,as:y?x(y):e}},[j,y]);if(T){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=i.default.Children.only(a)}let U=T?s&&"object"==typeof s&&s.ref:$,B=i.default.useCallback(e=>(null!==L&&(v.current=(0,m.mountLinkInstance)(e,D,L,z,F,g)),()=>{v.current&&((0,m.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,m.unmountPrefetchableInstance)(e)}),[F,D,L,z,g]),K={ref:(0,c.useMergedRef)(B,U),onClick(t){T||"function"!=typeof P||P(t),T&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!L||t.defaultPrevented||function(t,r,a,s,n,o,l){if("u">typeof window){let d,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(699781);i.default.startTransition(()=>{u(a||r,n?"replace":"push",o??!0,s.current)})}}(t,D,R,v,_,S,O)},onMouseEnter(e){T||"function"!=typeof E||E(e),T&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),L&&F&&(0,m.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){T||"function"!=typeof A||A(e),T&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),L&&F&&(0,m.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,u.isAbsoluteUrl)(R)?K.href=R:T&&!N&&("a"!==s.type||"href"in s.props)||(K.href=(0,p.addBasePath)(R)),n=T?i.default.cloneElement(s,K):(0,o.jsx)("a",{...M,...K,children:a}),(0,o.jsx)(b.Provider,{value:l,children:n})}e.r(284508);let b=(0,i.createContext)(m.IDLE_LINK_STATUS),v=()=>(0,i.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},755838,(e,t,r)=>{"use strict";var a=e.r(271645),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=a.useState,o=a.useEffect,i=a.useLayoutEffect,l=a.useDebugValue;function d(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!s(e,r)}catch(e){return!0}}var c="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=n({inst:{value:r,getSnapshot:t}}),s=a[0].inst,c=a[1];return i(function(){s.value=r,s.getSnapshot=t,d(s)&&c({inst:s})},[e,r,t]),o(function(){return d(s)&&c({inst:s}),e(function(){d(s)&&c({inst:s})})},[e]),l(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:c},802239,(e,t,r)=>{"use strict";t.exports=e.r(755838)},752822,(e,t,r)=>{"use strict";var a=e.r(271645),s=e.r(802239),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=s.useSyncExternalStore,i=a.useRef,l=a.useEffect,d=a.useMemo,c=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,s){var u=i(null);if(null===u.current){var p={hasValue:!1,value:null};u.current=p}else p=u.current;var m=o(e,(u=d(function(){function e(e){if(!l){if(l=!0,o=e,e=a(e),void 0!==s&&p.hasValue){var t=p.value;if(s(t,e))return i=t}return i=e}if(t=i,n(o,e))return t;var r=a(e);return void 0!==s&&s(t,r)?(o=e,t):(o=e,i=r)}var o,i,l=!1,d=void 0===r?null:r;return[function(){return e(t())},null===d?void 0:function(){return e(d())}]},[t,r,a,s]))[0],u[1]);return l(function(){p.hasValue=!0,p.value=m},[m]),c(m),m}},430224,(e,t,r)=>{"use strict";t.exports=e.r(752822)},463059,e=>{"use strict";let t=(0,e.i(475254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],463059)},88081,e=>{"use strict";let t=(0,e.i(475254).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",()=>t],88081)},327025,e=>{"use strict";let t=(0,e.i(475254).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",()=>t],327025)},727612,e=>{"use strict";let t=(0,e.i(475254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],727612)},690272,e=>{"use strict";let t=(0,e.i(475254).default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);e.s(["FolderGit2",()=>t],690272)}]);
@@ -0,0 +1,37 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,515247,e=>{"use strict";var t=e.i(843476),r=e.i(271645),s=e.i(618566),a=e.i(274049),n=e.i(770703),i=e.i(643531),o=e.i(664659),l=e.i(503116);let d=(0,e.i(475254).default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var c=e.i(431343),u=e.i(16715),m=e.i(555436),x=e.i(239616),p=e.i(284614),g=e.i(430520),f=e.i(650030),h=e.i(514065),v=e.i(829415),b=e.i(286476);function j(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function w(e){var t,r;let s,a,n=e.issue.identifier.trim()||"TICKET-ID",i=e.issue.title.trim()||"Untitled ticket",o=String(e.issue.status??"").trim()||"Unknown",l=String(e.issue.assignee??"").trim()||"Unassigned",d=function(e){let t=String(e?.slug??"").trim();if(t)return j(t,"project");let r=String(e?.name??"").trim();return r?j(r,"project"):"project"}(e.project),c=String(e.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${d}`,u=String(e.runtime?.issueKnowledgePath??"").trim()||`${c}/issues/${n}/`,m=String(e.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${j(n,"ticket")}`,x=`LINEAR TASK EXECUTION
2
+
3
+ You are an engineer working through a single Linear ticket. Work like a careful teammate: continue existing work when present, investigate before coding, present a plan before implementation, ask clarifying questions when requirements are ambiguous, and stop cleanly when blocked instead of guessing.
4
+
5
+ INJECTED CONTEXT
6
+ - Ticket: ${n}
7
+ - Title: ${i}
8
+ - Current status: ${o}
9
+ - Current assignee: ${l}
10
+ - Project: ${(t=e.project,s=String(t?.name??"").trim(),a=String(t?.slug??"").trim(),s&&a?`${s} (${a})`:s||a||"current project")}
11
+ - Knowledge base root: ${c}
12
+ - Issue knowledge path: ${u}
13
+ - Suggested isolated worktree: ${m}
14
+ - Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.
15
+
16
+ SOURCE REPOSITORIES
17
+ ${!(r=e.project?.repos)||0===r.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":r.map(e=>{let t=[e.name.trim()||"repository"],r=String(e.path??"").trim(),s=String(e.notes??"").trim();return r&&t.push(`path: ${r}`),s&&t.push(`notes: ${s}`),`- ${t.join(" | ")}`}).join("\n")}
18
+
19
+ WORKFLOW
20
+ 1. Read the full Linear issue and comment thread before acting. Use Linear MCP for issue details, comments, state changes, and follow-up.
21
+ 2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.
22
+ 3. If requirements are unclear, ask specific clarifying questions in Linear and stop.
23
+ 4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.
24
+ 5. If a reviewed plan already exists or the ticket is explicitly ready for implementation, implement in an isolated worktree or equivalent isolated workspace rather than a shared checkout.
25
+ 6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.
26
+ 7. Keep Linear accurate: comments, links, statuses, blockers, and PR references should match reality.
27
+ 8. Keep the knowledge base current with what you learned, what changed, and what remains.
28
+ 9. Work on exactly this ticket during this session.
29
+
30
+ RULES
31
+ - Use the injected project context instead of hardcoded repo-specific paths or conventions.
32
+ - Use knowledge base terminology; the filesystem path above is the storage location.
33
+ - If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.
34
+ - Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them.
35
+
36
+ `;return{prompt:`Work on this Linear ticket: ${n} - ${i}`,promptPrefix:x}}var y=e.i(778917),k=e.i(531278);let N=[{id:"claude",label:"Claude Code",icon:"🟣"},{id:"codex",label:"Codex",icon:"⚫"},{id:"gemini",label:"Gemini CLI",icon:"🔵"}];function C({connected:e,user:s,clis:a,mcpConfigured:n,onConnect:o,onConnectWithKey:l,onDisconnect:d,onConfigureMcp:c,onContinue:u}){let[m,x]=(0,r.useState)(""),[p,g]=(0,r.useState)(null),[f,h]=(0,r.useState)(!1),[v,b]=(0,r.useState)(null),[j,w]=(0,r.useState)(null),C=async()=>{if(!m.trim())return;h(!0),g(null);let e=await l(m.trim());h(!1),e.ok||g(e.error||"Failed to connect")},S=async e=>{b(e),w(null);let t=await c(e);b(null),t.ok||w(t.error||"Failed to configure")},I=N.filter(e=>a[e.id]).some(e=>n[e.id]);return(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsxs)("div",{className:"w-full max-w-md space-y-6 px-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[e&&(0,t.jsx)("div",{className:"flex h-4 w-4 items-center justify-center rounded-full bg-green-500/20",children:(0,t.jsx)(i.Check,{size:10,className:"text-green-500"})}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Connect to Linear"})]}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Connect your workspace to browse tickets and execute them with agents."}),(0,t.jsx)("div",{className:"mt-3 space-y-3",children:e?(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2",children:[(0,t.jsxs)("div",{className:"text-xs text-[var(--foreground)]",children:["Connected as"," ",(0,t.jsx)("span",{className:"font-medium",children:s?.name})]}),(0,t.jsx)("button",{type:"button",onClick:d,className:"text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Disconnect"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:o,className:"w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:"Connect with Linear"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"}),"or",(0,t.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)] block mb-1",children:"Personal API key"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{type:"password",value:m,onChange:e=>{x(e.target.value),g(null)},onKeyDown:e=>{"Enter"===e.key&&C()},placeholder:"lin_api_...",className:"flex-1 rounded-md border border-[var(--card-border)] bg-transparent px-3 py-1.5 text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 focus:ring-[var(--foreground)]"}),(0,t.jsx)("button",{type:"button",onClick:C,disabled:!m.trim()||f,className:"rounded-md border border-[var(--card-border)] px-3 py-1.5 text-xs text-[var(--foreground)] transition-colors hover:bg-[var(--card-border)] disabled:opacity-40",children:f?"...":"Save"})]}),p&&(0,t.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:p}),(0,t.jsxs)("a",{href:"https://linear.app/settings/api",target:"_blank",rel:"noopener noreferrer",className:"mt-1 inline-flex items-center gap-1 text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:["Generate at linear.app/settings/api",(0,t.jsx)(y.ExternalLink,{size:8})]})]})]})})]}),e&&(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Configure MCP"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Add the Linear MCP server to your AI tools so agents can read and update tickets during execution."}),(0,t.jsxs)("div",{className:"mt-3 space-y-1",children:[N.map(e=>{let r=a[e.id],s=n[e.id],o=v===e.id;return(0,t.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2 ${!r?"opacity-40":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)("span",{children:e.icon}),(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:e.label})]}),r?s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-green-500",children:[(0,t.jsx)(i.Check,{size:10}),"Configured"]}):(0,t.jsx)("button",{type:"button",onClick:()=>S(e.id),disabled:o,className:"flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-[var(--foreground)] border border-[var(--card-border)] hover:bg-[var(--card-border)] transition-colors disabled:opacity-50",children:o?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(k.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},e.id)}),j&&(0,t.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:j})]}),(0,t.jsx)("button",{type:"button",onClick:u,className:"mt-4 w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:I?"Continue":"Skip for now"})]})]})})}let S=(0,n.default)(()=>e.A(711760).then(e=>e.Composer),{loadableGenerated:{modules:[895214]},ssr:!1});function I({onResize:e}){let s=(0,r.useRef)(!1),a=(0,r.useRef)(0);return(0,r.useEffect)(()=>{if(!s.current)return;let t=t=>{let r=t.clientX-a.current;a.current=t.clientX,e(r)},r=()=>{s.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",r)};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",r),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",r)}}),(0,t.jsx)("div",{className:"group relative z-10 w-0 shrink-0 cursor-col-resize",onMouseDown:e=>{e.preventDefault(),s.current=!0,a.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function E(e,t,r=20){let s=t?t.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(e)}&size=${r}&backgroundColor=${s}`}function R(e){switch(e){case"queued":return"queued";case"running":return"running";case"success":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return e}}let $={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},M={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-400",success:"bg-emerald-500/10 border-emerald-500/20 text-emerald-400",failed:"bg-red-500/10 border-red-500/20 text-red-400",cancelled:"bg-zinc-500/10 border-zinc-500/20 text-zinc-400"},P={queued:"bg-amber-400",running:"bg-yellow-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"};function L({label:e,value:r,options:s,activeClasses:a,onChange:n}){let i=r.trim().length>0;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{"aria-label":e,className:`max-w-[160px] appearance-none rounded-full border bg-transparent px-2.5 py-0.5 pr-6 text-[11px] font-medium outline-none transition-colors ${i?a:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:r,onChange:e=>n(e.target.value),children:s.map(r=>(0,t.jsx)("option",{value:r.value,children:r.label},`${e}-${r.value||"all"}`))}),(0,t.jsx)(o.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function T({label:e,values:s,options:a,activeClasses:n,onChange:l,emptyLabel:d}){let[c,u]=(0,r.useState)(!1),m=(0,r.useRef)(null),x=a.filter(e=>e.value&&s.includes(e.value)),p=x.length>0,g=0===x.length?d??e:1===x.length?x[0]?.label??d??e:`${x.length} assignees`;(0,r.useEffect)(()=>{if(!c)return;let e=e=>{m.current&&!m.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[c]);let f=(0,r.useCallback)(e=>{e?l(s.includes(e)?s.filter(t=>t!==e):[...s,e]):l([])},[l,s]);return(0,t.jsxs)("div",{className:"relative",ref:m,children:[(0,t.jsxs)("button",{type:"button","aria-label":e,"aria-haspopup":"listbox","aria-expanded":c,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${p?n:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>u(e=>!e),children:[(0,t.jsx)("span",{className:"max-w-[132px] truncate",children:g}),(0,t.jsx)(o.ChevronDown,{size:12,className:`shrink-0 transition-transform ${c?"rotate-180":""}`})]}),c?(0,t.jsxs)("div",{role:"listbox","aria-label":`${e} options`,"aria-multiselectable":"true",className:"absolute left-0 top-full z-50 mt-1 min-w-[240px] overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-lg backdrop-blur-sm",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":!p,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!p?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>l([]),children:[(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!p?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:p?null:(0,t.jsx)(i.Check,{size:10})}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:d??e})]}),x.length>0?(0,t.jsx)("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Selected"}):null,a.filter(e=>e.value).map(r=>{let a=s.includes(r.value);return(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${a?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>f(r.value),children:[(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${a?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:a?(0,t.jsx)(i.Check,{size:10}):null}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:r.label})]},`${e}-${r.value}`)})]}):null]})}function A({issue:e,participants:s,projectId:a,projectSlug:n,createRun:i,updateRun:o,onRunCreated:l}){let d=s[0],c=(0,r.useRef)(crypto.randomUUID()),{messages:u,setMessages:m,sendMessage:x,chatRuns:b}=(0,g.useGroupChat)(c.current),{processes:j,streaming:y}=(0,f.useProcessPolling)({workspaceId:c.current},{messages:u,setMessages:m}),k=new Set(["queued","running","awaiting_user","blocked"]),N=b.some(e=>k.has(e.status))||j.some(e=>"spawning"===e.state||"running"===e.state)?b.some(e=>"queued"===e.status)?"queued":"working":"ready",C=(0,r.useMemo)(()=>new Map(s.map(e=>[e.id,e])),[s]),I=(0,r.useRef)(!1),R=(0,r.useCallback)(async(t,r,c,u,m,x,p)=>{if(I.current)return;I.current=!0;let g=(m?s.find(e=>e.id===m):null)??d;if(g)try{let{promptPrefix:r}=w({issue:{identifier:e.identifier,title:e.title,status:e.status,assignee:e.assignee},project:n?{slug:n}:null}),s=r+(x?`
37
+ ${x}`:""),d=await i({projectId:a??null,projectSlug:n??null,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee??null,agentId:g.id,agentName:g.name}),c=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:t,promptPrefix:s,threadId:d.threadId,activeParticipantIds:[g.id],projectSlug:n??void 0,routing:p})}),u=await c.json().catch(()=>({}));if(!c.ok||!u.chatRunId||!u.userMessageId)throw Error(u.error||"Failed to start chat session");await o(d.id,{chatRunId:u.chatRunId,rootMessageId:u.userMessageId}),l(d.id)}catch(e){console.error("Failed to create chat session:",e),I.current=!1,e instanceof Error&&window.alert(e.message)}},[e,s,d,a,n,i,o,l]);return(0,t.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.title})]}),(0,t.jsx)("span",{className:"shrink-0 rounded-md border border-[var(--card-border)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:e.status})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===u.length?(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{className:"text-sm",children:"Chat about this ticket"}),(0,t.jsx)("span",{className:"text-xs",children:"Your message will start a new session"})]}):(0,t.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[u.map(e=>{let r=e.participantId?C.get(e.participantId):null,s=(0,v.stripMarkers)(e.content);return s.trim()?(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===e.role?(0,t.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,t.jsx)(p.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,t.jsx)("img",{src:E(e.participantId??"",r?.color),alt:r?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"user"===e.role?"You":r?.name??"Agent"}),(0,t.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,t.jsx)(h.Markdown,{content:s,isUser:"user"===e.role})})]})]},e.id):null}),Object.entries(y).map(([e])=>{let r=C.get(e);return(0,t.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("img",{src:E(e,r?.color),alt:r?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),r?.name??"Agent"," is thinking..."]},`stream-${e}`)})]})}),(0,t.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,t.jsx)(S,{onSend:R,onStop:()=>{},participants:s,projectSlug:n??void 0,loading:"ready"!==N,commands:[],activityStatus:N,placeholder:`Ask about ${e.identifier}...`,initialPinnedParticipantId:d?.id})})]})}function z({run:e,participants:s}){let{messages:a,setMessages:n,sendMessage:i,loadHistory:o,stop:d}=(0,g.useGroupChat)(e.threadId),{processes:c,streaming:u,chatRuns:m}=(0,f.useProcessPolling)(e.rootMessageId?{workspaceId:e.threadId,threadId:e.rootMessageId}:{workspaceId:e.threadId},{messages:a,setMessages:n});(0,r.useEffect)(()=>{o()},[o,e.threadId]);let x=(0,r.useMemo)(()=>new Map(s.map(e=>[e.id,e])),[s]),j=new Set(["queued","running","awaiting_user","blocked"]),w=m.some(e=>j.has(e.status))||c.some(e=>"spawning"===e.state||"running"===e.state)?m.some(e=>"queued"===e.status)?"queued":"working":"ready",y=(0,r.useCallback)((t,r,a,n,o,l,d)=>{e.rootMessageId&&i(t,r,void 0,e.rootMessageId,a,void 0,(0,b.orderParticipantIds)(s.map(e=>e.id),o),e.projectSlug??void 0,l,d)},[s,e.projectSlug,e.rootMessageId,i]);return(0,t.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:e.issueIdentifier}),(0,t.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.issueTitle??""})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${M[e.status]}`,children:[(0,t.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${P[e.status]}`}),(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:R(e.status)})]}),null!=e.durationMs&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)(l.Clock,{size:14}),(0,t.jsxs)("span",{children:[(e.durationMs/1e3).toFixed(1),"s"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-2 py-1",children:[(0,t.jsx)("img",{src:E(e.agentId,x.get(e.agentId)?.color),alt:e.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,t.jsx)("span",{className:"pr-1 text-xs font-medium",children:e.agentName})]})]})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===a.length?(0,t.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===e.status||"running"===e.status?"Starting run...":"No thread messages yet."}):(0,t.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[a.map(r=>{let s=r.participantId?x.get(r.participantId):null,a=(0,v.stripMarkers)(r.content);if(!a.trim())return null;let n=r.participantId??e.agentId;return(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===r.role?(0,t.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,t.jsx)(p.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,t.jsx)("img",{src:E(n,s?.color),alt:s?.name??e.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:"user"===r.role?(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-sm font-semibold",style:{color:s?.color??"var(--foreground)"},children:s?.name??e.agentName}),(0,t.jsx)("span",{className:"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"})]})}),(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(r.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===r.role?(0,t.jsx)("div",{className:"w-fit max-w-[85%] rounded-xl rounded-tl-sm border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,t.jsx)(h.Markdown,{content:a,isUser:!0})}):(0,t.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,t.jsx)(h.Markdown,{content:a,isUser:!1})})]})]},r.id)}),Object.entries(u).filter(([,t])=>!e.rootMessageId||t.rootMessageId===e.rootMessageId).map(([r])=>{let s=x.get(r);return(0,t.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("img",{src:E(r,s?.color),alt:s?.name??e.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),s?.name??e.agentName," is thinking..."]},`stream-${r}`)})]})}),(0,t.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:e.rootMessageId?(0,t.jsx)(S,{onSend:y,onStop:d,participants:s,projectSlug:e.projectSlug??void 0,loading:"ready"!==w,commands:[],activityStatus:w,placeholder:"Steer this run...",initialPinnedParticipantId:e.agentId}):(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the run to start..."})})]})}function U({issue:e,selected:s,onSelect:a,onExecute:n}){let[o,l]=(0,r.useState)(!1),u=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{u.current&&window.clearTimeout(u.current)},[]);let m=(0,r.useCallback)(async t=>{if(t.stopPropagation(),e.url)try{await navigator.clipboard.writeText(e.url),l(!0),u.current&&window.clearTimeout(u.current),u.current=window.setTimeout(()=>{l(!1)},1500)}catch(e){console.error("Failed to copy Linear issue URL:",e),l(!1)}},[e.url]),x=$[e.status]??e.status.slice(0,6);return(0,t.jsxs)("div",{className:`group relative flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${s?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"}`,onClick:a,role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a())},children:[s&&(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,t.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${s?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:e.title}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:x}),(0,t.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${s?"opacity-100":"opacity-0 group-hover:opacity-100"} ${e.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:e=>{m(e)},title:o?"Copied ticket URL":"Copy ticket URL","aria-label":o?"Copied ticket URL":"Copy ticket URL",disabled:!e.url,children:o?(0,t.jsx)(i.Check,{size:10,className:"text-emerald-400"}):(0,t.jsx)(d,{size:10})}),(0,t.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${s?"opacity-100":"opacity-0 group-hover:opacity-100"}`,onClick:t=>{t.stopPropagation(),n(e,t)},title:"Execute with agent",children:(0,t.jsx)(c.Play,{size:10,className:"ml-0.5"})})]})}function F({projectId:e,projectSlug:s,initialShowSettings:a}){let{connected:n,loading:i,user:o,clis:l,mcpConfigured:d,connect:p,connectWithKey:g,disconnect:f,configureMcp:h}=function(){let[e,t]=(0,r.useState)(!1),[s,a]=(0,r.useState)(!0),[n,i]=(0,r.useState)(null),[o,l]=(0,r.useState)({claude:!1,codex:!1,gemini:!1}),[d,c]=(0,r.useState)({}),u=(0,r.useRef)(null),m=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/linear/mcp-setup"),t=await e.json();c(t.configured??{})}catch{}},[]),x=(0,r.useCallback)(async()=>{try{let[e,r]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),s=await e.json(),a=await r.json();return t(s.connected),i(s.user??null),l(s.clis??{claude:!1,codex:!1,gemini:!1}),c(a.configured??{}),s.connected}catch{return t(!1),!1}finally{a(!1)}},[]);(0,r.useEffect)(()=>(x(),()=>{u.current&&clearInterval(u.current)}),[x]);let p=(0,r.useCallback)(()=>{window.open("/api/linear/auth","_blank","noopener"),u.current&&clearInterval(u.current),u.current=setInterval(async()=>{await x()&&u.current&&(clearInterval(u.current),u.current=null)},2e3)},[x]),g=(0,r.useCallback)(async e=>{try{let t=await fetch("/api/linear/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to save token"}}return await x(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[x]);return{connected:e,loading:s,user:n,clis:o,mcpConfigured:d,connect:p,connectWithKey:g,disconnect:(0,r.useCallback)(async()=>{await fetch("/api/linear/status",{method:"DELETE"}),t(!1),i(null)},[]),configureMcp:(0,r.useCallback)(async e=>{try{let t=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to configure MCP"}}return await m(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[m]),refresh:x}}(),[v,b]=(0,r.useState)(!1),[j,y]=(0,r.useState)(a??!1),[k,N]=(0,r.useState)(576),[S,$]=(0,r.useState)(224),[M,P]=(0,r.useState)(""),[F,O]=(0,r.useState)(""),[q,D]=(0,r.useState)([]),[K,W]=(0,r.useState)([]),[_,B]=(0,r.useState)([]),[G,J]=(0,r.useState)([]),[X,Y]=(0,r.useState)(""),[H,V]=(0,r.useState)(""),[Q,Z]=(0,r.useState)(null),[ee,et]=(0,r.useState)(null),[er,es]=(0,r.useState)([]),[ea,en]=(0,r.useState)(null),[ei,eo]=(0,r.useState)(null),el=(0,r.useRef)(null),ed=(0,r.useCallback)(e=>{P(e),el.current&&clearTimeout(el.current),el.current=setTimeout(()=>O(e),300)},[]);(0,r.useEffect)(()=>()=>{el.current&&clearTimeout(el.current)},[]),(0,r.useEffect)(()=>{if(!n)return;let e=!1;return fetch("/api/linear/options").then(e=>e.json()).then(t=>{e||(D(Array.isArray(t.assignees)?t.assignees:[]),W(Array.isArray(t.teams)?t.teams:[]),J(Array.isArray(t.cycles)?t.cycles:[]))}).catch(()=>{e||(D([]),W([]),J([]))}),()=>{e=!0}},[n]),(0,r.useEffect)(()=>{let e=_.filter(e=>q.some(t=>t.id===e));e.length!==_.length&&B(e)},[q,_]),(0,r.useEffect)(()=>{K.length<=1&&H?V(""):H&&!K.some(e=>e.id===H)&&V("")},[H,K]),(0,r.useEffect)(()=>{X&&!G.some(e=>e.id===X)&&Y("")},[G,X]);let{issues:ec,loading:eu,hasMore:em,loadMore:ex,refresh:ep}=function(e,t=!0,s={}){let[a,n]=(0,r.useState)([]),[i,o]=(0,r.useState)(!0),[l,d]=(0,r.useState)(null),[c,u]=(0,r.useState)(!1),m=(0,r.useRef)(l),x=(0,r.useRef)(!1);m.current=l,(0,r.useEffect)(()=>{x.current=!1},[s.projectSlug]);let p=(0,r.useCallback)(async(r,a=!1)=>{if(t){o(!0);try{let t=new URLSearchParams;if(e.teamId&&t.set("teamId",e.teamId),e.status&&t.set("status",e.status),e.search&&t.set("search",e.search),e.assigneeIds?.length)for(let r of e.assigneeIds)t.append("assigneeId",r);else e.assignedToMe&&t.set("assignedToMe","true");e.cycleId&&t.set("cycleId",e.cycleId),r&&m.current&&t.set("cursor",m.current),s.projectSlug&&t.set("projectSlug",s.projectSlug),s.limit&&t.set("limit",String(s.limit)),a&&t.set("refresh","true");let i=await fetch(`/api/linear/issues?${t.toString()}`),o=await i.json(),l=o.issues??[];n(e=>r?[...e,...l]:l),d(o.pageInfo?.endCursor??null),u(o.pageInfo?.hasNextPage??!1),x.current=!0}catch{r||n([])}finally{o(!1)}}},[e.teamId,e.status,e.search,e.assigneeIds,e.assignedToMe,e.cycleId,t,s.projectSlug,s.limit]);return(0,r.useEffect)(()=>{d(null),p(!1,!x.current)},[p]),{issues:a,loading:i,hasMore:c,loadMore:(0,r.useCallback)(()=>p(!0),[p]),refresh:(0,r.useCallback)(()=>(d(null),p(!1,!0)),[p])}}((0,r.useMemo)(()=>({search:F||void 0,assigneeIds:_.length>0?_:void 0,teamId:H||void 0,cycleId:X||void 0}),[F,_,X,H]),n,{projectSlug:s}),{runs:eg,loading:ef,createRun:eh,updateRun:ev}=function(e,t){let[s,a]=(0,r.useState)([]),[n,i]=(0,r.useState)(!1),o=(0,r.useRef)(e??null);o.current=e??null;let l=(0,r.useCallback)(async()=>{let e=o.current?.trim();if(!e)return a([]),[];i(!0);try{let r=new URLSearchParams({issueId:e});t&&r.set("projectId",t);let s=await fetch(`/api/linear/runs?${r.toString()}`);if(!s.ok)throw Error(`Failed to fetch Linear runs: ${s.status}`);let n=await s.json(),i=Array.isArray(n.runs)?n.runs:[];return a(i),i}finally{i(!1)}},[t]);return(0,r.useEffect)(()=>{a([]),l()},[l,e]),(0,r.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>{l()},3e3);return()=>window.clearInterval(t)},[e,l]),{runs:s,loading:n,refresh:l,createRun:(0,r.useCallback)(async e=>{let t=await fetch("/api/linear/runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||`Failed to create Linear run: ${t.status}`);let r=(await t.json()).run;return a(e=>[r,...e.filter(e=>e.id!==r.id)]),r},[]),updateRun:(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/linear/runs/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||`Failed to update Linear run: ${r.status}`);let s=(await r.json()).run;return a(e=>e.map(e=>e.id===s.id?s:e)),s},[])}}(Q?.id,e??null),eb=eg.find(e=>e.id===ee)??null,ej=(0,r.useMemo)(()=>q.map(e=>({value:e.id,label:e.name})),[q]),ew=(0,r.useMemo)(()=>[{value:"",label:"Workspace"},...K.map(e=>({value:e.id,label:e.name}))],[K]),ey=(0,r.useMemo)(()=>[{value:"",label:"Cycle"},...G.map(e=>({value:e.id,label:e.name||`Cycle ${e.number}`}))],[G]),ek=ey.length>1,eN=ew.length>2;(0,r.useEffect)(()=>{0===ec.length?Z(null):Z(e=>e&&ec.some(t=>t.id===e.id)?ec.find(t=>t.id===e.id)??e:ec[0]??null)},[ec]),(0,r.useEffect)(()=>{0===eg.length?et(null):ee&&eg.some(e=>e.id===ee)||et(eg[0]?.id??null)},[eg,ee]),(0,r.useEffect)(()=>{let t=!1;return async function(){try{let r=await fetch("/api/participants"),s=r.ok?await r.json():[];if(!e){t||es(s);return}let a=await fetch(`/api/projects/${encodeURIComponent(e)}/agents`);if(!a.ok){t||es(s);return}let n=await a.json(),i=Array.isArray(n.agents)?n.agents.map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[],o=new Map(i.map((e,t)=>[e,t])),l=s.filter(e=>o.has(e.id)).sort((e,t)=>(o.get(e.id)??Number.MAX_SAFE_INTEGER)-(o.get(t.id)??Number.MAX_SAFE_INTEGER));t||es(l)}catch{t||es([])}}(),()=>{t=!0}},[e]);let eC=(0,r.useCallback)((e,t)=>{if(0===er.length)return void window.alert("Add at least one agent to this project before running a Linear ticket.");if(1===er.length)return void eS(e,er[0]);let r=t?.currentTarget?.getBoundingClientRect();en(e),eo(r?{top:r.bottom+4,left:r.left}:{top:200,left:200})},[er]),eS=(0,r.useCallback)(async(t,r)=>{en(null),eo(null);let a=null;try{Z(t),a=await eh({projectId:e??null,projectSlug:s??null,issueId:t.id,issueIdentifier:t.identifier,issueTitle:t.title,issueStatus:t.status,issueAssignee:t.assignee,agentId:r.id,agentName:r.name}),et(a.id);let{prompt:n,promptPrefix:i}=w({issue:{identifier:t.identifier,title:t.title,status:t.status,assignee:t.assignee},project:s?{slug:s}:null}),o=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:n,promptPrefix:i,threadId:a.threadId,activeParticipantIds:[r.id],projectSlug:s??void 0})}),l=await o.json().catch(()=>({}));if(!o.ok||!l.chatRunId||!l.userMessageId)throw Error(l.error||"Failed to start Linear run");await ev(a.id,{chatRunId:l.chatRunId,rootMessageId:l.userMessageId})}catch(e){console.error("Failed to execute Linear ticket:",e),a&&await ev(a.id,{status:"failed",error:e instanceof Error?e.message:String(e)}),e instanceof Error&&window.alert(e.message)}},[eh,e,s,ev]),eI=(0,r.useRef)(null);if((0,r.useEffect)(()=>{let e=eI.current;if(!e||!em)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&ex()},{threshold:.1});return t.observe(e),()=>t.disconnect()},[em,ex]),i)return(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let eE=n&&!v&&!Object.values(d).some(Boolean);return!n||eE?(0,t.jsx)(C,{connected:n,user:o,clis:l,mcpConfigured:d,onConnect:p,onConnectWithKey:g,onDisconnect:f,onConfigureMcp:h,onContinue:()=>b(!0)}):(0,t.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:k},children:[(0,t.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,t.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]",children:[(0,t.jsx)(m.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:M,onChange:e=>ed(e.target.value)})]}),(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void ep(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:eu,children:(0,t.jsx)(u.RefreshCw,{size:16,className:eu?"animate-spin":void 0})}),(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>y(!0),title:"Linear settings",children:(0,t.jsx)(x.Settings,{size:16})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[(0,t.jsx)(T,{label:"Assignee",values:_,options:ej,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:B,emptyLabel:"All assignees"}),eN?(0,t.jsx)(L,{label:"Workspace",value:H,options:ew,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:V}):null,ek?(0,t.jsx)(L,{label:"Cycle",value:X,options:ey,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:Y}):null]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:eu&&0===ec.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===ec.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,t.jsxs)(t.Fragment,{children:[ec.map(e=>(0,t.jsx)(U,{issue:e,selected:Q?.id===e.id,onSelect:()=>Z(e),onExecute:eC},e.id)),em?(0,t.jsx)("div",{ref:eI,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:eu?"Loading...":"Load more"}):null]})})]}),(0,t.jsx)(I,{onResize:e=>N(t=>Math.max(180,Math.min(600,t+e)))}),(0,t.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:S},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,t.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Runs"}),Q&&(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:e=>eC(Q,e),title:"Run agent on selected ticket",children:[(0,t.jsx)(c.Play,{size:10}),(0,t.jsx)("span",{children:"Run now"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:Q?ef&&0===eg.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading runs..."}):0===eg.length?(0,t.jsxs)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:["No runs yet. Click ",(0,t.jsx)(c.Play,{size:10,className:"inline"})," to execute."]}):eg.map(e=>(0,t.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${eb?.id===e.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>et(e.id),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,t.jsx)("span",{className:`font-medium ${{queued:"text-amber-500",running:"text-yellow-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"}[e.status]}`,children:R(e.status)}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(e.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,t.jsx)("div",{className:"mt-0.5 truncate text-[10px] text-[var(--muted-foreground)]",children:e.agentName}),null!=e.durationMs?(0,t.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(e.durationMs/1e3).toFixed(1),"s"]}):null]},e.id)):(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Select a ticket to see runs."})})]}),(0,t.jsx)(I,{onResize:e=>$(t=>Math.max(140,Math.min(500,t+e)))}),(0,t.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:eb?(0,t.jsx)(z,{run:eb,participants:er}):Q&&er.length>0?(0,t.jsx)(A,{issue:Q,participants:er,projectId:e,projectSlug:s,createRun:eh,updateRun:ev,onRunCreated:e=>et(e)},Q.id):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:Q?"Add at least one agent to this project to chat.":"Select a ticket from the list."})}),j&&(0,t.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50",children:(0,t.jsxs)("div",{className:"relative w-full max-w-lg rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,t.jsx)("button",{type:"button",className:"absolute right-3 top-3 rounded p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>y(!1),children:"×"}),(0,t.jsx)("div",{className:"p-6",children:(0,t.jsx)(C,{connected:n,user:o,clis:l,mcpConfigured:d,onConnect:p,onConnectWithKey:g,onDisconnect:f,onConfigureMcp:h,onContinue:()=>y(!1)})})]})}),ea&&ei&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{en(null),eo(null)}}),(0,t.jsxs)("div",{className:"fixed z-50 min-w-[180px] rounded border border-[var(--card-border)] bg-[var(--card-bg)] py-1 shadow-lg",style:{top:ei.top,left:ei.left},children:[(0,t.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Pick an agent"}),er.map(e=>(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--card-bg)]",onClick:()=>void eS(ea,e),children:[(0,t.jsx)("img",{src:E(e.id,e.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,t.jsxs)("span",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),e.title?(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.title}):null]})]},e.id))]})]})]})}function O({params:e}){let{slug:n}=(0,r.use)(e),i=(0,s.useSearchParams)(),{projects:o}=(0,a.useProjects)(),l=o.find(e=>e.slug===n),d="true"===i.get("settings");return(0,t.jsx)(F,{projectId:l?.id,projectSlug:l?.slug??n,initialShowSettings:d})}e.s(["default",()=>O],515247)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,871689,e=>{"use strict";let t=(0,e.i(475254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],871689)},284765,e=>{"use strict";let t=(0,e.i(475254).default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);e.s(["Settings2",()=>t],284765)},431343,e=>{"use strict";let t=(0,e.i(475254).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",()=>t],431343)},868054,e=>{"use strict";let t=(0,e.i(475254).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],868054)},430520,e=>{"use strict";var t=e.i(271645);function r(e){return`threadId=${encodeURIComponent(e)}`}function n(e){return`workspaceId=${encodeURIComponent(e)}`}function a(e){let[a,s]=(0,t.useState)([]),[i,l]=(0,t.useState)([]),[o,c]=(0,t.useState)([]),u=(0,t.useRef)(e),d=(0,t.useRef)(e);u.current=e,d.current!==e&&(d.current=e,s([]),l([]),c([]));let f=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),l([]);return}let a=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${a}`),fetch(`/api/logs?${n(t)}`)]);if(u.current!==t)return;e.ok&&s(await e.json()),r.ok&&l(await r.json())}catch{}},[]),p=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),l([]);return}let a=r(t);await Promise.all([fetch(`/api/history?${a}`,{method:"DELETE"}),fetch(`/api/logs?${n(t)}`,{method:"DELETE"})]),u.current===t&&(s([]),l([]))},[]),h=(0,t.useCallback)(async(e,t=10,r,n,a,i,l,o,d,f)=>{let p=r?.trim()||u.current?.trim();if(!p)return;let h=Date.now(),m=crypto.randomUUID(),y={id:m,role:"user",participantId:null,content:e,timestamp:h,rootMessageId:n||null,parentMessageId:n||null,depth:+!!n,...i&&i.length>0?{attachments:i}:{}};s(e=>[...e,y]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:p,prompt:e,promptPrefix:d||void 0,maxRounds:t,userMessageId:m,rootMessageId:n||void 0,attachmentIds:a?.length?a:void 0,activeParticipantIds:Array.isArray(l)?l:void 0,projectSlug:o?.trim()||void 0,routing:f})}),s=await r.json().catch(()=>null);r.ok&&s?.chatRunId&&c(e=>[{chatRunId:s.chatRunId,threadId:p,rootMessageId:n||m,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==s.chatRunId)])}catch{}return m},[]),m=(0,t.useCallback)(async()=>{let e=u.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),y=(0,t.useCallback)(async e=>{let t=u.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:a,setMessages:s,logs:i,sendMessage:h,loadHistory:f,clearHistory:p,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();t?(await fetch(`/api/logs?${n(t)}`,{method:"DELETE"}).catch(()=>{}),u.current===t&&l([])):l([])},[]),chatRuns:o,setChatRuns:c,stop:m,stopThread:y}}e.s(["useGroupChat",()=>a])},650030,e=>{"use strict";var t=e.i(271645);let r=new Set(["spawning","running"]);function n(e,n){let a=n?.intervalMs??1500,s=n?.idleIntervalMs??1e4,[i,l]=(0,t.useState)(new Set),[o,c]=(0,t.useState)([]),[u,d]=(0,t.useState)({}),[f,p]=(0,t.useState)([]),h=(0,t.useRef)(e);h.current=e;let m=(0,t.useRef)(n?.messages??[]);m.current=n?.messages??[];let y=(0,t.useRef)(n?.setMessages);y.current=n?.setMessages;let g=(0,t.useRef)(0);(0,t.useEffect)(()=>{let e=n?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t)}},[n?.messages]);let I=(0,t.useCallback)(async()=>{let e=h.current;if(!e){l(new Set),c([]),d({}),p([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){l(new Set),c([]),d({}),p([]);return}try{let a=e.workspaceId||e.threadId,s=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${g.current}`:null,i=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,o=[fetch(t)];s&&o.push(fetch(s)),i&&o.push(fetch(i));let[u,f,I]=await Promise.all(o),k=h.current;if(k?.threadId!==e.threadId||k?.workspaceId!==e.workspaceId)return;if(u.ok){let e=await u.json();c(e);let t=new Set(e.filter(e=>r.has(e.state)).map(e=>e.agentId));l(t);let n={};for(let t of e){if(!r.has(t.state))continue;let e=m.current.find(e=>e.id===t.sinceMessageId),a=e?.rootMessageId??t.sinceMessageId;n[t.agentId]={content:"",rootMessageId:a}}d(n)}if(I?.ok){var n;let e=(n=await I.json(),Array.isArray(n)?n.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,n="string"==typeof e.status?e.status:null,a="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&n&&("queued"===n||"running"===n||"awaiting_user"===n||"blocked"===n||"completed"===n||"failed"===n||"cancelled"===n)?{chatRunId:t,threadId:r,rootMessageId:a,status:n,optimistic:!1}:null}).filter(e=>!!e):[]);p(e)}if(f?.ok&&y.current){let e=await f.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t),y.current(t=>{let r=new Set(t.map(e=>e.id)),n=e.filter(e=>!r.has(e.id)),a=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===n.length?a:[...a,...n].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]),k=e?.threadId||e?.workspaceId||null,w=f.some(e=>"queued"===e.status||"running"===e.status),b=o.some(e=>r.has(e.state)),j=w||b?a:s;return(0,t.useEffect)(()=>{if(!k){l(new Set),c([]),d({}),p([]);return}I();let e=setInterval(I,j);return()=>clearInterval(e)},[k,j,I]),{activeAgents:i,processes:o,streaming:u,chatRuns:f,poll:I}}e.s(["useProcessPolling",()=>n])},503116,e=>{"use strict";let t=(0,e.i(475254).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],503116)},16715,e=>{"use strict";let t=(0,e.i(475254).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],16715)},829415,e=>{"use strict";function t(e){return e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim()}e.s(["stripMarkers",()=>t])},286476,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function r(e,r){let n=new Set,a=new Set;!function e(t,r){if(t)for(let n of t)r(n),e(n.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",s="string"==typeof t.kind?t.kind:"agent";r&&"agent"===s&&(n.add(r),"parallel"===t.mode&&a.add(r))});let s=t(r);return{...s?{pinnedParticipantId:s}:{},mentionedParticipantIds:Array.from(n),parallelParticipantIds:Array.from(a)}}function n(e,r){let n=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let n of e){if("string"!=typeof n)continue;let e=n.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),a=t(r);return a&&n.includes(a)?[a,...n.filter(e=>e!==a)]:n}e.s(["extractComposerRouting",()=>r,"orderParticipantIds",()=>n])},667585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return a}});let n=e.r(132061);function a({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},309885,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},652157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let n=e.r(843476),a=e.r(174080),s=e.r(563599),i=e.r(309885),l=e.r(543369);function o({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,l.getDeploymentIdQueryOrEmptyString)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,i.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,a.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},869093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let n=e.r(843476),a=e.r(271645),s=e.r(667585),i=e.r(652157);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},r=(0,a.lazy)(()=>t.loader().then(l)),c=t.loading;function u(e){let l=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,u=o?a.Suspense:a.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(i.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(u,{...o?{fallback:l}:{},children:d})}return u.displayName="LoadableComponent",u}},770703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(555682)._(e.r(869093));function a(e,t){let r={};"function"==typeof e&&(r.loader=e);let a={...r,...t};return(0,n.default)({...a,modules:a.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},222860,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(274049),a=e.i(440212);function s({params:e}){let{slug:s}=(0,r.use)(e),{projects:i}=(0,n.useProjects)(),l=i.find(e=>e.slug===s);return(0,t.jsx)(a.default,{projectId:l?.id})}e.s(["default",()=>s])},711760,e=>{e.v(t=>Promise.all(["static/chunks/2a9c83f8211196e0.js","static/chunks/e51fddf53a6dc1e4.js","static/chunks/6103b9b5538bba4d.css"].map(t=>e.l(t))).then(()=>t(895214)))},276473,e=>{e.v(t=>Promise.all(["static/chunks/cb6301624094c91e.js"].map(t=>e.l(t))).then(()=>t(632077)))}]);
@@ -0,0 +1,9 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,837452,e=>{e.v({fileMentionFadeIn:"FileMentionPopover-module__1CTxzW__fileMentionFadeIn",popover:"FileMentionPopover-module__1CTxzW__popover"})},16706,898975,668036,473323,255597,261967,464057,835817,457653,561022,330054,787552,501456,717622,215094,833195,780023,309652,471221,169408,82735,e=>{"use strict";var t=e.i(271645);let r=/^[A-Za-z0-9_\-:]*$/,a={id:"all",name:"All",provider:"claude",model:null,color:"#6B7280"};function n(e,t,r){return r?e.startsWith(r)?3:t.startsWith(r)?2:e.includes(r)?1:null:0}function s({participants:e,projectGroups:s=[],projects:l=[],linearIssues:i=[],maxSuggestions:o=6}){let[d,u]=(0,t.useState)(null),[c,p]=(0,t.useState)(0),[m,f]=(0,t.useState)(!1),h=null!==d&&!m,x=d?.query??"",g=(0,t.useMemo)(()=>(function(e,t,r,s=[],l=[],i=[]){let o=t.toLowerCase(),d=new Map(e.map(e=>[e.id,e])),u=new Set;for(let e of s)for(let t of e.agents)u.add(t.agent_id);let c=[];for(let e of(null!==n("all","all",o)&&c.push({kind:"agent",participant:a,group:""}),s)){let t=n(e.name.toLowerCase(),e.id.toLowerCase(),o),r=[];for(let t of e.agents){let e=d.get(t.agent_id);if(!e)continue;let a=n(e.name.toLowerCase(),e.id.toLowerCase(),o);null!==a&&r.push({participant:e,score:a})}(null!==t||r.length>0)&&(null!==t&&c.push({kind:"project-group",project:e,group:e.name}),(null!==t&&o?e.agents.map(e=>d.get(e.agent_id)).filter(e=>!!e).map(e=>({participant:e,score:0})):r).sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:t})=>{c.push({kind:"agent",participant:t,group:e.name})}))}for(let e of l)null!==n(e.name.toLowerCase(),e.slug.toLowerCase(),o)&&c.push({kind:"project",project:e,group:"Projects"});o&&i.map(e=>{var t,r;let a,n;return{issue:e,score:(t=e,r=o,a=t.identifier.toLowerCase(),n=t.title.toLowerCase(),a===r?5:a.startsWith(r)?4:n.startsWith(r)?3:a.includes(r)?2:n.includes(r)?1:null)}}).filter(e=>null!==e.score).sort((e,t)=>t.score!==e.score?t.score-e.score:e.issue.identifier.localeCompare(t.issue.identifier)).forEach(({issue:e})=>{c.push({kind:"ticket",issue:e,group:"Tickets"})});let p=[];for(let t of e){if(u.has(t.id))continue;let e=n(t.name.toLowerCase(),t.id.toLowerCase(),o);null!==e&&p.push({participant:t,score:e})}return p.sort((e,t)=>e.participant.name.localeCompare(t.participant.name)).forEach(({participant:e})=>{c.push({kind:"agent",participant:e,group:""})}),c.slice(0,r)})(e,x,o,s,l,i),[e,x,o,s,l,i]),v=(0,t.useCallback)((e,t)=>{let a=function(e,t){if(t<0||t>e.length)return null;let a=t;for(;a>0&&!/\s/.test(e[a-1]);)a--;let n=e.slice(a,t);if(!n.startsWith("@")||n.startsWith("@@@")||n.startsWith("@#"))return null;let s=n.startsWith("@@"),l=n.slice(s?2:1);return r.test(l)?{startIndex:a,endIndex:t,query:l.toLowerCase(),mode:s?"parallel":"sequential",isParallel:s}:null}(e,t);u(e=>((e?.startIndex!==a?.startIndex||e?.isParallel!==a?.isParallel||e?.query!==a?.query)&&p(0),a))},[]),b=(0,t.useCallback)((e,t)=>{m||v(e,t)},[m,v]),y=(0,t.useCallback)(e=>{if(!h||0===g.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),p(e=>e<g.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),p(e=>e>0?e-1:g.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),u(null),!0;default:return!1}},[h,g.length]),j=(0,t.useCallback)(e=>{if(!d)return null;let t="project-group"===e.kind||"project"===e.kind?e.project.name:"ticket"===e.kind?e.issue.identifier:e.participant.name,r=d.isParallel?"@@":"@";return{text:`${r}${t} `,startIndex:d.startIndex,endIndex:d.endIndex}},[d]),w=(0,t.useCallback)(()=>{u(null),p(0)},[]);return{isOpen:h,query:x,filteredSuggestions:g,activeIndex:c,token:d,isComposing:m,handleInput:b,handleKeyDown:y,selectSuggestion:j,close:w,startComposition:(0,t.useCallback)(()=>{f(!0)},[]),endComposition:(0,t.useCallback)((e,t)=>{f(!1),v(e,t)},[v])}}e.s(["useMentionAutocomplete",()=>s],16706);let l=/^[a-zA-Z0-9_-]*$/;function i({commands:e,maxSuggestions:r=6}){let[a,n]=(0,t.useState)(null),[s,i]=(0,t.useState)(0),o=null!==a,d=a?.query??"",u=(0,t.useMemo)(()=>{let t;return(t=d.toLowerCase())?e.filter(e=>!!e.name.slice(1).toLowerCase().startsWith(t)||(e.aliases?.some(e=>e.toLowerCase().startsWith(t))??!1)).slice(0,r):e.slice(0,r)},[e,d,r]),c=(0,t.useCallback)((e,t)=>{let r=function(e,t){if(t<0||t>e.length||!e.startsWith("/"))return null;let r=e.slice(0,t);if(/\s/.test(r))return null;let a=r.slice(1);return l.test(a)?{startIndex:0,endIndex:t,query:a.toLowerCase()}:null}(e,t);n(e=>(e?.query!==r?.query&&i(0),r))},[]),p=(0,t.useCallback)(e=>{if(!o||0===u.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),i(e=>e<u.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),i(e=>e>0?e-1:u.length-1),!0;case"Enter":case"Tab":return e.preventDefault(),!0;case"Escape":return e.preventDefault(),n(null),!0;default:return!1}},[o,u.length]),m=(0,t.useCallback)(e=>!!a&&(e.execute(),n(null),i(0),!0),[a]);return{isOpen:o,query:d,filteredCommands:u,activeIndex:s,token:a,handleInput:c,handleKeyDown:p,selectCommand:m,close:(0,t.useCallback)(()=>{n(null),i(0)},[])}}e.s(["useCommandAutocomplete",()=>i],898975);let o=new Set(["image/jpeg","image/png","image/gif","image/webp","image/svg+xml","application/pdf","text/plain","text/csv","text/markdown","application/json","application/zip","application/gzip","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation"]),d=new Set([".exe",".bat",".cmd",".com",".msi",".scr",".pif",".vbs",".vbe",".js",".jse",".ws",".wsf",".wsc",".wsh",".ps1",".ps2",".psc1",".psc2",".reg",".inf",".lnk",".dll",".sys",".drv"]),u={"image/jpeg":"jpg","image/png":"png","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","application/pdf":"pdf","text/plain":"txt","text/csv":"csv","text/markdown":"md","application/json":"json","application/zip":"zip","application/gzip":"gz"};function c(e){return e.map((e,t)=>(function(e,t){let r,a;return e.name.trim()?e:new File([e],(r=u[e.type]??"bin",a=e.type.startsWith("image/")?"pasted-image":"attachment",`${a}-${t+1}.${r}`),{type:e.type,lastModified:e.lastModified})})(e,t))}function p(e){return e.startsWith("image/")}function m(e){let t;if((t=(!e?"":e.getData("text/plain")).trim())&&(t.length>=200||t.includes("\n")))return!1;let r=Array.from(e?.items??[]).map(e=>e.type);return Array.from(e?.files??[]).length>0||Array.from(e?.items??[]).some(e=>"file"===e.kind)||r.some(p)}function f(e){if(!e||!m(e))return[];let t=Array.from(e.items??[]).filter(e=>"file"===e.kind).map(e=>e.getAsFile()).filter(e=>!!e),r=t.length>0?t:Array.from(e.files??[]);return 0===r.length?[]:c(r)}function h(e){return m(e)}async function x(e,t){let r=f(e);if(r.length>0)return r;if(!m(e)||!t?.read)return[];try{let e=await t.read(),r=[];for(let t of e)for(let e of t.types.filter(p)){let a=await t.getType(e),n=a instanceof Blob?a:a.arrayBuffer?await a.arrayBuffer():null;n&&r.push(new File([n],"",{type:a.type||e,lastModified:Date.now()}))}return c(r)}catch{return[]}}function g(){let[e,r]=(0,t.useState)([]),a=(0,t.useRef)(new Map),n=(0,t.useCallback)(e=>{let t=new XMLHttpRequest;a.current.set(e.id,t);let n=new FormData;n.append("file",e.file),t.upload.onprogress=t=>{if(t.lengthComputable){let a=Math.round(t.loaded/t.total*100);r(t=>t.map(t=>t.id===e.id?{...t,progress:a}:t))}},t.onload=()=>{if(a.current.delete(e.id),t.status>=200&&t.status<300)try{let a=JSON.parse(t.responseText),n=a.attachments?.[0];if(n)return void r(t=>t.map(t=>t.id===e.id?{...t,status:"uploaded",progress:100,serverId:n.id}:t))}catch{}let n=(()=>{try{return JSON.parse(t.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();r(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:n}:t))},t.onerror=()=>{a.current.delete(e.id),r(t=>t.map(t=>t.id===e.id?{...t,status:"failed",error:"Network error"}:t))},t.open("POST","/api/upload"),t.send(n)},[]),s=(0,t.useCallback)(t=>{let a=c(Array.from(t)),s=function(e){let t=e.reduce((e,t)=>e+t.size,0);if(t>0x3200000){let e=(t/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${e}MB) exceeds 50MB limit`}}return null}([...e.map(e=>({name:e.filename,size:e.size,type:e.mimeType})),...a.map(e=>({name:e.name,size:e.size,type:e.type}))]);if(s)return void alert(s.reason);let l=[];for(let e of a){let t=function(e){let t=e.name.includes(".")?"."+e.name.split(".").pop().toLowerCase():"";if(d.has(t))return{file:e.name,reason:`File type "${t}" is not allowed`};if(e.type&&!o.has(e.type))return{file:e.name,reason:`File type "${e.type}" is not supported`};if(!e.type&&!o.has("application/octet-stream"),e.size>0xa00000){let t=(e.size/1048576).toFixed(1);return{file:e.name,reason:`File is too large (${t}MB). Maximum is 10MB`}}return 0===e.size?{file:e.name,reason:"File is empty"}:null}({name:e.name,size:e.size,type:e.type});if(t){l.push({id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type,size:e.size,previewUrl:null,progress:0,status:"failed",error:t.reason});continue}let r=e.type.startsWith("image/")?URL.createObjectURL(e):null,a={id:crypto.randomUUID(),file:e,filename:e.name,mimeType:e.type||"application/octet-stream",size:e.size,previewUrl:r,progress:0,status:"uploading"};l.push(a)}for(let e of(r(e=>[...e,...l]),l))"uploading"===e.status&&n(e)},[e,n]),l=(0,t.useCallback)(e=>{r(t=>{let r=t.find(t=>t.id===e);r?.previewUrl&&URL.revokeObjectURL(r.previewUrl);let n=a.current.get(e);return n&&(n.abort(),a.current.delete(e)),r?.serverId&&fetch(`/api/upload/${r.serverId}`,{method:"DELETE"}).catch(()=>{}),t.filter(t=>t.id!==e)})},[]),i=(0,t.useCallback)(e=>{r(t=>{let r=t.find(t=>t.id===e);if(!r||"failed"!==r.status)return t;let a=t.map(t=>t.id===e?{...t,status:"uploading",error:void 0,progress:0}:t),s=a.find(t=>t.id===e);return setTimeout(()=>n(s),0),a})},[n]),u=(0,t.useCallback)(()=>{r(e=>{for(let t of e){t.previewUrl&&URL.revokeObjectURL(t.previewUrl);let e=a.current.get(t.id);e&&e.abort()}return a.current.clear(),[]})},[]),p=0===e.length||e.every(e=>"uploaded"===e.status||"failed"===e.status),m=e.some(e=>"uploaded"===e.status),f=e.filter(e=>"uploaded"===e.status&&e.serverId);return{staged:e,stageFiles:s,remove:l,retry:i,clear:u,canSend:p,hasUploaded:m,attachmentIds:f.map(e=>e.serverId),getAttachmentMetas:(0,t.useCallback)(()=>f.map(e=>({id:e.serverId,filename:e.filename,mimeType:e.mimeType,size:e.size,status:"uploaded",url:`/api/attachments/${e.serverId}`})),[f])}}e.s(["clipboardMayContainImageAttachments",()=>h,"getClipboardAttachmentFiles",()=>f,"normalizeAttachmentFiles",()=>c,"readClipboardAttachmentFiles",()=>x],668036),e.s(["useAttachments",()=>g],473323);var v=e.i(247167);let b=[{path:`${v.default.env.HOME??"~"}/Code`,relativePath:"~/Code",type:"folder"},{path:`${v.default.env.HOME??"~"}/Projects`,relativePath:"~/Projects",type:"folder"},{path:`${v.default.env.HOME??"~"}/Desktop`,relativePath:"~/Desktop",type:"folder"},{path:`${v.default.env.HOME??"~"}/Documents`,relativePath:"~/Documents",type:"folder"},{path:`${v.default.env.HOME??"~"}/Downloads`,relativePath:"~/Downloads",type:"folder"}];function y(e,t){let r=function(e,t){let r=e.trim().replace(/\/+$/,"");if("~"===r)return"~";if(r.startsWith("~/")||r.startsWith("/"))return r;let a=r.replace(/^\/+/,"");return"@~"===t?`~/${a}`:`/${a}`}(e,t.trigger);if(r.startsWith("~/")||r.startsWith("/")){let a=e.trim().startsWith("~/")||e.trim().startsWith("/")||"~"===e.trim()?null:function(e){if(!e.query.endsWith("/"))return null;let t=e.query.replace(/^\/+/,"").replace(/\/+$/,"");return"@~"===e.trigger?t?`~/${t}`:"~":t?`/${t}`:"/"}(t);if(a){let e=r.replace(/^~\/|^\//,"");return"~"===a?`~/${e}`:"/"===a?`/${e}`:`${a}/${e}`}}return r}function j({maxSuggestions:e=8,debounceMs:r=150}={}){let[a,n]=(0,t.useState)(null),[s,l]=(0,t.useState)([]),[i,o]=(0,t.useState)(0),[d,u]=(0,t.useState)(!1),[c,p]=(0,t.useState)(null),m=(0,t.useRef)(null),f=(0,t.useRef)(null),h=(0,t.useRef)(null),x=null!==a,g=(0,t.useCallback)(async(t,r)=>{m.current&&m.current.abort();let a=new AbortController;m.current=a,u(!0),p(null);try{let n=t.endsWith("/"),s=n?"*":t,i=new URLSearchParams({q:s,limit:String(e),includeFolders:"1"});if(n){let e="@~"===r?`${v.default.env.HOME??"~"}/${t.slice(0,-1)}`:`/${t.slice(0,-1)}`;i.set("root",e)}else"@~"===r&&i.set("root",v.default.env.HOME??"~");let d=await fetch(`/api/file-search?${i.toString()}`,{signal:a.signal});if(!d.ok){let e=await d.json().catch(()=>({}));throw Error(e.error??`HTTP ${d.status}`)}let u=await d.json();l(u.files.map(e=>({...e,attachMode:"folder"===e.type?"manifest":void 0}))),o(0)}catch(e){if("AbortError"===e.name)return;p(e.message??"Search failed"),l([])}finally{u(!1)}},[e]),w=(0,t.useCallback)((t,a)=>{if(null!==f.current&&clearTimeout(f.current),t!==h.current){if(t.length<3){m.current&&(m.current.abort(),m.current=null),h.current=t,u(!1),p(null),l(b.slice(0,e).map(e=>({...e,attachMode:"manifest"}))),o(0);return}f.current=setTimeout(()=>{h.current=t,g(t,a)},r)}},[r,g,e]);(0,t.useEffect)(()=>()=>{null!==f.current&&clearTimeout(f.current),m.current&&m.current.abort()},[]);let k=(0,t.useCallback)((e,t)=>{let r=function(e,t){if(t<2||t>e.length)return null;let r=t;for(;r>0&&!/\s/.test(e[r-1]);)r--;let a=e.slice(r,t);if(!a.startsWith("@/")&&!a.startsWith("@~"))return null;let n=a.slice(0,2);return{startIndex:r,endIndex:t,query:a.slice(2),trigger:n}}(e,t);n(e=>((e?.startIndex!==r?.startIndex||e?.query!==r?.query||e?.trigger!==r?.trigger)&&null===r&&(null!==f.current&&clearTimeout(f.current),m.current&&(m.current.abort(),m.current=null),h.current=null,l([]),u(!1),p(null)),r)),r&&w(r.query,r.trigger)},[w]),C=(0,t.useCallback)(e=>{if(!x||0===s.length)return!1;switch(e.key){case"ArrowDown":return e.preventDefault(),o(e=>e<s.length-1?e+1:0),!0;case"ArrowUp":return e.preventDefault(),o(e=>e>0?e-1:s.length-1),!0;case"Enter":return e.preventDefault(),!0;case"Tab":return!0;case"Escape":return e.preventDefault(),n(null),l([]),!0;default:return!1}},[x,s.length]),N=(0,t.useCallback)(e=>{if(!a)return null;let t=y(e.relativePath??e.path,a),r="folder"===e.type?"/":"",s=`@${t}${r} `;return n(null),l([]),{text:s,startIndex:a.startIndex,endIndex:a.endIndex}},[a]),$=(0,t.useCallback)(e=>{if(!a||"folder"!==e.type)return null;let t=y(e.relativePath??e.path,a),r=t.startsWith("~/")?"@~":"@/",s=t.slice(1),l=`@${t}/`,i=a.startIndex+l.length,o=`${s}/`;return n({startIndex:a.startIndex,endIndex:i,query:o,trigger:r}),h.current=null,w(o,r),{text:l,startIndex:a.startIndex,endIndex:a.endIndex}},[a,w]),M=(0,t.useCallback)(e=>{l(t=>t.map(t=>t.path===e.path?{...t,attachMode:"contents"}:t))},[]);return{isOpen:x,token:a,suggestions:s,activeIndex:i,isLoading:d,error:c,handleInput:k,handleKeyDown:C,selectSuggestion:N,drillDown:$,close:(0,t.useCallback)(()=>{n(null),l([]),o(0)},[]),onAttachContents:M}}function w({messages:e,maxSuggestions:r=5}){let[a,n]=(0,t.useState)(!1),[s,l]=(0,t.useState)(""),[i,o]=(0,t.useState)(0),[d,u]=(0,t.useState)([]),[c,p]=(0,t.useState)(null),m=(0,t.useRef)([]);(0,t.useEffect)(()=>{let t=e.filter(e=>!e.rootMessageId),r=new Map;e.forEach(e=>{if(e.rootMessageId){let t=r.get(e.rootMessageId)||[];t.push(e),r.set(e.rootMessageId,t)}}),m.current=t.map(e=>{let t=r.get(e.id)||[],a=[e,...t],n=Math.max(...a.map(e=>e.timestamp)),s=e.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",l=[...new Set(a.map(e=>e.participantId||"user"))];return{rootMessageId:e.id,title:s,rootMessage:e,replies:t,participantIds:l,lastActivityAt:n}}).sort((e,t)=>t.lastActivityAt-e.lastActivityAt)},[e]);let f=(0,t.useCallback)((e,t)=>{let a=e.slice(0,t).match(/@#([^@#\s]*)$/);if(a){n(!0);let e=a[1].toLowerCase();l(e),p(a.index),o(0),u(m.current.filter(t=>t.title.toLowerCase().includes(e)).slice(0,r))}else n(!1),p(null)},[r]),h=(0,t.useCallback)(e=>!!a&&0!==d.length&&("ArrowDown"===e.key?(e.preventDefault(),o(e=>(e+1)%d.length),!0):"ArrowUp"===e.key?(e.preventDefault(),o(e=>(e-1+d.length)%d.length),!0):"Escape"===e.key&&(e.preventDefault(),n(!1),!0)),[a,d.length]),x=(0,t.useCallback)(e=>null===c?null:{startIndex:c,endIndex:c+2+s.length,text:""},[c,s]);return{isOpen:a,suggestions:d,activeIndex:i,handleInput:f,handleKeyDown:h,selectSuggestion:x,close:(0,t.useCallback)(()=>{n(!1),p(null)},[]),exportDiscussion:(0,t.useCallback)(async e=>{let t=[];try{let e=await fetch("/api/participants");e.ok&&(t=await e.json())}catch(e){console.warn("Failed to fetch participants for export",e)}let r=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:e.rootMessageId,title:e.title,messages:[e.rootMessage,...e.replies],participants:t})});if(!r.ok)throw Error(`Export failed: ${await r.text()}`);return await r.json()},[])}}function k(){let[e,r]=(0,t.useState)([]),a=(0,t.useCallback)((e,t,a)=>{r(r=>r.find(t=>t.path===e)?r.map(r=>r.path===e?{...r,label:t,attachMode:a??r.attachMode}:r):[...r,{kind:"file-path",id:crypto.randomUUID(),path:e,label:t,attachMode:a}])},[]);return{filePaths:e,addFilePath:a,removeFilePath:(0,t.useCallback)(e=>{r(t=>t.filter(t=>t.id!==e))},[]),clearFilePaths:(0,t.useCallback)(()=>{r([])},[]),hasFilePaths:e.length>0}}e.s(["useFileMention",()=>j],255597),e.s(["useThreadMention",()=>w],261967),e.s(["useComposerAttachments",()=>k],464057);let C="agx-composer-history";function N(){let[e,r]=(0,t.useState)(-1),a=(0,t.useRef)(""),n=(0,t.useCallback)(()=>{try{let e=localStorage.getItem(C);return e?JSON.parse(e):[]}catch{return[]}},[]),s=(0,t.useCallback)(e=>{let t=e.trim();if(!t)return;let s=n().filter(e=>e!==t);s.unshift(t),s.length>100&&(s.length=100);try{localStorage.setItem(C,JSON.stringify(s))}catch{}r(-1),a.current=""},[n]);return{pushEntry:s,navigate:(0,t.useCallback)((t,s,l)=>{if(!l)return null;let i=n();if(0===i.length)return null;if("up"===t){-1===e&&(a.current=s);let t=a.current,n=e+1;if(t){for(let e=n;e<i.length;e++)if(i[e].toLowerCase().startsWith(t.toLowerCase()))return r(e),i[e];return null}let l=Math.min(e+1,i.length-1);return l===e&&-1!==e?null:(r(l),i[l])}if(e<=0)return 0===e?(r(-1),a.current):null;let o=a.current;if(o){for(let t=e-1;t>=0;t--)if(i[t].toLowerCase().startsWith(o.toLowerCase()))return r(t),i[t];return r(-1),a.current}let d=e-1;return r(d),i[d]},[n,e]),resetNavigation:(0,t.useCallback)(()=>{r(-1),a.current=""},[]),historyIndex:e}}function $({projectSlug:e,enabled:r=!0,limit:a=500}={}){let[n,s]=(0,t.useState)([]),[l,i]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{if(!r){s([]),i(!1);return}let t=!1,n=new URLSearchParams;return n.set("limit",String(a)),e&&n.set("projectSlug",e),i(!0),fetch(`/api/linear/issues?${n.toString()}`).then(async e=>{let r=await e.json().catch(()=>({}));t||s(Array.isArray(r.issues)?r.issues:[])}).catch(()=>{t||s([])}).finally(()=>{t||i(!1)}),()=>{t=!0}},[r,a,e]),{issues:n,loading:l}}async function M(e){let t;if(0===e.length)return[];let r=e.map(e=>e.path);try{let a=await fetch("/api/file-read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:r})});if(!a.ok){let t=(await a.json().catch(()=>({}))).error??`HTTP ${a.status}`;return e.map(e=>({type:"file",path:e.path,label:e.label,content:null,error:t}))}t=(await a.json()).results}catch(r){let t=r instanceof Error?r.message:"Failed to fetch file contents";return e.map(e=>({type:"file",path:e.path,label:e.label,content:null,error:t}))}let a=new Map(t.map(e=>[e.path,e]));return e.map(e=>{let t=a.get(e.path);return{type:"file",path:e.path,label:e.label,content:t?.content??null,error:t?.error}})}async function I(e){let t=await M(e),r=0===t.length?"":t.map(e=>e.error||null===e.content?`<file path="${e.path}" error="${e.error??"unreadable"}" />`:`<file path="${e.path}">
2
+ ${e.content}
3
+ </file>`).join("\n\n")+"\n\n";return{fileContextBlocks:t,contextPrefix:r}}function S(e){return e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function P(e){let t=new Set;return!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("linearIssueMention"!==e.type)return;let r="string"==typeof e.attrs?.id?e.attrs.id.trim():"";r&&t.add(r)}),Array.from(t)}function A(e){if(0===e.length)return"";let t=e.map(e=>[`<linear-issue identifier="${S(e.identifier)}" status="${S(e.status)}"${e.assignee?` assignee="${S(e.assignee)}"`:""}>`,`Title: ${e.title}`,e.url?`URL: ${e.url}`:null,e.teamName?`Team: ${e.teamName}`:null,e.cycleName||null!=e.cycleNumber?`Cycle: ${e.cycleName??`Cycle ${e.cycleNumber}`}`:null,`Updated: ${e.updatedAt}`,"",e.description?.trim()||"No description provided.","</linear-issue>"].filter(e=>null!==e).join("\n"));return`Referenced Linear tickets (only because the user explicitly @mentioned them):
4
+
5
+ ${t.join("\n\n")}
6
+
7
+ `}e.s(["useComposerHistory",()=>N],835817),e.s(["useLinearIssueMentions",()=>$],457653),e.s(["buildAgentContext",()=>I],561022),e.s(["buildLinearIssueContextPrefix",()=>A,"extractMentionedLinearIssueIds",()=>P],330054);var T=e.i(10552);let D=T.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:e,HTMLAttributes:t}){let r="parallel"===e.attrs.mode;return["span",(0,T.mergeAttributes)(t,{"data-participant-mention":"","data-id":e.attrs.id,"data-mode":e.attrs.mode,class:r?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${r?"@@":"@"}${e.attrs.name}`]}}),L=T.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:e,HTMLAttributes:t})=>["span",(0,T.mergeAttributes)(t,{"data-project-mention":"","data-id":e.attrs.id,"data-slug":e.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${e.attrs.name}`]}),z=T.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:e,HTMLAttributes:t}){let r=e.attrs.relativePath||e.attrs.path;return["span",(0,T.mergeAttributes)(t,{"data-file-mention":"","data-path":e.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${r}`]}}),F=T.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,T.mergeAttributes)(t,{"data-thread-mention":"","data-thread-id":e.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${e.attrs.title}`]}),E=T.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:e,HTMLAttributes:t})=>["span",(0,T.mergeAttributes)(t,{"data-linear-issue-mention":"","data-id":e.attrs.id,"data-identifier":e.attrs.identifier,class:"composer-pill composer-pill--linear-issue",contenteditable:"false"}),`@${e.attrs.identifier}`]});function O(e){if(!e.content)return"";let t=[];for(let r of e.content)r.type,t.push(function(e){if(!e.content)return"";let t="";for(let r of e.content)switch(r.type){case"text":t+=r.text??"";break;case"participantMention":{let e=r.attrs??{},a="parallel"===e.mode?"@@":"@";t+=`${a}${e.name}`;break}case"projectMention":{let e=r.attrs??{},a=String(e.slug??"").trim();a?t+=`@~project:${a}`:e.name&&(t+=`@${e.name}`);break}case"fileMention":{let e=r.attrs??{},a=e.relativePath||e.path;t+=`@${a}`;break}case"threadMention":{let e=((r.attrs??{}).threadId??"").slice(0,8);t+=`@#${e}`;break}case"linearIssueMention":{let e=String((r.attrs??{}).identifier??"").trim();e&&(t+=`@${e}`);break}default:"hardBreak"===r.type&&(t+="\n")}return t}(r));return t.join("\n")}function R(e){let{state:t}=e,{$from:r}=t.selection,a=r.depth,n=-1;for(let e=a;e>=0;e--)if("paragraph"===r.node(e).type.name){n=e;break}if(-1===n)return null;let s=r.node(n),l=r.start(n),i=r.pos-l,o="",d=0,u=!1;return s.forEach((e,t)=>{let r=t+e.nodeSize;if(e.isText){let a=e.text??"";!u&&i>=t&&i<=r&&(d=o.length+(i-t),u=!0),o+=a}else if(e.isAtom){let a=U(e);!u&&i>=t&&i<=r&&(d=o.length+a.length,u=!0),o+=a}}),u||(d=o.length),{text:o,cursorPos:d,blockStart:l}}function U(e){switch(e.type.name){case"participantMention":{let t="parallel"===e.attrs.mode?"@@":"@";return`${t}${e.attrs.name}`}case"projectMention":{let t=String(e.attrs.slug??"").trim();if(t)return`@~project:${t}`;return e.attrs.name?`@${e.attrs.name}`:""}case"fileMention":{let t=e.attrs.relativePath||e.attrs.path;return`@${t}`}case"threadMention":{let t=(e.attrs.threadId??"").slice(0,8);return`@#${t}`}case"linearIssueMention":{let t=String(e.attrs.identifier??"").trim();return t?`@${t}`:""}default:return""}}function W(e,t,r,a){let{state:n}=e,s=n.doc.resolve(t),l=s.depth,i=null,o=t;for(let e=l;e>=0;e--){let t=s.node(e);if("paragraph"===t.type.name){i=t,o=s.start(e);break}}i||(i=n.doc.resolve(t).parent,o=t);let d=0,u=null,c=null;return(i.forEach((e,t)=>{let n=o+t,s=e.nodeSize;if(e.isText){let t=e.text??"",s=d+t.length;null===u&&r>=d&&r<=s&&(u=n+(r-d)),null===c&&a>=d&&a<=s&&(c=n+(a-d)),d=s}else if(e.isAtom){let t=U(e),l=d+t.length;null===u&&r>=d&&r<=l&&(u=n),null===c&&a>=d&&a<=l&&(c=n+s),d=l}}),null===u&&r>=d&&(u=o+i.content.size),null===c&&a>=d&&(c=o+i.content.size),null===u||null===c)?null:{from:u,to:c}}e.s(["FileMention",0,z,"LinearIssueMention",0,E,"ParticipantMention",0,D,"ProjectMention",0,L,"ThreadMention",0,F],787552),e.s(["serializeToPlainText",()=>O],501456),e.s(["getCurrentParagraphText",()=>R,"plainTextRangeToPos",()=>W],717622);var q=e.i(843476),H=e.i(475254);let B=(0,H.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"}]]),_=(0,H.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 K=e.i(761911);function J({isOpen:e,suggestions:r,activeIndex:a,listboxId:n,optionIdPrefix:s,onSelect:l}){let i=(0,t.useRef)([]);if((0,t.useEffect)(()=>{e&&i.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),!e||0===r.length)return null;let o=new Set;return(0,q.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,q.jsx)("div",{role:"listbox",id:n,"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:r.map((e,t)=>{let r=t===a,n="project-group"===e.kind?`project-group-${e.project.id}`:"project"===e.kind?`project-${e.project.id}`:"ticket"===e.kind?`ticket-${e.issue.id}`:e.participant.id,d=e.group,u=null;if(d&&!o.has(d)&&(o.add(d),u=(0,q.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:d})),"project-group"===e.kind)return(0,q.jsxs)("div",{children:[u,(0,q.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,q.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,q.jsx)(K.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,q.jsx)("span",{className:"font-medium",children:e.project.name}),(0,q.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[e.project.agents.length," agent",1!==e.project.agents.length?"s":""]})]})})]},n);if("project"===e.kind)return(0,q.jsxs)("div",{children:[u,(0,q.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,q.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,q.jsx)(B,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,q.jsx)("span",{className:"font-medium",children:e.project.name}),(0,q.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.project.slug})]})})]},n);if("ticket"===e.kind)return(0,q.jsxs)("div",{children:[u,(0,q.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,q.jsxs)("span",{className:"flex items-start gap-2",children:[(0,q.jsx)(_,{className:"mt-0.5 h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,q.jsxs)("span",{className:"min-w-0",children:[(0,q.jsxs)("span",{className:"block font-medium",children:[e.issue.identifier,(0,q.jsx)("span",{className:"ml-2 text-xs text-[var(--muted-foreground)]",children:e.issue.status})]}),(0,q.jsx)("span",{className:"block truncate text-xs text-[var(--muted-foreground)]",children:e.issue.title})]})]})})]},n);let c=e.participant;return(0,q.jsxs)("div",{children:[u,(0,q.jsx)("button",{type:"button",role:"option",id:`${s}-${c.id}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${d?" pl-6":""}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,q.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,q.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:c.color},"aria-hidden":!0}),(0,q.jsx)("span",{className:"font-medium",children:c.name}),"all"===c.id?(0,q.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):c.model&&(0,q.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:c.model})]})})]},n)})})})}function V({isOpen:e,commands:r,activeIndex:a,listboxId:n,optionIdPrefix:s,onSelect:l}){let i=(0,t.useRef)([]);return((0,t.useEffect)(()=>{e&&i.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),e&&0!==r.length)?(0,q.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,q.jsx)("div",{role:"listbox",id:n,"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:r.map((e,t)=>{let r=t===a;return(0,q.jsx)("button",{type:"button",role:"option",id:`${s}-${e.name.slice(1)}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>e.preventDefault(),onClick:()=>l(e),children:(0,q.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,q.jsx)("span",{className:"font-medium font-mono",children:e.name}),e.aliases&&e.aliases.length>0&&(0,q.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",e.aliases.join(", "),")"]}),(0,q.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.description})]})},e.name)})})}):null}e.s(["MentionPopover",()=>J],215094),e.s(["CommandPopover",()=>V],833195);var Z=e.i(531278),X=e.i(63209);let G=(0,H.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 Q=e.i(327025),Y=e.i(75505);function ee({suggestion:e,isActive:t,optionId:r,onSelect:a,onAttachContents:n,itemRef:s}){let l="folder"===e.type,i="contents"===e.attachMode,o=function(e){if(!e)return null;let t=Math.floor((Date.now()-e)/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t}d ago`:t<30?`${Math.floor(t/7)}w ago`:t<365?`${Math.floor(t/30)}mo ago`:`${Math.floor(t/365)}y ago`}(e.modifiedAt),d=e.relativePath??e.path;return(0,q.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${t?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,q.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:l?t?(0,q.jsx)(Y.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,q.jsx)(Q.Folder,{className:"h-4 w-4 text-amber-400"}):(0,q.jsx)(G,{className:"h-4 w-4"})}),(0,q.jsxs)("button",{type:"button",role:"option",id:r,"aria-selected":t,ref:s,className:"min-w-0 flex-1 text-left",onMouseDown:e=>e.preventDefault(),onClick:()=>a(e),tabIndex:-1,children:[(0,q.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,q.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:d}),o&&(0,q.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:o})]}),l&&e.manifest&&(0,q.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[e.manifest.childCount," items ·"," ",e.manifest.sizeSummary,i?(0,q.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,q.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),l&&!i&&(0,q.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 ${d}`,onMouseDown:e=>e.preventDefault(),onClick:()=>n(e),tabIndex:-1,children:"Attach contents"}),l&&i&&(0,q.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 et=e.i(837452);function er({isOpen:e,suggestions:r,activeIndex:a,isLoading:n,error:s,listboxId:l,optionIdPrefix:i,onSelect:o,onAttachContents:d}){let u=(0,t.useRef)([]),c=(0,t.useRef)(null),[p,m]=(0,t.useState)(!1);if((0,t.useEffect)(()=>{e&&u.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),(0,t.useEffect)(()=>{e&&c.current&&m(c.current.getBoundingClientRect().top<280)},[e]),!e)return null;let f=r.length>0?`${i}-${a}`:void 0;return(0,q.jsx)("div",{ref:c,className:`${p?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${et.default.popover}`,children:(0,q.jsxs)("div",{role:"listbox",id:l,"aria-label":"File suggestions","aria-activedescendant":f,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[s&&!n&&(0,q.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,q.jsx)(X.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,q.jsx)("span",{children:s})]}),!s&&n&&0===r.length&&(0,q.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,q.jsx)(Z.Loader2,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,q.jsx)("span",{children:"Searching…"})]}),!s&&!n&&0===r.length&&(0,q.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!s&&n&&r.length>0&&(0,q.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,q.jsx)(Z.Loader2,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,q.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),r.length>0&&r.map((e,t)=>(0,q.jsx)(ee,{suggestion:e,isActive:t===a,optionId:`${i}-${t}`,onSelect:o,onAttachContents:d,itemRef:e=>{u.current[t]=e}},e.path))]})})}e.s(["FileMentionPopover",()=>er],780023);var ea=e.i(686311),en=e.i(503116);function es({isOpen:e,suggestions:t,activeIndex:r,listboxId:a,optionIdPrefix:n,onSelect:s}){return e&&0!==t.length?(0,q.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:a,children:[(0,q.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,q.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:t.map((e,t)=>{let a=t===r;return(0,q.jsxs)("button",{role:"option",id:`${n}-${t}`,"aria-selected":a,onClick:()=>s(e),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${a?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,q.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${a?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,q.jsx)(ea.MessageSquare,{size:14,strokeWidth:2.5})}),(0,q.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,q.jsx)("div",{className:`text-sm font-semibold truncate ${a?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:e.title}),(0,q.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,q.jsxs)("span",{className:`text-xs ${a?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[e.replies.length," replies"]}),(0,q.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,q.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,q.jsx)(en.Clock,{size:10}),function(e){if(!e)return"";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let r=Math.floor(t/60);if(r<60)return`${r}m`;let a=Math.floor(r/60);return a<24?`${a}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(e.lastActivityAt)]})]})]})]},e.rootMessageId)})})]}):null}e.s(["ThreadMentionPopover",()=>es],309652);var el=e.i(37727),ei=e.i(16715),eo=e.i(178583);let ed=(0,H.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"}]]);function eu({attachments:e,onRemove:t,onRetry:r}){return 0===e.length?null:(0,q.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:e.map(e=>{var a;let n=e.mimeType.startsWith("image/"),s="failed"===e.status,l="uploading"===e.status;return(0,q.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${s?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[n&&e.previewUrl?(0,q.jsx)("img",{src:e.previewUrl,alt:e.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,q.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:n?(0,q.jsx)(ed,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,q.jsx)(eo.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,q.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,q.jsx)("div",{className:"truncate font-medium",children:e.filename}),s&&e.error?(0,q.jsx)("div",{className:"truncate text-[10px] text-red-500",children:e.error}):(0,q.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(a=e.size)<1024?`${a}B`:a<1048576?`${(a/1024).toFixed(0)}KB`:`${(a/1048576).toFixed(1)}MB`})]}),l&&(0,q.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,q.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${e.progress}%`}})}),(0,q.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[s&&(0,q.jsx)("button",{type:"button",onClick:()=>r(e.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,q.jsx)(ei.RefreshCw,{className:"w-3 h-3"})}),(0,q.jsx)("button",{type:"button",onClick:()=>t(e.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,q.jsx)(el.X,{className:"w-3 h-3"})})]})]},e.id)})})}function ec({onDrop:e,children:r}){let[a,n]=(0,t.useState)(!1),s={current:0},l=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s.current++,e.dataTransfer.types.includes("Files")&&n(!0)},[]),i=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),o=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s.current--,0===s.current&&n(!1)},[]),d=(0,t.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),s.current=0,n(!1),t.dataTransfer.files.length>0&&e(t.dataTransfer.files)},[e]);return(0,q.jsxs)("div",{className:"relative",onDragEnter:l,onDragOver:i,onDragLeave:o,onDrop:d,children:[r,a&&(0,q.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,q.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}e.s(["AttachmentTray",()=>eu],471221),e.s(["ComposerDropZone",()=>ec],169408);let ep=(0,H.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"}]]);e.s(["Paperclip",()=>ep],82735)},209912,e=>{"use strict";let t=(0,e.i(475254).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"}]]);e.s(["Rocket",()=>t],209912)},391560,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(494499),n=e.i(256378),s=e.i(555841),l=e.i(16706),i=e.i(898975),o=e.i(473323),d=e.i(255597),u=e.i(261967),c=e.i(464057),p=e.i(835817),m=e.i(457653),f=e.i(561022),h=e.i(330054),x=e.i(286476),g=e.i(668036),v=e.i(787552),b=e.i(501456),y=e.i(717622),j=e.i(215094),w=e.i(833195),k=e.i(780023),C=e.i(309652),N=e.i(471221),$=e.i(169408),M=e.i(82735),I=e.i(209912),S=e.i(690272),P=e.i(664659),A=e.i(37727);function T(e,t,r,a,n){if(!e)return;let s=(0,y.plainTextRangeToPos)(e,t,r,a);s&&e.chain().focus().deleteRange(s).insertContent(n).insertContent(" ").run()}function D({onSend:e,onStop:D,loading:L,activityStatus:z,participants:F,projects:E=[],projectGroups:O=[],projectSlug:R,messages:U=[],commands:W,placeholder:q="Message — @name to mention, /search, /summarize",workspaceRoots:H=[],onConfigureRoots:B,pendingThreadInsert:_,onClearPendingThread:K,autoMode:J=!1,onAutoModeChange:V,repos:Z=[],selectedRepoIds:X,onRepoSelectionChange:G,initialPinnedParticipantId:Q}){let Y,ee,et,er=z??(L?"working":"ready"),ea="ready"!==er,[en,es]=(0,r.useState)(Q??null),[el,ei]=(0,r.useState)(new Set),eo=X??el,ed=(0,r.useRef)(eo);ed.current=eo;let eu=(0,r.useCallback)(e=>{let t="function"==typeof e?e(ed.current):e;G?G(t):ei(t)},[G]),[ec,ep]=(0,r.useState)(!1),em=(0,r.useRef)(null),ef=(0,r.useRef)(null),eh=(0,r.useRef)(!1),ex=(0,r.useCallback)(()=>{ef.current?.click()},[]),[eg,ev]=(0,r.useState)([]),{issues:eb}=(0,m.useLinearIssueMentions)({projectSlug:R}),ey=(0,l.useMentionAutocomplete)({participants:F,projectGroups:O,projects:E,linearIssues:eb,maxSuggestions:8}),ej=(0,i.useCommandAutocomplete)({commands:W,maxSuggestions:6}),ew=(0,d.useFileMention)({maxSuggestions:8}),ek=(0,u.useThreadMention)({messages:U,maxSuggestions:8}),eC=(0,o.useAttachments)(),eN=(0,c.useComposerAttachments)(),e$=(0,p.useComposerHistory)();(0,r.useEffect)(()=>{en&&!F.some(e=>e.id===en)&&es(null)},[F,en]),(0,r.useEffect)(()=>{if(!ec)return;let e=e=>{em.current&&!em.current.contains(e.target)&&ep(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[ec]),(0,r.useEffect)(()=>{if(null!=X||0===el.size)return;let e=new Set(Z.map(e=>e.id)),t=new Set([...el].filter(t=>e.has(t)));t.size<el.size&&ei(t)},[Z,X,el]);let eM=(0,a.useEditor)({immediatelyRender:!1,extensions:[n.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),s.default.configure({placeholder:q}),v.ParticipantMention,v.ProjectMention,v.FileMention,v.ThreadMention,v.LinearIssueMention],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handleDOMEvents:{compositionstart:()=>(eh.current=!0,ey.startComposition(),!1),compositionend:(e,t)=>(eh.current=!1,setTimeout(()=>{if(!eM)return;let e=(0,y.getCurrentParagraphText)(eM);e&&ey.endComposition(e.text,e.cursorPos)},0),!1)},handleKeyDown:(e,t)=>{if("Tab"===t.key||"Enter"===t.key&&!t.shiftKey){if(ej.isOpen&&ej.filteredCommands.length>0){t.preventDefault();let e=ej.filteredCommands[ej.activeIndex];return e&&eL(e),!0}if(ew.isOpen&&ew.suggestions.length>0){t.preventDefault();let e=ew.suggestions[ew.activeIndex];return e&&("folder"===e.type?eT(e):eA(e)),!0}if(ek.isOpen&&ek.suggestions.length>0){t.preventDefault();let e=ek.suggestions[ek.activeIndex];return e&&eD(e),!0}if(ey.isOpen&&ey.filteredSuggestions.length>0){t.preventDefault();let e=ey.filteredSuggestions[ey.activeIndex];return e&&eP(e),!0}}let r={key:t.key,preventDefault:()=>t.preventDefault()};if(ej.isOpen&&ej.handleKeyDown(r)||ew.isOpen&&ew.handleKeyDown(r)||ek.isOpen&&ek.handleKeyDown(r)||ey.handleKeyDown(r))return!0;if(("ArrowUp"===t.key||"ArrowDown"===t.key)&&!ey.isOpen&&!ej.isOpen&&!ew.isOpen&&!ek.isOpen){let e=(0,b.serializeToPlainText)(eM.getJSON()).trim(),{state:r}=eM.view,a="ArrowUp"===t.key,n=a?r.selection.from<=1:r.selection.to>=r.doc.content.size-1,s=e$.navigate(a?"up":"down",e,n);if(null!==s)return t.preventDefault(),eM.commands.setContent(s),eM.commands.focus("end"),!0}return"Enter"===t.key&&!t.shiftKey&&(t.preventDefault(),ez(),!0)}},onUpdate:({editor:e})=>{if(eh.current)return;-1!==e$.historyIndex&&e$.resetNavigation();let t=(0,y.getCurrentParagraphText)(e);t&&(ey.handleInput(t.text,t.cursorPos),ej.handleInput(t.text,t.cursorPos),ew.handleInput(t.text,t.cursorPos),ek.handleInput(t.text,t.cursorPos))},onBlur:()=>{ey.close(),ej.close(),ew.close(),ek.close()}});(0,r.useEffect)(()=>{if(!_||!eM)return;let{title:e,threadId:t,messages:r}=_;eM.chain().focus().insertContent({type:"threadMention",attrs:{threadId:t,title:e}}).insertContent(" ").run();let a=r[0];if(a){let n={rootMessageId:t,title:e,rootMessage:a,replies:r.slice(1),participantIds:[...new Set(r.map(e=>e.participantId||"user"))],lastActivityAt:Math.max(...r.map(e=>e.timestamp))};ek.exportDiscussion(n).then(e=>ev(t=>[...t,e])).catch(e=>console.error("Failed to export discussion for Add to chat:",e))}K?.()},[_]);let eI=(0,r.useCallback)(()=>{if(!eM)return;let e=(0,y.getCurrentParagraphText)(eM);e&&ey.handleInput(e.text,e.cursorPos)},[eM,ey]),eS=(0,r.useCallback)(e=>{let{clipboardData:t}=e,r=(0,g.getClipboardAttachmentFiles)(t);if(r.length>0){e.preventDefault(),e.stopPropagation(),eC.stageFiles(r);return}let a="u">typeof navigator?navigator.clipboard:void 0;(0,g.clipboardMayContainImageAttachments)(t)&&"function"==typeof a?.read&&(e.preventDefault(),e.stopPropagation(),(0,g.readClipboardAttachmentFiles)(t,a).then(e=>{e.length>0&&eC.stageFiles(e)}).catch(e=>{console.error("Failed to read pasted clipboard attachments:",e)}))},[eC]),eP=(0,r.useCallback)(e=>{if(!eM)return;let t=ey.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eM);if(!r)return;let a=t.text.startsWith("@@"),n="project-group"===e.kind?{type:"participantMention",attrs:{id:e.project.id,name:e.project.name,mode:a?"parallel":"sequential",kind:"project"}}:"project"===e.kind?{type:"projectMention",attrs:{id:e.project.id,slug:e.project.slug,name:e.project.name}}:"ticket"===e.kind?{type:"linearIssueMention",attrs:{id:e.issue.id,identifier:e.issue.identifier,title:e.issue.title,status:e.issue.status,url:e.issue.url}}:{type:"participantMention",attrs:{id:e.participant.id,name:e.participant.name,mode:a?"parallel":"sequential",kind:"agent"}};T(eM,r.blockStart,t.startIndex,t.endIndex,n),ey.close()},[eM,ey]),eA=(0,r.useCallback)(e=>{if(!eM)return;let t=ew.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eM);if(!r)return;let a={type:"fileMention",attrs:{path:e.path,relativePath:e.relativePath??e.path,trigger:ew.token?.trigger??"@/",attachMode:e.attachMode}};T(eM,r.blockStart,t.startIndex,t.endIndex,a),eN.addFilePath(e.path,e.relativePath??e.path,e.attachMode)},[eM,ew,eN]),eT=(0,r.useCallback)(e=>{if(!eM)return;let t=(0,y.getCurrentParagraphText)(eM);if(!t)return;let r=ew.drillDown(e);if(!r)return;let a=(0,y.plainTextRangeToPos)(eM,t.blockStart,r.startIndex,r.endIndex);a&&eM.chain().focus().deleteRange(a).insertContent(r.text).run()},[eM,ew]),eD=(0,r.useCallback)(async e=>{if(!eM)return;let t=ek.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eM);if(!r)return;let a={type:"threadMention",attrs:{threadId:e.rootMessageId,title:e.title}};T(eM,r.blockStart,t.startIndex,t.endIndex,a);try{let t=await ek.exportDiscussion(e);ev(e=>[...e,t])}catch(e){console.error("Failed to export discussion:",e)}},[eM,ek]),eL=(0,r.useCallback)(e=>{ej.selectCommand(e),eM&&eM.commands.clearContent()},[ej,eM]),ez=(0,r.useCallback)(async()=>{if(!eM)return;let t=eM.getJSON(),r=(0,b.serializeToPlainText)(t).trim();if(!r&&!eC.hasUploaded&&!eN.hasFilePaths||!eC.canSend)return;if(r){let e=W.find(e=>e.name===r||e.aliases?.some(e=>`/${e}`===r));if(e){e.execute(),eM.commands.clearContent(),ej.close(),ey.close();return}}let a=r||"(attached files)",n=[];if(eo.size>0){let e=Z.filter(e=>eo.has(e.id));if(e.length>0){let t=e.map(e=>{let t=[e.name];return e.path&&t.push(`path: ${e.path}`),e.notes&&t.push(e.notes),`- ${t.join(" | ")}`}).join("\n");n.push(`Focused repos (the user is specifically talking about these repositories):
8
+ ${t}`)}}if(eg.length>0){let e=eg.map(e=>`- "${e.title}" — ${e.summary} (full transcript: ${e.filePath})`).join("\n");n.push(`Referenced threads:
9
+ ${e}`)}if(eN.hasFilePaths){let e=await (0,f.buildAgentContext)(eN.filePaths);e.contextPrefix&&n.push(e.contextPrefix.trimEnd())}let s=(0,h.extractMentionedLinearIssueIds)(t);if(s.length>0)try{let e=await fetch("/api/linear/issues/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issueIds:s})});if(!e.ok)throw Error(`Failed to load issue context: ${e.status}`);let t=await e.json().catch(()=>({})),r=Array.isArray(t.issues)?t.issues:[],a=(0,h.buildLinearIssueContextPrefix)(r);a&&n.push(a.trimEnd())}catch(e){console.error("Failed to load Linear issue mention context:",e)}let l=n.length>0?n.join("\n\n")+"\n\n":void 0,i=(0,x.extractComposerRouting)(t,en);r&&e$.pushEntry(r);let o=eC.attachmentIds.length>0?eC.attachmentIds:void 0,d=o?eC.getAttachmentMetas():void 0;e(a,10,o,d,en??void 0,l,i),eM.commands.clearContent(),ev([]),eC.clear(),eN.clearFilePaths(),ey.close(),ej.close(),ek.close()},[eM,ey,ej,W,e,eC,eN,eg,ek,e$,eo,Z,en]),eF=ey.isOpen&&ey.filteredSuggestions.length>0;ej.isOpen&&ej.filteredCommands.length,ew.isOpen&&ew.suggestions.length,ek.isOpen&&ek.suggestions.length,eF&&ey.filteredSuggestions[ey.activeIndex];let eE=eC.staged.some(e=>"uploading"===e.status),eO=!eM||eM.isEmpty,eR=F.find(e=>e.id===en)??null;return(0,t.jsx)("div",{className:"pb-6",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsx)($.ComposerDropZone,{onDrop:eC.stageFiles,children:(0,t.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:[V&&(0,t.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${J?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,t.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${J?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:J?"shipBgSweep 4s ease-in-out infinite":"none"}}),J&&(0,t.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((e,r)=>(0,t.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*r}%`,right:"-10%",width:`${20+r%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+r%3*.1,animation:`shipSpeedLine ${.8+r%4*.3}s ${.1*r}s ease-in-out infinite`}},r))}),(0,t.jsx)("div",{className:"relative px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${J?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:J?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,t.jsx)(I.Rocket,{size:14})}),(0,t.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${J?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,t.jsx)("span",{className:`text-xs transition-colors duration-300 ${J?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,t.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${J?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:J?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>V(!J),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)] ${J?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,t.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${J?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,t.jsxs)("div",{className:"p-1.5 transition-all",children:[eC.staged.length>0&&(0,t.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,t.jsx)(N.AttachmentTray,{attachments:eC.staged,onRemove:eC.remove,onRetry:eC.retry})}),(0,t.jsxs)("div",{className:"p-2 relative",children:[(0,t.jsx)("input",{ref:ef,type:"file",multiple:!0,className:"hidden",onChange:e=>{e.target.files&&e.target.files.length>0&&(eC.stageFiles(e.target.files),e.target.value="")}}),(0,t.jsxs)("div",{className:"flex-1 relative",onClick:eI,onPasteCapture:eS,children:[(0,t.jsx)(a.EditorContent,{editor:eM,className:"composer-editor"}),(0,t.jsx)(j.MentionPopover,{isOpen:ey.isOpen&&!ej.isOpen,suggestions:ey.filteredSuggestions,activeIndex:ey.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:eP}),(0,t.jsx)(w.CommandPopover,{isOpen:ej.isOpen,commands:ej.filteredCommands,activeIndex:ej.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:eL}),(0,t.jsx)(k.FileMentionPopover,{isOpen:ew.isOpen,suggestions:ew.suggestions,activeIndex:ew.activeIndex,isLoading:ew.isLoading,error:ew.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:e=>{"folder"===e.type?eT(e):eA(e)},onAttachContents:ew.onAttachContents}),(0,t.jsx)(C.ThreadMentionPopover,{isOpen:ek.isOpen&&!ej.isOpen&&!ew.isOpen,suggestions:ek.suggestions,activeIndex:ek.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:eD})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--app-shell-border)] transition-colors",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:ex,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,t.jsx)(M.Paperclip,{className:"h-4 w-4",strokeWidth:1.75})}),(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===F.length?(0,t.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):F.map(e=>(0,t.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":en===e.id,onClick:()=>es(t=>t===e.id?null:e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),es(t=>t===e.id?null:e.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 ${en===e.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:e.name,children:[(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"w-full h-full rounded-full object-cover"}),ea&&(0,t.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===er?"bg-amber-400":"bg-emerald-400"}`})]},e.id))})]}),eR&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:eR.name})]})]}),Z.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("div",{className:"relative",ref:em,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>ep(e=>!e),className:"composer-repo-select-trigger","aria-haspopup":"listbox","aria-expanded":ec,children:[(0,t.jsx)(S.FolderGit2,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,t.jsx)("span",{children:"Repos"}),(0,t.jsx)(P.ChevronDown,{className:`h-3 w-3 transition-transform ${ec?"rotate-180":""}`})]}),ec&&(0,t.jsx)("div",{className:"composer-repo-dropdown",role:"listbox","aria-multiselectable":"true",children:Z.map(e=>{let r=eo.has(e.id);return(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":r,className:`composer-repo-dropdown__item ${r?"composer-repo-dropdown__item--selected":""}`,onClick:()=>eu(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r}),children:[(0,t.jsx)("span",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${r?"bg-emerald-500 border-emerald-500 text-white":"border-[var(--app-shell-border-strong)]"}`,children:r&&(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,t.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.id)})})]}),(ee=(Y=Z.filter(e=>eo.has(e.id))).slice(0,1),et=Y.length-1,(0,t.jsxs)(t.Fragment,{children:[ee.map(e=>(0,t.jsxs)("span",{className:"composer-repo-pill",title:e.path||e.name,children:[(0,t.jsx)(S.FolderGit2,{className:"h-3 w-3 shrink-0",strokeWidth:1.75}),(0,t.jsx)("span",{className:"composer-repo-pill__name",children:e.name}),(0,t.jsx)("button",{type:"button",className:"composer-repo-pill__remove",onClick:()=>eu(t=>{let r=new Set(t);return r.delete(e.id),r}),"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(A.X,{className:"h-3 w-3"})})]},e.id)),et>0&&(0,t.jsxs)("span",{className:"composer-repo-pill composer-repo-pill--overflow",children:["+",et]})]}))]})]})]}),ea?(0,t.jsx)("button",{type:"button",onClick:D,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,t.jsxs)("button",{type:"button",onClick:ez,disabled:eO&&!eC.hasUploaded&&!eN.hasFilePaths||eE,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,t.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,t.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,t.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===er?"bg-emerald-400 animate-pulse":"queued"===er?"bg-amber-400":"bg-emerald-400"}`}),(0,t.jsx)("span",{children:"working"===er?"Working":"queued"===er?"Queued":"Ready"})]}),(0,t.jsxs)("span",{children:["Press ",(0,t.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,t.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,t.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"]})]})]})})}e.s(["Composer",()=>D])}]);