@mndrk/agx 2.4.10 → 2.4.11

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 (511) hide show
  1. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +7 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +5 -5
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +47 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/build-manifest.json +3 -3
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/next-font-manifest.json +3 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +3 -3
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/build-manifest.json +3 -3
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/next-font-manifest.json +3 -1
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/build-manifest.json +3 -3
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/next-font-manifest.json +3 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +5 -3
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +5 -3
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +3 -3
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +5 -3
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/app-paths-manifest.json +3 -0
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/build-manifest.json +11 -0
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/server-reference-manifest.json +4 -0
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js +7 -0
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.map +5 -0
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.nft.json +1 -0
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route_client-reference-manifest.js +2 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/app-paths-manifest.json +3 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/build-manifest.json +11 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/server-reference-manifest.json +4 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js +7 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.map +5 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.nft.json +1 -0
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route_client-reference-manifest.js +2 -0
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/app-paths-manifest.json +3 -0
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/build-manifest.json +11 -0
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/server-reference-manifest.json +4 -0
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js +7 -0
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.map +5 -0
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.nft.json +1 -0
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route_client-reference-manifest.js +2 -0
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/app-paths-manifest.json +3 -0
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/build-manifest.json +11 -0
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/server-reference-manifest.json +4 -0
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js +7 -0
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.map +5 -0
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.nft.json +1 -0
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route_client-reference-manifest.js +2 -0
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/app-paths-manifest.json +3 -0
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/build-manifest.json +11 -0
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/server-reference-manifest.json +4 -0
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js +7 -0
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.map +5 -0
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.nft.json +1 -0
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route_client-reference-manifest.js +2 -0
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/app-paths-manifest.json +3 -0
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/build-manifest.json +11 -0
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/server-reference-manifest.json +4 -0
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js +7 -0
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.map +5 -0
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.nft.json +1 -0
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route_client-reference-manifest.js +2 -0
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js +1 -1
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +6 -4
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +6 -4
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +3 -3
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +5 -3
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/build-manifest.json +3 -3
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/next-font-manifest.json +3 -1
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.nft.json +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +5 -3
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +5 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +3 -3
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +5 -3
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/page/build-manifest.json +3 -3
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/page/next-font-manifest.json +3 -1
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/build-manifest.json +3 -3
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/next-font-manifest.json +3 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/build-manifest.json +3 -3
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/next-font-manifest.json +3 -1
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +3 -3
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +3 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +3 -3
  218. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/next-font-manifest.json +3 -1
  219. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
  220. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  222. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/build-manifest.json +3 -3
  223. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/next-font-manifest.json +3 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
  226. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
  227. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/build-manifest.json +3 -3
  228. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/next-font-manifest.json +3 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/build-manifest.json +3 -3
  233. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/next-font-manifest.json +3 -1
  234. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
  235. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  236. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  237. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/build-manifest.json +3 -3
  238. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/next-font-manifest.json +3 -1
  239. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  242. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/app-paths-manifest.json +3 -0
  243. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/build-manifest.json +18 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/next-font-manifest.json +13 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/react-loadable-manifest.json +1 -0
  246. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/server-reference-manifest.json +4 -0
  247. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js +16 -0
  248. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.map +5 -0
  249. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.nft.json +1 -0
  250. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page_client-reference-manifest.js +2 -0
  251. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/build-manifest.json +3 -3
  252. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/next-font-manifest.json +3 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js +1 -1
  254. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
  255. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/build-manifest.json +3 -3
  257. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/next-font-manifest.json +3 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/build-manifest.json +3 -3
  262. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/next-font-manifest.json +3 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/build-manifest.json +3 -3
  267. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/next-font-manifest.json +3 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  271. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/build-manifest.json +3 -3
  272. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/next-font-manifest.json +3 -1
  273. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
  274. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  275. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  276. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/build-manifest.json +3 -3
  277. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/next-font-manifest.json +3 -1
  278. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
  279. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  280. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/build-manifest.json +3 -3
  282. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/next-font-manifest.json +3 -1
  283. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/build-manifest.json +3 -3
  287. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/next-font-manifest.json +3 -1
  288. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +3 -3
  292. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +3 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/build-manifest.json +3 -3
  297. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +3 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +1 -1
  299. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -1
  300. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/build-manifest.json +3 -3
  302. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/next-font-manifest.json +3 -1
  303. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/build-manifest.json +3 -3
  307. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/next-font-manifest.json +3 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  310. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  311. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/build-manifest.json +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/next-font-manifest.json +3 -1
  313. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js +1 -1
  314. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/build-manifest.json +3 -3
  317. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/next-font-manifest.json +3 -1
  318. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  321. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  322. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +5 -3
  323. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +5 -3
  324. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  325. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +3 -3
  326. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +5 -3
  327. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  329. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/build-manifest.json +3 -3
  330. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/next-font-manifest.json +3 -1
  331. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
  332. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  333. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  334. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  335. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +6 -4
  336. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +6 -4
  337. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  338. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +3 -3
  339. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +5 -3
  340. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  341. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  342. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/build-manifest.json +3 -3
  343. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/next-font-manifest.json +3 -1
  344. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  346. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  347. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  348. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +6 -4
  349. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +6 -4
  350. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  351. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +3 -3
  352. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +5 -3
  353. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  354. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  355. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +7 -0
  356. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__037eb67e._.js +3 -0
  357. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__97e7a600._.js → [root-of-the-server]__0ce28b4a._.js} +2 -2
  358. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2564bd1e._.js +3 -0
  359. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__26904897._.js +3 -0
  360. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f48224f7._.js → [root-of-the-server]__273384ad._.js} +2 -2
  361. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__bdc396a9._.js → [root-of-the-server]__2d6f22a3._.js} +2 -2
  362. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__af70f062._.js → [root-of-the-server]__3a038592._.js} +2 -2
  363. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9cb1dc55._.js → [root-of-the-server]__3b27260f._.js} +2 -2
  364. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__1321970e._.js → [root-of-the-server]__5da8d281._.js} +2 -2
  365. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__92d34a52._.js → [root-of-the-server]__69a60d71._.js} +2 -2
  366. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__66437bd3._.js → [root-of-the-server]__6edb829d._.js} +2 -2
  367. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__870fac73._.js → [root-of-the-server]__8cb4fb94._.js} +2 -2
  368. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__95298612._.js +3 -0
  369. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__aa1b171a._.js +3 -0
  370. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b719a2ed._.js +3 -0
  371. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__94f42197._.js → [root-of-the-server]__be9b56bb._.js} +2 -2
  372. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c57c0958._.js +3 -0
  373. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cce177d8._.js +3 -0
  374. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e33b34ce._.js +3 -0
  375. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__61c40dc9._.js → [root-of-the-server]__ee43b5b0._.js} +2 -2
  376. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
  377. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +2 -2
  378. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +2 -2
  379. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_diff_route_actions_5ed8f528.js +3 -0
  380. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_repos_route_actions_24bb70fb.js +3 -0
  381. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_workspaces_route_actions_2ffcb8e1.js +3 -0
  382. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_[id]_route_actions_97f96f83.js +3 -0
  383. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +2 -2
  384. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +12 -12
  385. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +12 -12
  386. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +12 -12
  387. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +1 -1
  388. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_refresh_route_actions_6586e386.js +3 -0
  389. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_rescan_route_actions_2566b872.js +3 -0
  390. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__14448535._.js +3 -0
  391. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__17c701d2._.js +3 -0
  392. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__ce586680._.js → [root-of-the-server]__24007358._.js} +2 -2
  393. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__263b7091._.js +2 -2
  394. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__2c4531d0._.js → [root-of-the-server]__6e4038bb._.js} +2 -2
  395. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__5f31e40b._.js → [root-of-the-server]__af9b12ac._.js} +2 -2
  396. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c027b3e3._.js +15 -0
  397. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__9434d6d7._.js → [root-of-the-server]__c2331483._.js} +2 -2
  398. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d8f968ee._.js +3 -0
  399. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_a0f42923._.js → _f2cf58ea._.js} +2 -2
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_4d3f9c1e._.js +3 -0
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_6d8c811a._.js +3 -0
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_9a67cfaf._.js +1 -1
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b87f08ce._.js +4 -0
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c012eb07._.js +3 -0
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +3 -3
  407. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_prs_review_6ac47c7c._.js +3 -0
  408. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/ebff2__next-internal_server_app_projects_[slug]_prs_[prId]_page_actions_37d43e50.js +3 -0
  409. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +6 -0
  410. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  411. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  412. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  413. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +93 -29
  414. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  415. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  416. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  417. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  418. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16786eff1b844fce.css +1 -0
  419. package/cloud-runtime/standalone/apps/local/.next/static/chunks/38a2210cf8c5fa16.js +1 -0
  420. package/cloud-runtime/standalone/apps/local/.next/static/chunks/4f3bd9585037d960.js +16 -0
  421. package/cloud-runtime/standalone/apps/local/.next/static/chunks/60239e52ecfd3f7e.js +1 -0
  422. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{afad1102543847bf.js → 6135e7752be76b7e.js} +11 -11
  423. package/cloud-runtime/standalone/apps/local/.next/static/chunks/731deba285de6535.js +16 -0
  424. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ca9570f1f269043.js +1 -0
  425. package/cloud-runtime/standalone/apps/local/.next/static/chunks/86c552479b09e1f3.js +1 -0
  426. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8f6587b3b3255b54.js +16 -0
  427. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a2eeffc281bd68bc.js +1 -0
  428. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a68ffbf383609000.js +1 -0
  429. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b2c704fe1711d660.js +16 -0
  430. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b59bb2518194866e.css +1 -0
  431. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{72b4109642bf21f4.js → cb34ff86458b2477.js} +2 -2
  432. package/cloud-runtime/standalone/apps/local/.next/static/chunks/dc12676eea40fd39.css +4 -0
  433. package/cloud-runtime/standalone/apps/local/.next/static/chunks/de6617e175bb536b.js +1 -0
  434. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{turbopack-87f23485587f08c3.js → turbopack-90109c6adbc88193.js} +2 -2
  435. package/cloud-runtime/standalone/apps/local/.next/static/media/04c5164763c40239-s.690580e8.woff2 +0 -0
  436. package/cloud-runtime/standalone/apps/local/.next/static/media/051742360c26797e-s.p.102b7f24.woff2 +0 -0
  437. package/cloud-runtime/standalone/apps/local/.next/static/media/0ee4b8f05dcd9fee-s.45e2741a.woff2 +0 -0
  438. package/cloud-runtime/standalone/apps/local/.next/static/media/13ae3e01af63c0ce-s.3ec27879.woff2 +0 -0
  439. package/cloud-runtime/standalone/apps/local/.next/static/media/26f284dcc38c84c0-s.303a03d6.woff2 +0 -0
  440. package/cloud-runtime/standalone/apps/local/.next/static/media/6a5386fd6038edbe-s.719084df.woff2 +0 -0
  441. package/cloud-runtime/standalone/apps/local/.next/static/media/7e7f32a39836f228-s.0b4edfe7.woff2 +0 -0
  442. package/cloud-runtime/standalone/apps/local/.next/static/media/9eba4caf7edd2921-s.57f6a4a3.woff2 +0 -0
  443. package/cloud-runtime/standalone/apps/local/.next/static/media/ab57efd000576a30-s.p.37015d44.woff2 +0 -0
  444. package/cloud-runtime/standalone/apps/local/.next/static/media/b8d1f0a88dfecec3-s.cf53ec14.woff2 +0 -0
  445. package/cloud-runtime/standalone/apps/local/.next/static/media/f285987c35230861-s.b3721d2b.woff2 +0 -0
  446. package/cloud-runtime/standalone/apps/local/.next/static/media/f6752bd2263820da-s.95b8f539.woff2 +0 -0
  447. package/cloud-runtime/standalone/apps/local/.next/static/media/fa39153a3fc630ba-s.bff0868b.woff2 +0 -0
  448. package/cloud-runtime/standalone/apps/local/app/api/git/diff/route.ts +54 -0
  449. package/cloud-runtime/standalone/apps/local/app/api/git/repos/route.ts +47 -0
  450. package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/refresh/route.ts +52 -0
  451. package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/rescan/route.ts +23 -0
  452. package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/route.ts +46 -0
  453. package/cloud-runtime/standalone/apps/local/app/api/github/prs/[id]/route.ts +28 -0
  454. package/cloud-runtime/standalone/apps/local/app/layout.tsx +14 -2
  455. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/[prId]/page.tsx +13 -0
  456. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/page.tsx +5 -4
  457. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +27 -9
  458. package/cloud-runtime/standalone/apps/local/components/projects/RepoPathCombobox.tsx +301 -0
  459. package/cloud-runtime/standalone/apps/local/components/prs/review/AgentChip.tsx +61 -0
  460. package/cloud-runtime/standalone/apps/local/components/prs/review/CommitRail.tsx +149 -0
  461. package/cloud-runtime/standalone/apps/local/components/prs/review/DiffPane.tsx +294 -0
  462. package/cloud-runtime/standalone/apps/local/components/prs/review/FilesPane.tsx +216 -0
  463. package/cloud-runtime/standalone/apps/local/components/prs/review/PrReviewView.tsx +68 -0
  464. package/cloud-runtime/standalone/apps/local/components/prs/review/ReviewLayout.tsx +148 -0
  465. package/cloud-runtime/standalone/apps/local/components/prs/review/StatusBar.tsx +53 -0
  466. package/cloud-runtime/standalone/apps/local/components/prs/review/TopBar.tsx +137 -0
  467. package/cloud-runtime/standalone/apps/local/components/prs/review/review.module.css +112 -0
  468. package/cloud-runtime/standalone/apps/local/components/tracker/LinkedPrsSection.tsx +4 -3
  469. package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +111 -25
  470. package/cloud-runtime/standalone/apps/local/components/tracker/TicketWorkspaceView.tsx +472 -0
  471. package/cloud-runtime/standalone/apps/local/components/tracker/WorkspacePicker.tsx +338 -0
  472. package/cloud-runtime/standalone/apps/local/hooks/useProviders.ts +1 -0
  473. package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +20 -0
  474. package/cloud-runtime/standalone/apps/local/lib/diff-parser.ts +56 -0
  475. package/cloud-runtime/standalone/apps/local/lib/gh-pr-cli.ts +198 -0
  476. package/cloud-runtime/standalone/apps/local/lib/git-diff-cli.ts +232 -0
  477. package/cloud-runtime/standalone/apps/local/lib/git-repo-index.ts +144 -0
  478. package/cloud-runtime/standalone/apps/local/lib/git-workspaces.ts +187 -0
  479. package/cloud-runtime/standalone/apps/local/lib/provider-clis.ts +12 -1
  480. package/cloud-runtime/standalone/apps/local/lib/repo-suggestions.ts +104 -0
  481. package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +1 -0
  482. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  483. package/cloud-runtime/standalone/apps/local/server.ts +14 -0
  484. package/cloud-runtime/standalone/apps/local/src/graph/work-dispatcher.ts +1 -0
  485. package/cloud-runtime/standalone/apps/local/state/windowState.ts +20 -0
  486. package/cloud-runtime/standalone/apps/local/worker/index.js +23 -4
  487. package/lib/cli/runCli.js +20 -4
  488. package/package.json +1 -1
  489. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4ea9a658._.js +0 -3
  490. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6465e9c6._.js +0 -3
  491. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8ddbf4ca._.js +0 -3
  492. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5187dece._.js +0 -15
  493. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +0 -3
  494. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +0 -3
  495. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +0 -3
  496. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_620cb123._.js +0 -3
  497. package/cloud-runtime/standalone/apps/local/.next/static/chunks/114ea1bfd6907330.js +0 -1
  498. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2473c16c0c2f6b5f.css +0 -2
  499. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +0 -16
  500. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5709a6f7c5c182d6.js +0 -1
  501. package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +0 -1
  502. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6d8a7494a0cea7a0.css +0 -1
  503. package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa3029ae0b62f930.js +0 -1
  504. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +0 -16
  505. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c8c0c4b13e08bb14.js +0 -1
  506. package/cloud-runtime/standalone/apps/local/.next/static/chunks/de56d09bb0de7dd5.js +0 -16
  507. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e5fdfbbe9bae1f03.js +0 -1
  508. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f007705fe5db26f1.js +0 -16
  509. /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_buildManifest.js +0 -0
  510. /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_clientMiddlewareManifest.json +0 -0
  511. /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_ssgManifest.js +0 -0
@@ -22,7 +22,7 @@ Skip tickets with the \`active-session\` label — another agent is already work
22
22
  - Leave everything in a resumable state. Clean up worktrees when finished.
23
23
  - One ticket per session.`,$=(0,d.default)(async()=>{},{loadableGenerated:{modules:[668610]},ssr:!1});function _({children:a}){return(0,b.jsx)("label",{className:"block text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-2",children:a})}function aa({title:a,expanded:c,onToggle:d,children:e}){return(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden",children:[(0,b.jsxs)("button",{type:"button",onClick:d,className:"flex w-full items-center gap-2 px-4 py-3 text-left text-xs font-semibold text-[var(--muted-foreground)] uppercase tracking-widest hover:text-[var(--foreground)] transition-colors",children:[c?(0,b.jsx)(U.ChevronDown,{size:12}):(0,b.jsx)(V.ChevronRight,{size:12}),a]}),c&&(0,b.jsx)("div",{className:"border-t border-[var(--card-border)]",children:e})]})}function ab({projectId:a,onJobLoaded:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(!0),[k,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(Y),[p,q]=(0,c.useState)(Z),[r,s]=(0,c.useState)("*/30 * * * *"),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!0),B=(0,c.useRef)(!1),C=(0,c.useCallback)(async()=>{try{let b=new URLSearchParams;a&&b.set("projectId",a);let c=await fetch(`/api/linear/worker?${b}`);if(!c.ok)return;let e=await c.json();e.job?(f(e.job),o(e.job.prompt||Y),q(e.job.scriptPrompt||Z),s(e.job.cronExpr||e.job.cadence||"*/30 * * * *"),u(e.job.condition||""),w(e.job.teamId||""),d?.(e.job.id)):d?.(null)}catch{}finally{j(!1)}},[a,d]),D=(0,c.useCallback)(async()=>{if(a)try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=((await b.json()).teams??[]).map(a=>({id:a.id,name:a.name}));h(c)}catch{}},[a]);(0,c.useEffect)(()=>{B.current||(B.current=!0,C(),D())},[C,D]),(0,c.useEffect)(()=>{let a=setInterval(C,15e3);return()=>clearInterval(a)},[C]);let E=(0,c.useCallback)(async()=>{m(!0);try{let b={prompt:n,scriptPrompt:p,cadence:r,condition:t,teamId:v};a&&(b.projectId=a);let c=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(c.ok){let a=await c.json();f(a.job)}}catch{}finally{m(!1)}},[n,p,r,t,v,a]),F=(0,c.useCallback)(async()=>{if(!e)return void await E();m(!0);try{let b="active"===e.state?"paused":"active",c=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,state:b})});if(c.ok){let a=await c.json();f(a.job)}}catch{}finally{m(!1)}},[e,a,E]),[G,H]=(0,c.useState)(!1),I=(0,c.useCallback)(async()=>{if(e){H(!0);try{await fetch("/api/prompt-jobs/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobId:e.id})}),setTimeout(C,1e3)}catch{}finally{H(!1)}}},[e,C]);if(i)return(0,b.jsxs)("div",{className:"flex items-center gap-2 py-12 justify-center text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(l.RefreshCw,{size:14,className:"animate-spin"}),"Loading Worker..."]});let J=e?.state==="active";return(0,b.jsxs)("div",{className:"flex flex-col gap-4 h-full",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-4 text-xs text-[var(--muted-foreground)]",children:e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{children:["Next: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:function(a,b){if("paused"===b)return"Paused";if("stopped"===b)return"Stopped";if(null===a)return"Pending";let c=a-Date.now();return c<0?"Overdue":c<6e4?`in ${Math.round(c/1e3)}s`:c<36e5?`in ${Math.round(c/6e4)}m`:c<864e5?`in ${Math.round(c/36e5)}h`:`in ${Math.round(c/864e5)}d`}(e.nextRunAt,e.state)})]}),(0,b.jsxs)("span",{children:["Last: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:function(a){if(!a)return"Never";let b=Date.now()-a;return b<6e4?"Just now":b<36e5?`${Math.round(b/6e4)}m ago`:b<864e5?`${Math.round(b/36e5)}h ago`:`${Math.round(b/864e5)}d ago`}(e.lastRunAt)})]}),e.lastOutcome&&(0,b.jsxs)("span",{children:["Outcome:"," ",(0,b.jsx)("span",{className:"success"===e.lastOutcome?"text-emerald-400":"failed"===e.lastOutcome?"text-red-400":"text-[var(--foreground)]",children:e.lastOutcome})]})]})}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,b.jsxs)("button",{type:"button",disabled:G||k,onClick:I,className:"flex items-center gap-1.5 rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-1.5 text-xs font-medium text-blue-400 transition-colors hover:bg-blue-500/20 disabled:opacity-40",children:[G?(0,b.jsx)(l.RefreshCw,{size:12,className:"animate-spin"}):(0,b.jsx)(W.Play,{size:12}),"Run now"]}),(0,b.jsxs)("button",{type:"button",disabled:k,onClick:F,className:"relative flex items-center gap-2.5 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] px-3 py-1.5 text-xs font-medium text-[var(--foreground)] transition-colors hover:border-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{className:`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors ${J?"bg-emerald-500":"bg-[var(--card-border)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white transition-transform ${J?"translate-x-3.5":"translate-x-0.5"}`})}),J?"Enabled":"Disabled"]})]})]}),(0,b.jsxs)("div",{className:"flex flex-1 min-h-0 gap-6 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"flex flex-1 min-w-0 flex-col gap-4",children:[(0,b.jsx)(aa,{title:"How to pick a ticket",expanded:x,onToggle:()=>y(!x),children:(0,b.jsx)("div",{className:"min-h-[120px] overflow-y-auto resize-y",style:{height:320},children:(0,b.jsx)($,{content:n,onChange:a=>o(a),placeholder:"Describe how to pick which ticket to work on..."})})}),(0,b.jsx)(aa,{title:"How to work a ticket",expanded:z,onToggle:()=>A(!z),children:(0,b.jsx)("div",{className:"min-h-[300px] max-h-[50vh] overflow-y-auto",children:(0,b.jsx)($,{content:p,onChange:a=>q(a),placeholder:"Instructions injected into the agent session when working a ticket..."})})})]}),(0,b.jsxs)("div",{className:"w-[340px] shrink-0 space-y-6",children:[g.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)(_,{children:"Team"}),(0,b.jsx)(X.SimpleDropdown,{value:v||"",options:[{value:"",label:"Select a team"},...g.map(a=>({value:a.id,label:a.name}))],onChange:a=>w(a),ariaLabel:"Select team"}),(0,b.jsx)("p",{className:"mt-1.5 text-[10px] text-[var(--muted-foreground)]",children:"Agents in this team become default participants of the tracker chat."})]}),(0,b.jsx)(X.ScheduleConditionPicker,{value:{cadence:r,condition:t},onChange:a=>{s(a.cadence),u(a.condition)},scheduleLabel:"Schedule",conditionLabel:"Condition"})]})]}),(0,b.jsx)("div",{className:"flex shrink-0 justify-end pt-2",children:(0,b.jsx)("button",{type:"button",disabled:k,onClick:E,className:"rounded-lg bg-[var(--foreground)] px-5 py-2 text-sm font-medium text-[var(--background)] transition-opacity hover:opacity-90 disabled:opacity-40",children:k?"Saving...":"Save configuration"})})]})}var ac=a.i(44668),ad=a.i(999076),ae=a.i(349692);let af=(0,g.default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);function ag({status:a}){switch(a){case"success":return(0,b.jsx)(ac.CheckCircle2,{size:14,className:"text-emerald-400"});case"failed":return(0,b.jsx)(ad.XCircle,{size:14,className:"text-red-400"});case"running":return(0,b.jsx)(ae.Loader2,{size:14,className:"text-blue-400 animate-spin"});case"queued":return(0,b.jsx)(j.Clock,{size:14,className:"text-yellow-400"});case"cancelled":return(0,b.jsx)(af,{size:14,className:"text-[var(--muted-foreground)]"});default:return(0,b.jsx)(j.Clock,{size:14,className:"text-[var(--muted-foreground)]"})}}function ah(a){return a?new Date(a).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"—"}function ai({jobId:a}){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(!0),[h,i]=(0,c.useState)(null),j=(0,c.useRef)(!1),k=(0,c.useCallback)(async()=>{if(!a)return void g(!1);try{let b=await fetch(`/api/prompt-jobs/${a}/runs`);if(!b.ok)return;let c=await b.json();e(c.runs??[])}catch{}finally{g(!1)}},[a]);return((0,c.useEffect)(()=>{j.current||(j.current=!0,k())},[k]),(0,c.useEffect)(()=>{let a=setInterval(k,1e4);return()=>clearInterval(a)},[k]),a)?f?(0,b.jsxs)("div",{className:"flex items-center gap-2 py-12 justify-center text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(l.RefreshCw,{size:14,className:"animate-spin"}),"Loading run history..."]}):0===d.length?(0,b.jsx)("div",{className:"flex items-center justify-center py-16 text-sm text-[var(--muted-foreground)]",children:"No runs yet. The worker will log runs here once it starts executing."}):(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsxs)("div",{className:"grid grid-cols-[minmax(0,1fr)_100px_140px_140px_90px] gap-3 px-4 py-2 text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest border-b border-[var(--card-border)]",children:[(0,b.jsx)("span",{children:"Status"}),(0,b.jsx)("span",{children:"Duration"}),(0,b.jsx)("span",{children:"Started"}),(0,b.jsx)("span",{children:"Finished"}),(0,b.jsx)("span",{children:"Run ID"})]}),(0,b.jsx)("div",{className:"max-h-[60vh] overflow-y-auto",children:d.map(a=>{var c,d;return(0,b.jsxs)("div",{children:[(0,b.jsxs)("button",{type:"button",onClick:()=>i(h===a.id?null:a.id),className:"grid w-full grid-cols-[minmax(0,1fr)_100px_140px_140px_90px] gap-3 px-4 py-2.5 text-left text-sm transition-colors hover:bg-[var(--card-bg)] rounded-lg",children:[(0,b.jsxs)("span",{className:`flex items-center gap-2 font-medium ${function(a){switch(a){case"success":return"text-emerald-400";case"failed":return"text-red-400";case"running":return"text-blue-400";case"queued":return"text-yellow-400";default:return"text-[var(--muted-foreground)]"}}(a.status)}`,children:[(0,b.jsx)(ag,{status:a.status}),(c=a.status).charAt(0).toUpperCase()+c.slice(1)]}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:null===(d=a.durationMs)?"—":d<1e3?`${d}ms`:d<6e4?`${(d/1e3).toFixed(1)}s`:d<36e5?`${Math.round(d/6e4)}m ${Math.round(d%6e4/1e3)}s`:`${Math.round(d/36e5)}h ${Math.round(d%36e5/6e4)}m`}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:ah(a.startedAt)}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:ah(a.finishedAt)}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] font-mono text-xs truncate",children:a.id.slice(0,8)})]}),h===a.id&&(a.output||a.error)&&(0,b.jsxs)("div",{className:"mx-4 mb-2 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] overflow-hidden",children:[a.error&&(0,b.jsxs)("div",{className:"px-4 py-3 border-b border-[var(--card-border)]",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold text-red-400 uppercase tracking-widest mb-1",children:"Error"}),(0,b.jsx)("pre",{className:"text-xs text-red-300 whitespace-pre-wrap font-mono",children:a.error})]}),a.output&&(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1",children:"Output"}),(0,b.jsx)("pre",{className:"text-xs text-[var(--foreground)] whitespace-pre-wrap font-mono max-h-[300px] overflow-y-auto",children:a.output})]})]})]},a.id)})})]}):(0,b.jsx)("div",{className:"flex items-center justify-center py-16 text-sm text-[var(--muted-foreground)]",children:"No worker configured yet. Enable the worker to see run history."})}let aj=["#ef4444","#f97316","#eab308","#22c55e","#06b6d4","#3b82f6","#8b5cf6","#ec4899"];function ak({definitions:a,onCreate:d,onDelete:e}){let[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(aj[0]),[j,l]=(0,c.useState)(!1),m=async()=>{f.trim()&&!j&&(l(!0),await d(f.trim(),h),g(""),l(!1))};return(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Local Labels"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Define labels for local task tracking. These are stored locally and not synced to your tracker."}),a.length>0&&(0,b.jsx)("div",{className:"space-y-1",children:a.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-lg px-3 py-2 hover:bg-[var(--card-bg)]",children:[a.color&&(0,b.jsx)("span",{className:"h-3 w-3 shrink-0 rounded-full",style:{backgroundColor:a.color}}),(0,b.jsx)("span",{className:"min-w-0 flex-1 text-sm text-[var(--foreground)]",children:a.name}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-1 text-[var(--muted-foreground)] transition-colors hover:bg-red-500/10 hover:text-red-400",onClick:()=>void e(a.id),title:"Delete label",children:(0,b.jsx)(F.Trash2,{size:14})})]},a.id))}),(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-[var(--card-border)] p-2",children:[(0,b.jsx)("div",{className:"flex gap-1",children:aj.map(a=>(0,b.jsx)("button",{type:"button",className:`h-5 w-5 rounded-full transition-all ${h===a?"ring-2 ring-[var(--foreground)] ring-offset-1 ring-offset-[var(--background)]":""}`,style:{backgroundColor:a},onClick:()=>i(a)},a))}),(0,b.jsx)("input",{type:"text",className:"min-w-0 flex-1 bg-transparent px-2 py-1 text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Label name",value:f,onChange:a=>g(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),m())}}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded-md bg-[var(--primary)] px-2.5 py-1 text-xs font-medium text-[var(--primary-foreground)] transition-opacity hover:opacity-90 disabled:opacity-50",onClick:()=>void m(),disabled:!f.trim()||j,children:[(0,b.jsx)(k.Plus,{size:12}),"Add"]})]})]})}function al(a,b){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!1),j=(0,c.useCallback)(async()=>{if(b){i(!0);try{let c=await fetch(`/api/trackers/${encodeURIComponent(a)}/labels?projectId=${encodeURIComponent(b)}`),d=await c.json();e(Array.isArray(d.labels)?d.labels:[]),g(Array.isArray(d.definitions)?d.definitions:[])}catch{}i(!1)}},[a,b]);(0,c.useEffect)(()=>{j()},[j]);let k=(0,c.useCallback)(async(c,d)=>{if(b)try{(await fetch(`/api/trackers/${encodeURIComponent(a)}/labels`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:b,name:c,color:d})})).ok&&await j()}catch{}},[a,b,j]),l=(0,c.useCallback)(async c=>{if(b)try{(await fetch(`/api/trackers/${encodeURIComponent(a)}/labels/${encodeURIComponent(c)}?projectId=${encodeURIComponent(b)}`,{method:"DELETE"})).ok&&await j()}catch{}},[a,b,j]);return{labels:d,definitions:f,loading:h,refresh:j,createDefinition:k,deleteDefinition:l}}function am({trackerType:a,connected:d,user:e,clis:f,mcpConfigured:g,onConnect:h,onConnectWithKey:i,onDisconnect:j,onConfigureMcp:k,onClose:l,projectId:m}){let[n,o]=(0,c.useState)(d?"worker":"connection"),[p,r]=(0,c.useState)(null),{definitions:s,createDefinition:t,deleteDefinition:u}=al(a,m),v="jira"===a?"Jira Worker":"Linear Worker",w=[{id:"connection",label:"Connection",icon:(0,b.jsx)(R,{size:14})},{id:"worker",label:v,icon:(0,b.jsx)(Q.Bot,{size:14}),disabled:!d},{id:"run-log",label:"Run Log",icon:(0,b.jsx)(S,{size:14}),disabled:!d},{id:"labels",label:"Labels",icon:(0,b.jsx)(T.Tag,{size:14}),disabled:!d}];return(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50",children:(0,b.jsxs)("div",{className:"relative flex w-full max-w-6xl flex-col rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsx)("div",{className:"flex items-center gap-6",children:w.map(a=>{let c=n===a.id;return(0,b.jsxs)("button",{onClick:()=>!a.disabled&&o(a.id),disabled:a.disabled,className:`relative flex items-center gap-2 py-4 text-sm font-semibold transition-colors ${c?"text-[var(--foreground)]":a.disabled?"cursor-not-allowed text-[var(--muted-foreground)]/40":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[a.icon,a.label,c&&(0,b.jsx)("span",{className:"absolute bottom-0 left-0 right-0 h-[2px] rounded-full bg-[var(--foreground)]"})]},a.id)})}),(0,b.jsx)("button",{type:"button",className:"rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:l,children:(0,b.jsx)(q.X,{size:18})})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 max-h-[80vh] overflow-y-auto p-6",children:["connection"===n&&(0,b.jsx)(P.default,{trackerType:a,projectId:m??"",connected:d,onConnect:h,onConnectWithKey:i,onDisconnect:j,clis:f,mcpConfigured:g,onConfigureMcp:k}),"worker"===n&&d&&(0,b.jsx)(ab,{projectId:m,onJobLoaded:r}),"run-log"===n&&d&&(0,b.jsx)(ai,{jobId:p}),"labels"===n&&d&&(0,b.jsx)(ak,{definitions:s,onCreate:t,onDelete:u})]})]})})}function an(a){if("chat"===a.mode)switch(a.status){case"queued":return{label:"starting",tone:"queued"};case"running":return{label:"thinking",tone:"running"};case"success":return{label:"ready",tone:"ready"};case"failed":return{label:"error",tone:"failed"};case"cancelled":return{label:"stopped",tone:"cancelled"}}return{label:function(a){switch(a){case"queued":return"queued";case"running":return"running";case"success":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return a}}(a.status),tone:a.status}}function ao(a){let b=a.sessionTitle?.trim();return b||("scripted"===a.mode?"Scripted session":"Chat session")}let ap={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},aq={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-400",ready:"bg-sky-500/10 border-sky-500/20 text-sky-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"},ar={queued:"bg-amber-400",running:"bg-yellow-400",ready:"bg-sky-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"},as={queued:"text-amber-500",running:"text-yellow-500",ready:"text-sky-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"};var at=a.i(249603);function au({label:a,value:c,options:d,activeClasses:e,onChange:f,disabled:g=!1}){let h=c.trim().length>0;return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":a,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 disabled:cursor-not-allowed disabled:opacity-60 ${h?e:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:c,disabled:g,onChange:a=>f(a.target.value),children:d.map(c=>(0,b.jsx)("option",{value:c.value,children:c.label},`${a}-${c.value||"all"}`))}),(0,b.jsx)(U.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function av({status:a,options:c,onChange:d,disabled:e=!1,updating:f=!1}){return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":"Ticket status",className:"max-w-[160px] appearance-none rounded-md border border-[var(--card-border)] bg-[var(--card-bg)] px-2.5 py-1 pr-8 text-xs font-medium text-[var(--foreground)] outline-none transition-colors hover:border-[var(--muted-foreground)] disabled:cursor-not-allowed disabled:opacity-60",value:a,disabled:e||f,onChange:a=>d(a.target.value),children:c.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},`ticket-status-${a.value}`))}),f?(0,b.jsx)(l.RefreshCw,{size:12,className:"pointer-events-none absolute right-6 top-1/2 -translate-y-1/2 animate-spin text-[var(--muted-foreground)]"}):null,(0,b.jsx)(U.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"})]})}function aw({label:a,values:d,options:e,activeClasses:f,onChange:g,emptyLabel:h}){let[i,j]=(0,c.useState)(!1),k=(0,c.useRef)(null),l=e.filter(a=>a.value&&d.includes(a.value)),m=l.length>0,n=(()=>{if(0===l.length||l.length===e.length)return h??a;if(1===l.length)return l[0]?.label??h??a;let b=a.toLowerCase();return`${l.length} ${b}${b.endsWith("s")?"es":"s"}`})();(0,c.useEffect)(()=>{if(!i)return;let a=a=>{k.current&&!k.current.contains(a.target)&&j(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[i]);let o=(0,c.useCallback)(a=>{a?g(d.includes(a)?d.filter(b=>b!==a):[...d,a]):g([])},[g,d]);return(0,b.jsxs)("div",{className:"relative",ref:k,children:[(0,b.jsxs)("button",{type:"button","aria-label":a,"aria-haspopup":"listbox","aria-expanded":i,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${m?f:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>j(a=>!a),children:[(0,b.jsx)("span",{className:"max-w-[132px] truncate",children:n}),(0,b.jsx)(U.ChevronDown,{size:12,className:`shrink-0 transition-transform ${i?"rotate-180":""}`})]}),i?(0,b.jsxs)("div",{role:"listbox","aria-label":`${a} 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,b.jsxs)("button",{type:"button",role:"option","aria-selected":!m,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!m?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>g([]),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!m?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:m?null:(0,b.jsx)(D.Check,{size:10})}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:h??a})]}),l.length>0?(0,b.jsx)("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Selected"}):null,e.filter(a=>a.value).map(c=>{let e=d.includes(c.value);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${e?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>o(c.value),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:e?(0,b.jsx)(D.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c.label})]},`${a}-${c.value}`)})]}):null]})}var ax=a.i(379065),ay=a.i(737313);let az=(0,g.default)("ellipsis-vertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);var aA=a.i(451844);let aB=(0,g.default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]);var aC=a.i(197180),aD=a.i(313872),aE=a.i(628977),aF=a.i(609345),aG=a.i(140810);function aH({anchorRef:a,value:d,onChange:e,onClose:f,onSave:g}){let h=(0,c.useRef)(null),[i,j]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!a.current)return;let b=a.current.getBoundingClientRect();j({top:b.bottom+window.scrollY+6,left:b.left+window.scrollX+b.width/2})},[a]);let k=(0,aD.useEditor)({extensions:[aE.default,aF.default.configure({placeholder:"Add a note…",emptyEditorClass:"is-editor-empty before:content-[attr(data-placeholder)] before:text-[var(--muted-foreground)]/50 before:float-left before:pointer-events-none before:h-0"}),aG.Markdown.configure({html:!1,transformPastedText:!0})],immediatelyRender:!1,content:d,editorProps:{attributes:{class:"outline-none min-h-[80px] px-3 py-2 text-xs text-[var(--foreground)] prose prose-sm max-w-none"}},onUpdate:({editor:a})=>{e(a.storage.markdown?.getMarkdown()??d)}});return((0,c.useEffect)(()=>{!k||(k.storage.markdown?.getMarkdown()??"")===d||k.isFocused||k.commands.setContent(d)},[k,d]),(0,c.useEffect)(()=>{k&&setTimeout(()=>k.commands.focus("end"),0)},[k]),(0,c.useEffect)(()=>{function b(b){!h.current||h.current.contains(b.target)||a.current?.contains(b.target)||(g(k?k.storage.markdown?.getMarkdown()??d:d),f())}function c(a){"Escape"===a.key&&(g(k?k.storage.markdown?.getMarkdown()??d:d),f())}return document.addEventListener("mousedown",b),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",b),document.removeEventListener("keydown",c)}},[k,d,a,g,f]),i)?(0,aC.createPortal)((0,b.jsxs)("div",{ref:h,style:{position:"absolute",top:i.top,left:i.left,transform:"translateX(-50%)",zIndex:9999,width:288},onClick:a=>a.stopPropagation(),onKeyDown:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] shadow-xl",children:[(0,b.jsxs)("div",{className:"flex h-6 w-full items-center justify-end gap-0.5 rounded-t-lg bg-[var(--primary)]/40 px-1.5",children:[(0,b.jsx)("button",{type:"button",onMouseDown:a=>{a.preventDefault(),g(k?k.storage.markdown?.getMarkdown()??d:d),f()},className:"flex h-4 w-4 items-center justify-center rounded text-[var(--foreground)]/60 hover:text-emerald-400 transition-colors",title:"Save",children:(0,b.jsx)(D.Check,{size:11})}),(0,b.jsx)("button",{type:"button",onMouseDown:a=>{a.preventDefault(),f()},className:"flex h-4 w-4 items-center justify-center rounded text-[var(--foreground)]/60 hover:text-red-400 transition-colors",title:"Discard",children:(0,b.jsx)(q.X,{size:11})})]}),(0,b.jsx)(aD.EditorContent,{editor:k}),(0,b.jsx)("div",{className:"flex justify-end px-1.5 pb-1.5",children:(0,b.jsx)("button",{type:"button",onMouseDown:a=>{a.preventDefault(),g(""),f()},className:"flex h-4 w-4 items-center justify-center rounded text-[var(--foreground)]/40 hover:text-red-400 transition-colors",title:"Delete note",children:(0,b.jsx)(F.Trash2,{size:11})})})]}),(0,b.jsx)("style",{children:`
24
24
  .ProseMirror { outline: none !important; }
25
- `})]}),document.body):null}let aI=(0,g.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);function aJ({labels:a,selectedLabels:d,labelCounts:e,totalSelected:f,onToggle:g,onAdd:h}){let[i,j]=(0,c.useState)(""),l=(0,c.useMemo)(()=>new Set(d),[d]),m=null!=f&&f>0,n=(0,c.useMemo)(()=>{let b=i.trim().toLowerCase();return b?a.filter(a=>a.name.toLowerCase().includes(b)):a},[a,i]),o=(0,c.useCallback)(()=>{let b=i.trim();b&&(a.some(a=>a.name.toLowerCase()===b.toLowerCase())||h(b),g(b),j(""))},[i,a,h,g]);return(0,b.jsxs)("div",{className:"flex w-56 flex-col gap-1",children:[(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto",children:[n.map(a=>{let c=l.has(a.name),d=e?.get(a.name)??0,h=m&&d>0&&d<(f??0);return(0,b.jsxs)("button",{type:"button",className:`flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left text-xs transition-colors ${c?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>g(a.name),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${c||h?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:h?(0,b.jsx)(aI,{size:10}):c?(0,b.jsx)(D.Check,{size:10}):null}),a.color&&(0,b.jsx)("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:a.color}}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.name})]},a.name)}),0===n.length&&i.trim()&&(0,b.jsx)("div",{className:"px-3 py-2 text-xs text-[var(--muted-foreground)]",children:"No matching labels"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 border-t border-[var(--card-border)] pt-1",children:[(0,b.jsx)("input",{type:"text",className:"min-w-0 flex-1 bg-transparent px-2 py-1 text-xs outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Add label...",value:i,onChange:a=>j(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),o())}}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:opacity-40",onClick:o,disabled:!i.trim(),children:(0,b.jsx)(k.Plus,{size:12})})]})]})}var aK=a.i(552605),aL=a.i(316099);function aM({count:a,participants:d,onSend:e}){let[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(d[0]?.id??"");return(0,c.useMemo)(()=>d.find(a=>a.id===h)??d[0],[d,h]),(0,b.jsxs)("div",{className:"flex w-80 flex-col gap-3 p-1",children:[(0,b.jsx)("textarea",{className:"min-h-[80px] w-full resize-none rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-xs text-[var(--foreground)] outline-none placeholder:text-[var(--muted-foreground)] focus:border-[var(--muted-foreground)]",placeholder:"Enter prompt to send to all selected tickets...",value:f,onChange:a=>g(a.target.value),autoFocus:!0}),d.length>1&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"}),(0,b.jsx)("select",{className:"flex-1 appearance-none rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2 py-1 text-xs outline-none",value:h,onChange:a=>i(a.target.value),children:d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center justify-center gap-1.5 rounded-lg bg-blue-500 px-3 py-2 text-xs font-medium text-white transition-colors hover:bg-blue-600 disabled:opacity-50",disabled:!f.trim(),onClick:()=>{f.trim()&&e(f.trim(),h)},children:[(0,b.jsx)(W.Play,{size:12}),"Send to ",a," ticket",1!==a?"s":""]})]})}function aN({anchorRef:a,onClose:d,participants:e,labels:f,selectedLabels:g,statusOptions:h,onRecap:i,onPrompt:j,onEstimate:k,onToggleLabel:m,onAddLabel:n,onStatus:o}){let p,q,r,s=(0,c.useRef)(null),t=(0,c.useRef)(null),u=(0,c.useRef)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null);(0,c.useEffect)(()=>{let b=a.current;if(!b)return;let c=b.getBoundingClientRect(),d=Math.min(Math.max(8,c.right-160),window.innerWidth-160-8);A({top:c.bottom+4,left:d})},[a]),(0,c.useEffect)(()=>{let b=b=>{s.current?.contains(b.target)||t.current?.contains(b.target)||a.current?.contains(b.target)||d()},c=a=>{"Escape"===a.key&&(x?y(null):d())};return document.addEventListener("pointerdown",b),document.addEventListener("keydown",c),()=>{document.removeEventListener("pointerdown",b),document.removeEventListener("keydown",c)}},[d,a,x]);let D=(0,c.useCallback)(a=>{y(b=>b===a?null:a)},[]);(0,c.useEffect)(()=>{if(!x)return void C(null);let a="prompt"===x?u:"label"===x?v:w,b=a.current?.getBoundingClientRect();b&&C(b.top)},[x]);let E="flex w-full items-center gap-2 rounded-lg px-2.5 py-1.5 text-left text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]";return z?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{ref:s,className:"fixed z-[60] flex w-40 flex-col gap-0.5 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-2xl",style:{top:z.top,left:z.left},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("button",{type:"button",className:E,onClick:()=>{i(),d()},title:"Recap this ticket",children:[(0,b.jsx)(aK.FileText,{size:12}),"Recap"]}),(0,b.jsxs)("button",{ref:u,type:"button",className:`${E} ${"prompt"===x?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>D("prompt"),title:"Send prompt",children:[(0,b.jsx)(ay.MessageSquare,{size:12}),"Prompt"]}),(0,b.jsxs)("button",{type:"button",className:E,onClick:()=>{k(),d()},title:"Ask the LLM to size this ticket",children:[(0,b.jsx)(aL.Hash,{size:12}),"Estimate"]}),(0,b.jsxs)("button",{ref:v,type:"button",className:`${E} ${"label"===x?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>D("label"),title:"Label",children:[(0,b.jsx)(T.Tag,{size:12}),"Label"]}),(0,b.jsxs)("button",{ref:w,type:"button",className:`${E} ${"status"===x?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>D("status"),title:"Change status",children:[(0,b.jsx)(l.RefreshCw,{size:12}),"Status"]})]}),x&&(0,b.jsxs)("div",{ref:t,className:"fixed z-[60] rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-2 shadow-lg backdrop-blur-sm",style:(p="prompt"===x?340:200,r=(q=z.left+160+4)+p<=window.innerWidth-8?q:Math.max(8,z.left-p-4),{top:B??z.top,left:r}),onClick:a=>a.stopPropagation(),children:["prompt"===x&&(0,b.jsx)(aM,{count:1,participants:e,onSend:(a,b)=>{j(a,b),d()}}),"label"===x&&(0,b.jsx)(aJ,{labels:f,selectedLabels:g,onToggle:m,onAdd:n}),"status"===x&&(0,b.jsx)("div",{className:"flex max-h-48 w-44 flex-col overflow-y-auto",children:h.map(a=>(0,b.jsx)("button",{type:"button",className:"w-full rounded-lg px-3 py-1.5 text-left text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:()=>{o(a.value),d()},children:a.label},a.value))})]})]}):null}var aO=a.i(749741);function aP(a,b,c=20){let d=b?b.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${c}&backgroundColor=${d}`}function aQ({item:a,selected:d,pinned:e,onSelect:f,onTogglePin:g,activeAgents:h,participants:i,multiSelected:j,draggable:k=!1,treeConnector:l,projectSlug:m,stats:n,hideStatus:o,estimate:p,localLabels:q,labelDefinitions:r,allLabels:s,onToggleLabel:t,onAddLabel:u,rowActions:v,showGroup:w}){let[x,y]=(0,c.useState)(!1),z=(0,c.useRef)(null),A=(0,c.useRef)(null),[B,C]=(0,c.useState)(!1),[E,F]=(0,c.useState)(""),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(!1),K=(0,c.useRef)(null),L=(0,c.useRef)(null),[M,N]=(0,c.useState)(!1),O=(0,c.useRef)(null),[P,Q]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if(!M)return;let a=a=>{L.current&&!L.current.contains(a.target)&&K.current&&!K.current.contains(a.target)&&N(!1)},b=a=>{"Escape"===a.key&&N(!1)};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",b)}},[M]);let S=(0,c.useCallback)(async()=>{if(m&&!G)try{let b=await fetch(`/api/tracker/notes?projectSlug=${encodeURIComponent(m)}&id=${encodeURIComponent(a.identifier)}&type=issue`),c=(await b.json()).content??"";F(c),J(""!==c.trim()),H(!0)}catch{H(!0)}},[m,a.identifier,G]),U=(0,c.useCallback)(async b=>{if(m){J(""!==b.trim());try{await fetch("/api/tracker/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectSlug:m,id:a.identifier,type:"issue",content:b})})}catch{}}},[m,a.identifier]),V=(0,c.useCallback)(async a=>{(a.stopPropagation(),B)?C(!1):(await S(),C(!0))},[B,S]);(0,c.useEffect)(()=>()=>{z.current&&window.clearTimeout(z.current)},[]);let X=(0,c.useCallback)(async b=>{if(b.stopPropagation(),a.url)try{await navigator.clipboard.writeText(a.url),y(!0),z.current&&window.clearTimeout(z.current),z.current=window.setTimeout(()=>{y(!1)},1500)}catch(a){console.error("Failed to copy tracker item URL:",a),y(!1)}},[a.url]),Y=(0,c.useCallback)(b=>{b.stopPropagation(),a.url&&window.open(a.url,"_blank")},[a.url]),{attributes:Z,listeners:$,setNodeRef:_,transform:aa,isDragging:ab}=(0,aO.useDraggable)({id:a.id,disabled:!k}),{setNodeRef:ac,isOver:ad}=(0,aO.useDroppable)({id:a.id,disabled:!k}),ae=(0,c.useCallback)(a=>{_(a),ac(a)},[_,ac]),af=ap[a.status]??a.status.slice(0,6);return(0,b.jsxs)("div",{ref:k?ae:void 0,style:ab?{opacity:.3}:void 0,...k?Z:{},...k?$:{},className:`group ${l?"pl-7":""} relative flex cursor-pointer items-center gap-3 px-4 py-2.5 text-sm transition-colors ${d?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"} ${j?"ring-1 ring-[var(--primary)]/40 bg-[var(--primary)]/5":""} ${ad&&!ab?"bg-[var(--primary)]/10 border-l-2 border-l-[var(--primary)]":""}`,onClick:a=>f(a),role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),f())},children:[d&&!ad&&(0,b.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),k&&(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-all ${j?"border-[var(--primary)] bg-[var(--primary)] text-[var(--primary-foreground)]":"border-[var(--muted-foreground)]/30 opacity-0 group-hover:opacity-100"}`,onClick:a=>{a.stopPropagation(),a.preventDefault(),f(new MouseEvent("click",{metaKey:!0,ctrlKey:!0}))},onPointerDown:a=>a.stopPropagation(),children:j&&(0,b.jsx)(D.Check,{size:10})}),l&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-none text-[var(--muted-foreground)]/40 select-none",children:"last"===l?"└──":"├──"}),(0,b.jsx)("span",{className:`shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)] ${l?"":"w-15"}`,children:a.identifier}),(0,b.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${d?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:a.title}),w&&a.group&&(0,b.jsx)("span",{className:"shrink-0 rounded-full border border-[var(--card-border)] px-1.5 py-0.5 text-[10px] text-[var(--muted-foreground)]",title:a.group.name,children:(0,b.jsx)("span",{className:"block max-w-[140px] truncate",children:a.group.name})}),null!=p&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-semibold text-[var(--muted-foreground)]",children:p}),q&&q.length>0&&(0,b.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[q.slice(0,3).map(a=>{let c=r?.find(b=>b.name===a);return(0,b.jsxs)("span",{className:"flex items-center gap-1 rounded-full border border-[var(--card-border)] px-1.5 py-0.5 text-[10px] text-[var(--muted-foreground)]",children:[c?.color&&(0,b.jsx)("span",{className:"h-1.5 w-1.5 rounded-full",style:{backgroundColor:c.color}}),(0,b.jsx)("span",{className:"max-w-[60px] truncate",children:a})]},a)}),q.length>3&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:["+",q.length-3]})]}),!o&&(0,b.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:af}),n&&n.sessions>0&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[10px] tabular-nums text-[var(--muted-foreground)]/50",title:`${n.sessions} session${1!==n.sessions?"s":""}, ${n.messages} message${1!==n.messages?"s":""}`,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(W.Play,{size:8,className:"fill-current"}),n.sessions]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(ay.MessageSquare,{size:8}),n.messages]})]})]}),o&&n&&n.sessions>0&&(0,b.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-[10px] tabular-nums text-[var(--muted-foreground)]/50",title:`${n.sessions} session${1!==n.sessions?"s":""}, ${n.messages} message${1!==n.messages?"s":""}`,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(W.Play,{size:8,className:"fill-current"}),n.sessions]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(ay.MessageSquare,{size:8}),n.messages]})]}),h&&h.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:h.slice(0,3).map(a=>{let c=i?.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name??a.agentName,children:[(0,b.jsx)("img",{src:aP(a.agentId,c?.color,16),alt:c?.name??a.agentName,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[t&&s&&(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("button",{ref:K,type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${q&&q.length>0?"text-blue-400 opacity-100":`text-[var(--muted-foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:a=>{a.stopPropagation(),N(a=>!a)},title:q&&q.length>0?"Edit labels":"Add labels","aria-label":q&&q.length>0?"Edit labels":"Add labels",children:(0,b.jsx)(T.Tag,{size:10,className:q&&q.length>0?"fill-current":""})}),M&&(0,b.jsx)("div",{ref:L,className:"absolute right-0 top-full z-30 mt-1 rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] p-2 shadow-xl",onClick:a=>a.stopPropagation(),children:(0,b.jsx)(aJ,{labels:s,selectedLabels:q??[],onToggle:t,onAdd:u??(()=>{})})})]}),m&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{ref:A,type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${I?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:V,title:I?"Edit note":"Add note","aria-label":I?"Edit note":"Add note",children:(0,b.jsx)(aB,{size:10,className:I?"fill-current":""})}),B&&(0,b.jsx)(aH,{anchorRef:A,value:E,onChange:F,onClose:()=>C(!1),onSave:U})]}),g&&(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${e?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:a=>{a.stopPropagation(),g()},title:e?"Unpin ticket":"Pin to top","aria-label":e?"Unpin ticket":"Pin to top",children:(0,b.jsx)(aA.Pin,{size:10,className:e?"fill-current":""})}),(0,b.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)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:a=>{X(a)},title:x?"Copied ticket URL":"Copy ticket URL","aria-label":x?"Copied ticket URL":"Copy ticket URL",disabled:!a.url,children:x?(0,b.jsx)(D.Check,{size:10,className:"text-emerald-400"}):(0,b.jsx)(R,{size:10})}),(0,b.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)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:Y,title:a.url?"Open this ticket in a new tab":"This ticket does not have an external URL","aria-label":a.url?"Open this ticket in a new tab":"This ticket does not have an external URL",disabled:!a.url,children:(0,b.jsx)(ax.ExternalLink,{size:10})}),v&&(0,b.jsx)("button",{ref:O,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)] ${P||d?"opacity-100":"opacity-0 group-hover:opacity-100"}`,onClick:a=>{a.stopPropagation(),Q(a=>!a)},title:"More actions","aria-label":"More actions",children:(0,b.jsx)(az,{size:10})}),v&&P&&(0,b.jsx)(aN,{anchorRef:O,onClose:()=>Q(!1),participants:i??[],labels:s??[],selectedLabels:q??[],statusOptions:v.statusOptions,onRecap:v.onRecap,onPrompt:v.onPrompt,onEstimate:v.onEstimate,onToggleLabel:a=>t?.(a),onAddLabel:a=>u?.(a),onStatus:v.onStatus})]})]})}function aR({issueId:a,trackerType:d,projectId:e}){let[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(null),k=(0,c.useCallback)(async()=>{try{let b=e?`?projectId=${encodeURIComponent(e)}`:"",c=await fetch(`/api/trackers/${encodeURIComponent(d)}/items/${encodeURIComponent(a)}/recap${b}`);if(!c.ok)return null;let f=await c.json();return g(f),f}catch{return null}},[a,d,e]),m=(0,c.useCallback)(a=>{j.current&&(clearTimeout(j.current),j.current=null),(a?.status==="queued"||a?.status==="running")&&(j.current=setTimeout(async()=>{m(await k())},3e3))},[k]);(0,c.useEffect)(()=>{g(null),(async()=>{m(await k())})();let b=b=>{let c=b.detail;c?.trackerType===d&&c?.issueId===a&&(async()=>{m(await k())})()};return window.addEventListener("tracker:recap-triggered",b),()=>{j.current&&clearTimeout(j.current),window.removeEventListener("tracker:recap-triggered",b)}},[a,d,k,m]);let n=(0,c.useCallback)(async()=>{i(!0);try{let b=e?`?projectId=${encodeURIComponent(e)}`:"";await fetch(`/api/trackers/${encodeURIComponent(d)}/items/${encodeURIComponent(a)}/recap${b}`,{method:"POST"});let c=await k();m(c)}finally{i(!1)}},[a,d,e,k,m]),o=f?.status==="queued"||f?.status==="running"||h;return(0,b.jsxs)("section",{className:"border-b border-[var(--card-border)] px-6 py-4",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,b.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Recap"}),(0,b.jsxs)("div",{className:"flex items-center gap-3 text-[11px] text-[var(--muted-foreground)]",children:[o?(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(ae.Loader2,{size:12,className:"animate-spin"}),"Updating…"]}):(0,b.jsxs)("span",{children:["Updated ",function(a){if(!a)return"never";let b=Math.round((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.round(b/60);if(c<24)return`${c}h ago`;let d=Math.round(c/24);return`${d}d ago`}(f?.generatedAt??null)]}),(0,b.jsxs)("button",{type:"button",onClick:n,disabled:o,className:"flex items-center gap-1 rounded border border-[var(--card-border)] px-2 py-1 text-[11px] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:opacity-50",children:[(0,b.jsx)(l.RefreshCw,{size:10}),"Recap"]})]})]}),(0,b.jsxs)("div",{className:"text-sm text-[var(--foreground)]",children:[f?.content?(0,b.jsx)(C.Markdown,{content:f.content,isUser:!1}):(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No recap yet. Click Recap to create one."}),f?.error?(0,b.jsxs)("p",{className:"mt-2 text-xs text-red-400",children:["Last run failed: ",f.error]}):null]})]})}var aS=a.i(549429);function aT({runs:a,onSelect:c}){return 0===a.length?(0,b.jsx)("div",{className:"px-4 py-6 text-center text-xs text-[var(--muted-foreground)]",children:"No sessions yet. Start one below."}):(0,b.jsx)("div",{className:"flex flex-col",children:a.map(a=>{let d=an(a);return(0,b.jsxs)("button",{type:"button",onClick:()=>c(a.id),className:"flex w-full items-start justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3 text-left transition-colors hover:bg-[var(--overlay-panel-soft)]",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:ao(a)}),(0,b.jsxs)("p",{className:"mt-1 flex items-center gap-2 text-[11px] text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:a.agentName}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)(j.Clock,{size:10}),(0,b.jsx)("span",{children:new Date(a.updatedAt).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsxs)("div",{className:`flex items-center gap-1.5 rounded-md border px-2 py-0.5 ${aq[d.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ar[d.tone]}`}),(0,b.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wider",children:d.label})]}),(0,b.jsx)(aS.ArrowRight,{className:"mt-0.5 h-4 w-4 text-[var(--muted-foreground)]"})]})]},a.id)})})}function aU({targetType:a,targetId:d,projectSlug:e}){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!1),[j,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(null),[r,s]=(0,c.useState)(!1),t=(0,c.useCallback)(async()=>{try{let b=new URLSearchParams({targetType:a,targetId:d}),c=await fetch(`/api/github/prs/for-target?${b.toString()}`);if(c.ok){let a=await c.json();g(a.prs)}else g([])}catch{g([])}finally{i(!0)}},[a,d]);(0,c.useEffect)(()=>{i(!1),l(!1),n(""),p(null),t()},[t]);let u=(0,c.useCallback)(a=>{let b=`/projects/${encodeURIComponent(e)}/prs?pr=${encodeURIComponent(a.id)}`;window.location.href=b},[e]),v=(0,c.useCallback)(async b=>{if(b.preventDefault(),m.trim()&&!r){s(!0),p(null);try{let b=await fetch("/api/github/prs/link",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:m.trim(),targetType:a,targetId:d})}),c=await b.json().catch(()=>({}));if(!b.ok)return void p(c.message||c.error||`HTTP ${b.status}`);n(""),l(!1),await t()}catch(a){p(a instanceof Error?a.message:String(a))}finally{s(!1)}}},[m,r,a,d,t]),w=(0,c.useCallback)(async(b,c)=>{if(c.stopPropagation(),window.confirm(`Unlink ${b.id} from this issue?`))try{if(!(await fetch("/api/github/prs/link",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({prId:b.id,targetType:a,targetId:d})})).ok)return;await t()}catch{}},[a,d,t]);return h&&(0!==f.length||j)?(0,b.jsxs)("section",{className:"border-b border-[var(--card-border)] px-6 py-4",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,b.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:["Pull Requests (",f.length,")"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>l(a=>!a),className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(k.Plus,{size:12}),"Link PR"]})]}),j&&(0,b.jsxs)("form",{onSubmit:v,className:"mb-3 flex flex-col gap-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"url",value:m,onChange:a=>n(a.target.value),placeholder:"https://github.com/owner/repo/pull/123",className:"flex-1 rounded border border-[var(--card-border)] bg-transparent px-2 py-1 text-xs text-[var(--foreground)] outline-none focus:border-blue-500",autoFocus:!0}),(0,b.jsx)("button",{type:"submit",disabled:r||!m.trim(),className:"rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600 disabled:opacity-50",children:r?"Linking…":"Link"}),(0,b.jsx)("button",{type:"button",onClick:()=>{l(!1),p(null),n("")},className:"rounded-md border border-[var(--card-border)] px-2 py-1 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Cancel"})]}),o&&(0,b.jsx)("div",{className:"text-xs text-red-400",children:o})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:f.map(a=>{var c,d;let e="success"===(c=a.ciStatus)?{symbol:"✓",color:"text-green-500"}:"failure"===c?{symbol:"✗",color:"text-red-500"}:"pending"===c?{symbol:"●",color:"text-amber-500"}:null,f="approved"===(d=a.reviewDecision)?{label:"approved",cls:"bg-green-500/15 text-green-400 border-green-500/30"}:"changes_requested"===d?{label:"changes requested",cls:"bg-amber-500/15 text-amber-400 border-amber-500/30"}:"review_required"===d?{label:"review required",cls:"bg-neutral-500/15 text-neutral-400 border-neutral-500/30"}:null;return(0,b.jsx)("li",{children:(0,b.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>u(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),u(a))},className:"group flex cursor-pointer items-center gap-2 rounded-md border border-transparent px-2 py-1.5 text-sm hover:border-[var(--card-border)] hover:bg-[var(--card-bg)]",children:[(0,b.jsx)("span",{className:`shrink-0 rounded border px-1.5 py-0.5 text-[10px] uppercase tracking-wide ${"merged"===a.state?"bg-purple-500/15 text-purple-400 border-purple-500/30":"closed"===a.state?"bg-red-500/15 text-red-400 border-red-500/30":a.draft?"bg-neutral-500/15 text-neutral-400 border-neutral-500/30":"bg-green-500/15 text-green-400 border-green-500/30"}`,children:"merged"===a.state?"Merged":"closed"===a.state?"Closed":a.draft?"Draft":"Open"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-xs text-[var(--muted-foreground)]",children:a.id}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--foreground)]",children:a.title}),e&&(0,b.jsx)("span",{className:`shrink-0 text-xs ${e.color}`,title:`CI: ${a.ciStatus}`,children:e.symbol}),f&&(0,b.jsx)("span",{className:`shrink-0 rounded border px-1.5 py-0.5 text-[10px] ${f.cls}`,children:f.label}),(0,b.jsx)("button",{type:"button",onClick:b=>w(a,b),className:"shrink-0 rounded p-0.5 text-[var(--muted-foreground)] opacity-0 transition-opacity hover:bg-red-500/10 hover:text-red-400 group-hover:opacity-100",title:"Unlink","aria-label":"Unlink PR",children:(0,b.jsx)(q.X,{size:12})})]})},a.id)})})]}):null}function aV(a,b){return a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||b}let aW=(0,d.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function aX({item:a,trackerType:d,runs:e,participants:f,projectId:g,projectSlug:h,itemStatusOptions:i,itemStatusUpdating:j,onItemStatusChange:k,activeSessionScriptLabel:l,onOpenSessionScripts:m,onStartScriptedSession:n,createRun:o,updateRun:p,onRunCreated:q,onSelectRun:r}){let s=f[0],{metadata:t}=function(a,b,d){let[e,f]=(0,c.useState)({labels:[],estimate:null}),[g,h]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if(!b||!d)return void f({labels:[],estimate:null});let c=!1;return h(!0),fetch(`/api/trackers/${encodeURIComponent(a)}/metadata?projectId=${encodeURIComponent(b)}&issueId=${encodeURIComponent(d)}`).then(a=>a.json()).then(a=>{c||f({labels:Array.isArray(a.labels)?a.labels:[],estimate:"number"==typeof a.estimate?a.estimate:null})}).catch(()=>{}).finally(()=>{c||h(!1)}),()=>{c=!0}},[a,b,d]);let i=(0,c.useCallback)(async c=>{if(b&&d)try{let g=await fetch(`/api/trackers/${encodeURIComponent(a)}/metadata?projectId=${encodeURIComponent(b)}&issueId=${encodeURIComponent(d)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),h=await g.json();f({labels:Array.isArray(h.labels)?h.labels:e.labels,estimate:"number"==typeof h.estimate?h.estimate:null})}catch{}},[a,b,d,e.labels]);return{metadata:e,loading:g,update:i}}(d,g,a.id),u=(0,c.useRef)(null);u.current||(u.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:v,setMessages:w,chatRuns:x}=(0,A.useGroupChat)(u.current),{processes:y}=(0,B.useProcessPolling)({workspaceId:u.current},{messages:v,setMessages:w}),z=(0,c.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),C=x.some(a=>z.has(a.status))||y.some(a=>"spawning"===a.state||"running"===a.state)?x.some(a=>"queued"===a.status)?"queued":"working":"ready",D=(0,c.useRef)(!1),E=(0,c.useCallback)(async(b,c,e,i,j,k,l)=>{if(D.current)return;D.current=!0;let m=(j?f.find(a=>a.id===j):null)??s;if(!m){D.current=!1;return}try{var n,r,t,u;let c,e,f,i,j,s,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,{run:L,recapContent:M}=await o({projectId:g??null,projectSlug:h??null,issueId:a.id,issueIdentifier:a.identifier,issueTitle:a.title,issueStatus:a.status,issueAssignee:a.assignee?.name??null,agentId:m.id,agentName:m.name,mode:"chat"}),{promptPrefix:N}=(f=(t=n={issue:{identifier:a.identifier,title:a.title,status:a.status,assignee:a.assignee?.name??null},project:h?{slug:h}:null,runtime:{recapContent:M}}).issue.identifier.trim()||"TICKET-ID",i=t.issue.title.trim()||"Untitled ticket",j=String(t.issue.status??"").trim()||"Unknown",s=String(t.issue.assignee??"").trim()||"Unassigned",v=function(a){let b=String(a?.slug??"").trim();if(b)return aV(b,"project");let c=String(a?.name??"").trim();return c?aV(c,"project"):"project"}(t.project),w=String(t.project?.name??"").trim()||v,x=String(t.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${v}`,y=String(t.runtime?.issueKnowledgePath??"").trim()||`${x}/issues/${f}/`,z=String(t.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${aV(f,"ticket")}`,B=(A={issue:{identifier:f,title:i,status:j,assignee:s},project:{name:w,slug:v,label:(u=t.project,c=String(u?.name??"").trim(),e=String(u?.slug??"").trim(),c&&e?`${c} (${e})`:c||e||"current project"),repos:t.project?.repos?[...t.project.repos]:[]},runtime:{knowledgeBaseRoot:x,issueKnowledgePath:y,isolatedWorktreePath:z}}).issue.identifier,C=A.issue.title,D=A.issue.status,E=A.issue.assignee,F=A.runtime.knowledgeBaseRoot,G=A.runtime.issueKnowledgePath,H=A.runtime.isolatedWorktreePath,I="",(J=n.runtime?.recapContent?.trim())&&(I=`TICKET RECAP
25
+ `})]}),document.body):null}let aI=(0,g.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);function aJ({labels:a,selectedLabels:d,labelCounts:e,totalSelected:f,onToggle:g,onAdd:h}){let[i,j]=(0,c.useState)(""),l=(0,c.useMemo)(()=>new Set(d),[d]),m=null!=f&&f>0,n=(0,c.useMemo)(()=>{let b=i.trim().toLowerCase();return b?a.filter(a=>a.name.toLowerCase().includes(b)):a},[a,i]),o=(0,c.useCallback)(()=>{let b=i.trim();b&&(a.some(a=>a.name.toLowerCase()===b.toLowerCase())||h(b),g(b),j(""))},[i,a,h,g]);return(0,b.jsxs)("div",{className:"flex w-56 flex-col gap-1",children:[(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto",children:[n.map(a=>{let c=l.has(a.name),d=e?.get(a.name)??0,h=m&&d>0&&d<(f??0);return(0,b.jsxs)("button",{type:"button",className:`flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left text-xs transition-colors ${c?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>g(a.name),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${c||h?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:h?(0,b.jsx)(aI,{size:10}):c?(0,b.jsx)(D.Check,{size:10}):null}),a.color&&(0,b.jsx)("span",{className:"h-2.5 w-2.5 shrink-0 rounded-full",style:{backgroundColor:a.color}}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.name})]},a.name)}),0===n.length&&i.trim()&&(0,b.jsx)("div",{className:"px-3 py-2 text-xs text-[var(--muted-foreground)]",children:"No matching labels"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 border-t border-[var(--card-border)] pt-1",children:[(0,b.jsx)("input",{type:"text",className:"min-w-0 flex-1 bg-transparent px-2 py-1 text-xs outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Add label...",value:i,onChange:a=>j(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),o())}}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:opacity-40",onClick:o,disabled:!i.trim(),children:(0,b.jsx)(k.Plus,{size:12})})]})]})}var aK=a.i(552605),aL=a.i(316099);function aM({count:a,participants:d,onSend:e}){let[f,g]=(0,c.useState)(""),[h,i]=(0,c.useState)(d[0]?.id??"");return(0,c.useMemo)(()=>d.find(a=>a.id===h)??d[0],[d,h]),(0,b.jsxs)("div",{className:"flex w-80 flex-col gap-3 p-1",children:[(0,b.jsx)("textarea",{className:"min-h-[80px] w-full resize-none rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-xs text-[var(--foreground)] outline-none placeholder:text-[var(--muted-foreground)] focus:border-[var(--muted-foreground)]",placeholder:"Enter prompt to send to all selected tickets...",value:f,onChange:a=>g(a.target.value),autoFocus:!0}),d.length>1&&(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"}),(0,b.jsx)("select",{className:"flex-1 appearance-none rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2 py-1 text-xs outline-none",value:h,onChange:a=>i(a.target.value),children:d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center justify-center gap-1.5 rounded-lg bg-blue-500 px-3 py-2 text-xs font-medium text-white transition-colors hover:bg-blue-600 disabled:opacity-50",disabled:!f.trim(),onClick:()=>{f.trim()&&e(f.trim(),h)},children:[(0,b.jsx)(W.Play,{size:12}),"Send to ",a," ticket",1!==a?"s":""]})]})}function aN({anchorRef:a,onClose:d,participants:e,labels:f,selectedLabels:g,statusOptions:h,onRecap:i,onPrompt:j,onEstimate:k,onToggleLabel:m,onAddLabel:n,onStatus:o}){let p,q,r,s=(0,c.useRef)(null),t=(0,c.useRef)(null),u=(0,c.useRef)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)(null);(0,c.useEffect)(()=>{let b=a.current;if(!b)return;let c=b.getBoundingClientRect(),d=Math.min(Math.max(8,c.right-160),window.innerWidth-160-8);A({top:c.bottom+4,left:d})},[a]),(0,c.useEffect)(()=>{let b=b=>{s.current?.contains(b.target)||t.current?.contains(b.target)||a.current?.contains(b.target)||d()},c=a=>{"Escape"===a.key&&(x?y(null):d())};return document.addEventListener("pointerdown",b),document.addEventListener("keydown",c),()=>{document.removeEventListener("pointerdown",b),document.removeEventListener("keydown",c)}},[d,a,x]);let D=(0,c.useCallback)(a=>{y(b=>b===a?null:a)},[]);(0,c.useEffect)(()=>{if(!x)return void C(null);let a="prompt"===x?u:"label"===x?v:w,b=a.current?.getBoundingClientRect();b&&C(b.top)},[x]);let E="flex w-full items-center gap-2 rounded-lg px-2.5 py-1.5 text-left text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]";return z?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{ref:s,className:"fixed z-[60] flex w-40 flex-col gap-0.5 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-2xl",style:{top:z.top,left:z.left},onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("button",{type:"button",className:E,onClick:()=>{i(),d()},title:"Recap this ticket",children:[(0,b.jsx)(aK.FileText,{size:12}),"Recap"]}),(0,b.jsxs)("button",{ref:u,type:"button",className:`${E} ${"prompt"===x?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>D("prompt"),title:"Send prompt",children:[(0,b.jsx)(ay.MessageSquare,{size:12}),"Prompt"]}),(0,b.jsxs)("button",{type:"button",className:E,onClick:()=>{k(),d()},title:"Ask the LLM to size this ticket",children:[(0,b.jsx)(aL.Hash,{size:12}),"Estimate"]}),(0,b.jsxs)("button",{ref:v,type:"button",className:`${E} ${"label"===x?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>D("label"),title:"Label",children:[(0,b.jsx)(T.Tag,{size:12}),"Label"]}),(0,b.jsxs)("button",{ref:w,type:"button",className:`${E} ${"status"===x?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>D("status"),title:"Change status",children:[(0,b.jsx)(l.RefreshCw,{size:12}),"Status"]})]}),x&&(0,b.jsxs)("div",{ref:t,className:"fixed z-[60] rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-2 shadow-lg backdrop-blur-sm",style:(p="prompt"===x?340:200,r=(q=z.left+160+4)+p<=window.innerWidth-8?q:Math.max(8,z.left-p-4),{top:B??z.top,left:r}),onClick:a=>a.stopPropagation(),children:["prompt"===x&&(0,b.jsx)(aM,{count:1,participants:e,onSend:(a,b)=>{j(a,b),d()}}),"label"===x&&(0,b.jsx)(aJ,{labels:f,selectedLabels:g,onToggle:m,onAdd:n}),"status"===x&&(0,b.jsx)("div",{className:"flex max-h-48 w-44 flex-col overflow-y-auto",children:h.map(a=>(0,b.jsx)("button",{type:"button",className:"w-full rounded-lg px-3 py-1.5 text-left text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:()=>{o(a.value),d()},children:a.label},a.value))})]})]}):null}var aO=a.i(749741);function aP(a,b,c=20){let d=b?b.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${c}&backgroundColor=${d}`}function aQ({item:a,selected:d,pinned:e,onSelect:f,onTogglePin:g,activeAgents:h,participants:i,multiSelected:j,draggable:k=!1,treeConnector:l,projectSlug:m,stats:n,hideStatus:o,estimate:p,localLabels:q,labelDefinitions:r,allLabels:s,onToggleLabel:t,onAddLabel:u,rowActions:v,showGroup:w}){let[x,y]=(0,c.useState)(!1),z=(0,c.useRef)(null),A=(0,c.useRef)(null),[B,C]=(0,c.useState)(!1),[E,F]=(0,c.useState)(""),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(!1),K=(0,c.useRef)(null),L=(0,c.useRef)(null),[M,N]=(0,c.useState)(!1),O=(0,c.useRef)(null),[P,Q]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if(!M)return;let a=a=>{L.current&&!L.current.contains(a.target)&&K.current&&!K.current.contains(a.target)&&N(!1)},b=a=>{"Escape"===a.key&&N(!1)};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",b)}},[M]);let S=(0,c.useCallback)(async()=>{if(m&&!G)try{let b=await fetch(`/api/tracker/notes?projectSlug=${encodeURIComponent(m)}&id=${encodeURIComponent(a.identifier)}&type=issue`),c=(await b.json()).content??"";F(c),J(""!==c.trim()),H(!0)}catch{H(!0)}},[m,a.identifier,G]),U=(0,c.useCallback)(async b=>{if(m){J(""!==b.trim());try{await fetch("/api/tracker/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectSlug:m,id:a.identifier,type:"issue",content:b})})}catch{}}},[m,a.identifier]),V=(0,c.useCallback)(async a=>{(a.stopPropagation(),B)?C(!1):(await S(),C(!0))},[B,S]);(0,c.useEffect)(()=>()=>{z.current&&window.clearTimeout(z.current)},[]);let X=(0,c.useCallback)(async b=>{if(b.stopPropagation(),a.url)try{await navigator.clipboard.writeText(a.url),y(!0),z.current&&window.clearTimeout(z.current),z.current=window.setTimeout(()=>{y(!1)},1500)}catch(a){console.error("Failed to copy tracker item URL:",a),y(!1)}},[a.url]),Y=(0,c.useCallback)(b=>{b.stopPropagation(),a.url&&window.open(a.url,"_blank")},[a.url]),{attributes:Z,listeners:$,setNodeRef:_,transform:aa,isDragging:ab}=(0,aO.useDraggable)({id:a.id,disabled:!k}),{setNodeRef:ac,isOver:ad}=(0,aO.useDroppable)({id:a.id,disabled:!k}),ae=(0,c.useCallback)(a=>{_(a),ac(a)},[_,ac]),af=ap[a.status]??a.status.slice(0,6);return(0,b.jsxs)("div",{ref:k?ae:void 0,style:ab?{opacity:.3}:void 0,...k?Z:{},...k?$:{},className:`group ${l?"pl-7":""} relative flex cursor-pointer items-center gap-3 px-4 py-2.5 text-sm transition-colors ${d?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"} ${j?"ring-1 ring-[var(--primary)]/40 bg-[var(--primary)]/5":""} ${ad&&!ab?"bg-[var(--primary)]/10 border-l-2 border-l-[var(--primary)]":""}`,onClick:a=>f(a),role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),f())},children:[d&&!ad&&(0,b.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),k&&(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-all ${j?"border-[var(--primary)] bg-[var(--primary)] text-[var(--primary-foreground)]":"border-[var(--muted-foreground)]/30 opacity-0 group-hover:opacity-100"}`,onClick:a=>{a.stopPropagation(),a.preventDefault(),f(new MouseEvent("click",{metaKey:!0,ctrlKey:!0}))},onPointerDown:a=>a.stopPropagation(),children:j&&(0,b.jsx)(D.Check,{size:10})}),l&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-none text-[var(--muted-foreground)]/40 select-none",children:"last"===l?"└──":"├──"}),(0,b.jsx)("span",{className:`shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)] ${l?"":"w-15"}`,children:a.identifier}),(0,b.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${d?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:a.title}),w&&a.group&&(0,b.jsx)("span",{className:"shrink-0 rounded-full border border-[var(--card-border)] px-1.5 py-0.5 text-[10px] text-[var(--muted-foreground)]",title:a.group.name,children:(0,b.jsx)("span",{className:"block max-w-[140px] truncate",children:a.group.name})}),null!=p&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-semibold text-[var(--muted-foreground)]",children:p}),q&&q.length>0&&(0,b.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[q.slice(0,3).map(a=>{let c=r?.find(b=>b.name===a);return(0,b.jsxs)("span",{className:"flex items-center gap-1 rounded-full border border-[var(--card-border)] px-1.5 py-0.5 text-[10px] text-[var(--muted-foreground)]",children:[c?.color&&(0,b.jsx)("span",{className:"h-1.5 w-1.5 rounded-full",style:{backgroundColor:c.color}}),(0,b.jsx)("span",{className:"max-w-[60px] truncate",children:a})]},a)}),q.length>3&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:["+",q.length-3]})]}),!o&&(0,b.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:af}),n&&n.sessions>0&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[10px] tabular-nums text-[var(--muted-foreground)]/50",title:`${n.sessions} session${1!==n.sessions?"s":""}, ${n.messages} message${1!==n.messages?"s":""}`,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(W.Play,{size:8,className:"fill-current"}),n.sessions]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(ay.MessageSquare,{size:8}),n.messages]})]})]}),o&&n&&n.sessions>0&&(0,b.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-[10px] tabular-nums text-[var(--muted-foreground)]/50",title:`${n.sessions} session${1!==n.sessions?"s":""}, ${n.messages} message${1!==n.messages?"s":""}`,children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(W.Play,{size:8,className:"fill-current"}),n.sessions]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5",children:[(0,b.jsx)(ay.MessageSquare,{size:8}),n.messages]})]}),h&&h.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:h.slice(0,3).map(a=>{let c=i?.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name??a.agentName,children:[(0,b.jsx)("img",{src:aP(a.agentId,c?.color,16),alt:c?.name??a.agentName,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[t&&s&&(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("button",{ref:K,type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${q&&q.length>0?"text-blue-400 opacity-100":`text-[var(--muted-foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:a=>{a.stopPropagation(),N(a=>!a)},title:q&&q.length>0?"Edit labels":"Add labels","aria-label":q&&q.length>0?"Edit labels":"Add labels",children:(0,b.jsx)(T.Tag,{size:10,className:q&&q.length>0?"fill-current":""})}),M&&(0,b.jsx)("div",{ref:L,className:"absolute right-0 top-full z-30 mt-1 rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] p-2 shadow-xl",onClick:a=>a.stopPropagation(),children:(0,b.jsx)(aJ,{labels:s,selectedLabels:q??[],onToggle:t,onAdd:u??(()=>{})})})]}),m&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{ref:A,type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${I?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:V,title:I?"Edit note":"Add note","aria-label":I?"Edit note":"Add note",children:(0,b.jsx)(aB,{size:10,className:I?"fill-current":""})}),B&&(0,b.jsx)(aH,{anchorRef:A,value:E,onChange:F,onClose:()=>C(!1),onSave:U})]}),g&&(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${e?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:a=>{a.stopPropagation(),g()},title:e?"Unpin ticket":"Pin to top","aria-label":e?"Unpin ticket":"Pin to top",children:(0,b.jsx)(aA.Pin,{size:10,className:e?"fill-current":""})}),(0,b.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)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:a=>{X(a)},title:x?"Copied ticket URL":"Copy ticket URL","aria-label":x?"Copied ticket URL":"Copy ticket URL",disabled:!a.url,children:x?(0,b.jsx)(D.Check,{size:10,className:"text-emerald-400"}):(0,b.jsx)(R,{size:10})}),(0,b.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)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:Y,title:a.url?"Open this ticket in a new tab":"This ticket does not have an external URL","aria-label":a.url?"Open this ticket in a new tab":"This ticket does not have an external URL",disabled:!a.url,children:(0,b.jsx)(ax.ExternalLink,{size:10})}),v&&(0,b.jsx)("button",{ref:O,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)] ${P||d?"opacity-100":"opacity-0 group-hover:opacity-100"}`,onClick:a=>{a.stopPropagation(),Q(a=>!a)},title:"More actions","aria-label":"More actions",children:(0,b.jsx)(az,{size:10})}),v&&P&&(0,b.jsx)(aN,{anchorRef:O,onClose:()=>Q(!1),participants:i??[],labels:s??[],selectedLabels:q??[],statusOptions:v.statusOptions,onRecap:v.onRecap,onPrompt:v.onPrompt,onEstimate:v.onEstimate,onToggleLabel:a=>t?.(a),onAddLabel:a=>u?.(a),onStatus:v.onStatus})]})]})}function aR({issueId:a,trackerType:d,projectId:e}){let[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(null),k=(0,c.useCallback)(async()=>{try{let b=e?`?projectId=${encodeURIComponent(e)}`:"",c=await fetch(`/api/trackers/${encodeURIComponent(d)}/items/${encodeURIComponent(a)}/recap${b}`);if(!c.ok)return null;let f=await c.json();return g(f),f}catch{return null}},[a,d,e]),m=(0,c.useCallback)(a=>{j.current&&(clearTimeout(j.current),j.current=null),(a?.status==="queued"||a?.status==="running")&&(j.current=setTimeout(async()=>{m(await k())},3e3))},[k]);(0,c.useEffect)(()=>{g(null),(async()=>{m(await k())})();let b=b=>{let c=b.detail;c?.trackerType===d&&c?.issueId===a&&(async()=>{m(await k())})()};return window.addEventListener("tracker:recap-triggered",b),()=>{j.current&&clearTimeout(j.current),window.removeEventListener("tracker:recap-triggered",b)}},[a,d,k,m]);let n=(0,c.useCallback)(async()=>{i(!0);try{let b=e?`?projectId=${encodeURIComponent(e)}`:"";await fetch(`/api/trackers/${encodeURIComponent(d)}/items/${encodeURIComponent(a)}/recap${b}`,{method:"POST"});let c=await k();m(c)}finally{i(!1)}},[a,d,e,k,m]),o=f?.status==="queued"||f?.status==="running"||h;return(0,b.jsxs)("section",{className:"border-b border-[var(--card-border)] px-6 py-4",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,b.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Recap"}),(0,b.jsxs)("div",{className:"flex items-center gap-3 text-[11px] text-[var(--muted-foreground)]",children:[o?(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(ae.Loader2,{size:12,className:"animate-spin"}),"Updating…"]}):(0,b.jsxs)("span",{children:["Updated ",function(a){if(!a)return"never";let b=Math.round((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.round(b/60);if(c<24)return`${c}h ago`;let d=Math.round(c/24);return`${d}d ago`}(f?.generatedAt??null)]}),(0,b.jsxs)("button",{type:"button",onClick:n,disabled:o,className:"flex items-center gap-1 rounded border border-[var(--card-border)] px-2 py-1 text-[11px] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:opacity-50",children:[(0,b.jsx)(l.RefreshCw,{size:10}),"Recap"]})]})]}),(0,b.jsxs)("div",{className:"text-sm text-[var(--foreground)]",children:[f?.content?(0,b.jsx)(C.Markdown,{content:f.content,isUser:!1}):(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No recap yet. Click Recap to create one."}),f?.error?(0,b.jsxs)("p",{className:"mt-2 text-xs text-red-400",children:["Last run failed: ",f.error]}):null]})]})}var aS=a.i(549429);function aT({runs:a,onSelect:c}){return 0===a.length?(0,b.jsx)("div",{className:"px-4 py-6 text-center text-xs text-[var(--muted-foreground)]",children:"No sessions yet. Start one below."}):(0,b.jsx)("div",{className:"flex flex-col",children:a.map(a=>{let d=an(a);return(0,b.jsxs)("button",{type:"button",onClick:()=>c(a.id),className:"flex w-full items-start justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3 text-left transition-colors hover:bg-[var(--overlay-panel-soft)]",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:ao(a)}),(0,b.jsxs)("p",{className:"mt-1 flex items-center gap-2 text-[11px] text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:a.agentName}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)(j.Clock,{size:10}),(0,b.jsx)("span",{children:new Date(a.updatedAt).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsxs)("div",{className:`flex items-center gap-1.5 rounded-md border px-2 py-0.5 ${aq[d.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ar[d.tone]}`}),(0,b.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wider",children:d.label})]}),(0,b.jsx)(aS.ArrowRight,{className:"mt-0.5 h-4 w-4 text-[var(--muted-foreground)]"})]})]},a.id)})})}var aU=a.i(516909);function aV({targetType:a,targetId:d,projectSlug:e}){let f=(0,aU.useRouter)(),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(!1),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),[p,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(!1),u=(0,c.useCallback)(async()=>{try{let b=new URLSearchParams({targetType:a,targetId:d}),c=await fetch(`/api/github/prs/for-target?${b.toString()}`);if(c.ok){let a=await c.json();h(a.prs)}else h([])}catch{h([])}finally{j(!0)}},[a,d]);(0,c.useEffect)(()=>{j(!1),m(!1),o(""),r(null),u()},[u]);let v=(0,c.useCallback)(a=>{f.push(`/projects/${e}/prs/${encodeURIComponent(a.id)}`)},[f,e]),w=(0,c.useCallback)(async b=>{if(b.preventDefault(),n.trim()&&!s){t(!0),r(null);try{let b=await fetch("/api/github/prs/link",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:n.trim(),targetType:a,targetId:d})}),c=await b.json().catch(()=>({}));if(!b.ok)return void r(c.message||c.error||`HTTP ${b.status}`);o(""),m(!1),await u()}catch(a){r(a instanceof Error?a.message:String(a))}finally{t(!1)}}},[n,s,a,d,u]),x=(0,c.useCallback)(async(b,c)=>{if(c.stopPropagation(),window.confirm(`Unlink ${b.id} from this issue?`))try{if(!(await fetch("/api/github/prs/link",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({prId:b.id,targetType:a,targetId:d})})).ok)return;await u()}catch{}},[a,d,u]);return i&&(0!==g.length||l)?(0,b.jsxs)("section",{className:"border-b border-[var(--card-border)] px-6 py-4",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,b.jsxs)("h3",{className:"text-xs font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:["Pull Requests (",g.length,")"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>m(a=>!a),className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(k.Plus,{size:12}),"Link PR"]})]}),l&&(0,b.jsxs)("form",{onSubmit:w,className:"mb-3 flex flex-col gap-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"url",value:n,onChange:a=>o(a.target.value),placeholder:"https://github.com/owner/repo/pull/123",className:"flex-1 rounded border border-[var(--card-border)] bg-transparent px-2 py-1 text-xs text-[var(--foreground)] outline-none focus:border-blue-500",autoFocus:!0}),(0,b.jsx)("button",{type:"submit",disabled:s||!n.trim(),className:"rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600 disabled:opacity-50",children:s?"Linking…":"Link"}),(0,b.jsx)("button",{type:"button",onClick:()=>{m(!1),r(null),o("")},className:"rounded-md border border-[var(--card-border)] px-2 py-1 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Cancel"})]}),p&&(0,b.jsx)("div",{className:"text-xs text-red-400",children:p})]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:g.map(a=>{var c,d;let e="success"===(c=a.ciStatus)?{symbol:"✓",color:"text-green-500"}:"failure"===c?{symbol:"✗",color:"text-red-500"}:"pending"===c?{symbol:"●",color:"text-amber-500"}:null,f="approved"===(d=a.reviewDecision)?{label:"approved",cls:"bg-green-500/15 text-green-400 border-green-500/30"}:"changes_requested"===d?{label:"changes requested",cls:"bg-amber-500/15 text-amber-400 border-amber-500/30"}:"review_required"===d?{label:"review required",cls:"bg-neutral-500/15 text-neutral-400 border-neutral-500/30"}:null;return(0,b.jsx)("li",{children:(0,b.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>v(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),v(a))},className:"group flex cursor-pointer items-center gap-2 rounded-md border border-transparent px-2 py-1.5 text-sm hover:border-[var(--card-border)] hover:bg-[var(--card-bg)]",children:[(0,b.jsx)("span",{className:`shrink-0 rounded border px-1.5 py-0.5 text-[10px] uppercase tracking-wide ${"merged"===a.state?"bg-purple-500/15 text-purple-400 border-purple-500/30":"closed"===a.state?"bg-red-500/15 text-red-400 border-red-500/30":a.draft?"bg-neutral-500/15 text-neutral-400 border-neutral-500/30":"bg-green-500/15 text-green-400 border-green-500/30"}`,children:"merged"===a.state?"Merged":"closed"===a.state?"Closed":a.draft?"Draft":"Open"}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-xs text-[var(--muted-foreground)]",children:a.id}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--foreground)]",children:a.title}),e&&(0,b.jsx)("span",{className:`shrink-0 text-xs ${e.color}`,title:`CI: ${a.ciStatus}`,children:e.symbol}),f&&(0,b.jsx)("span",{className:`shrink-0 rounded border px-1.5 py-0.5 text-[10px] ${f.cls}`,children:f.label}),(0,b.jsx)("button",{type:"button",onClick:b=>x(a,b),className:"shrink-0 rounded p-0.5 text-[var(--muted-foreground)] opacity-0 transition-opacity hover:bg-red-500/10 hover:text-red-400 group-hover:opacity-100",title:"Unlink","aria-label":"Unlink PR",children:(0,b.jsx)(q.X,{size:12})})]})},a.id)})})]}):null}var aW=a.i(777270),aX=a.i(211960);function aY(a){if(!a)return a;let b=a.replace(/\/+$/,""),c=b.lastIndexOf("/");return c>=0?b.slice(c+1):b}function aZ({workspaces:a,selected:d,onSelect:e,onRescan:f,rescanning:g}){let[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!h)return;let a=a=>{j.current&&!j.current.contains(a.target)&&i(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[h]);let k=(0,c.useMemo)(()=>{let b=new Map;for(let c of a){let a=b.get(c.repoPath)??[];a.push(c),b.set(c.repoPath,a)}return Array.from(b.entries())},[a]),m=(0,c.useMemo)(()=>{if(!d)return"Select workspace";if("WORKING_TREE"===d.ref)return`${aY(d.repoPath)} \xb7 working tree`;let b=a.find(a=>a.repoPath===d.repoPath&&a.branch===d.ref);return b?`${aY(b.repoPath)} \xb7 ${b.branch}`:`${aY(d.repoPath)} \xb7 ${d.ref}`},[d,a]),n=a=>{e(a),i(!1)};return(0,b.jsxs)("div",{className:"relative",ref:j,children:[(0,b.jsxs)("button",{type:"button","aria-haspopup":"listbox","aria-expanded":h,onClick:()=>i(a=>!a),style:{display:"inline-flex",alignItems:"center",gap:6,height:26,padding:"0 10px",borderRadius:4,border:"1px solid var(--card-border)",background:"var(--card-bg)",color:"var(--foreground)",fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",fontSize:11,fontWeight:600,cursor:"pointer",maxWidth:320},children:[(0,b.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:280},children:m}),(0,b.jsx)(U.ChevronDown,{size:12,className:h?"rotate-180":""})]}),h?(0,b.jsxs)("div",{role:"listbox","aria-label":"Select workspace",style:{position:"absolute",top:"100%",left:0,zIndex:50,marginTop:4,minWidth:320,maxHeight:420,overflowY:"auto",background:"var(--card-bg)",border:"1px solid var(--card-border)",borderRadius:8,boxShadow:"0 8px 24px rgba(0,0,0,0.18)",padding:4},children:[0===k.length?(0,b.jsx)("div",{style:{padding:"10px 12px",fontSize:12,color:"var(--muted-foreground)"},children:"No matching workspaces."}):null,k.map(([a,c])=>{let e=aY(a),f=d?.repoPath===a&&"WORKING_TREE"===d.ref;return(0,b.jsxs)("div",{style:{marginBottom:6},children:[(0,b.jsx)("div",{style:{padding:"6px 10px 4px",fontSize:10,letterSpacing:"0.12em",textTransform:"uppercase",color:"var(--muted-foreground)",fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace"},title:a,children:e}),(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":f,onClick:()=>n({repoPath:a,ref:"WORKING_TREE"}),style:{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"6px 10px",border:"none",background:f?"var(--background)":"transparent",color:"var(--foreground)",cursor:"pointer",borderRadius:6,textAlign:"left",fontSize:12},children:[(0,b.jsx)("span",{style:{fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",fontSize:11,fontWeight:600},children:"Working tree"}),(0,b.jsx)(a$,{children:"working tree"})]}),c.map(a=>{let c=d?.repoPath===a.repoPath&&d.ref===a.branch;return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":c,onClick:()=>n({repoPath:a.repoPath,ref:a.branch}),style:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:2,width:"100%",padding:"6px 10px",border:"none",background:c?"var(--background)":"transparent",color:"var(--foreground)",cursor:"pointer",borderRadius:6,textAlign:"left"},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,width:"100%"},children:[(0,b.jsx)("span",{style:{fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",fontSize:11,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:220},children:a.branch||"(detached)"}),(0,b.jsx)(a$,{children:a.kind}),a.isCurrent?(0,b.jsx)(a$,{accent:!0,children:"current"}):null]}),a.path?(0,b.jsx)("div",{style:{fontSize:10,color:"var(--muted-foreground)",fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:280},title:a.path,children:aY(a.path)}):null]},`${a.repoPath}::${a.kind}::${a.branch}::${a.path??""}`)})]},a)}),(0,b.jsx)("div",{style:{borderTop:"1px solid var(--card-border)",padding:"6px 10px",display:"flex",alignItems:"center",justifyContent:"flex-end"},children:(0,b.jsxs)("button",{type:"button",onClick:()=>f(),disabled:g,style:{display:"inline-flex",alignItems:"center",gap:6,background:"transparent",border:"none",color:"var(--muted-foreground)",fontSize:11,cursor:g?"default":"pointer"},children:[(0,b.jsx)(l.RefreshCw,{size:11,className:g?"animate-spin":void 0}),"Rescan ~"]})})]}):null]})}function a$({children:a,accent:c}){return(0,b.jsx)("span",{style:{display:"inline-flex",alignItems:"center",padding:"0 6px",height:16,borderRadius:999,border:"1px solid var(--card-border)",background:c?"var(--primary)":"transparent",color:c?"var(--primary-foreground)":"var(--muted-foreground)",fontSize:9,letterSpacing:"0.06em",textTransform:"uppercase",fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",whiteSpace:"nowrap"},children:a})}function a_({ticketId:a,rightPane:d,fallback:e}){let[f,g]=(0,c.useState)(!0),[h,i]=(0,c.useState)([]),[j,k]=(0,c.useState)(!1),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(!1),y=(0,c.useCallback)(async()=>{g(!0);try{let b=await fetch(`/api/git/workspaces?ticketId=${encodeURIComponent(a)}`);if(!b.ok){i([]),k(!1),n(null);return}let c=await b.json();i(c.workspaces??[]),k(!!c.stale),n(c.scannedAt??null),r(!!c.scanning)}catch(a){console.warn("Failed to load workspaces",a),i([]),k(!1),n(null),r(!1)}finally{g(!1)}},[a]);(0,c.useEffect)(()=>{t(null),v(null),y()},[y]),(0,c.useEffect)(()=>{if(!q||h.length>0)return;let a=setInterval(()=>{y()},3e3);return()=>clearInterval(a)},[q,h.length,y]),(0,c.useEffect)(()=>{if(s||0===h.length)return;let a=h.find(a=>"worktree"===a.kind)??h[0];t({repoPath:a.repoPath,ref:a.branch})},[h,s]),(0,c.useEffect)(()=>{if(!s)return void v(null);let a=!1;x(!0);let b=new URLSearchParams({repoPath:s.repoPath,ref:s.ref,base:""});return fetch(`/api/git/diff?${b.toString()}`).then(async b=>{if(!b.ok){a||v(null);return}let c=await b.json();a||v(c)}).catch(b=>{console.warn("Failed to load diff",b),a||v(null)}).finally(()=>{a||x(!1)}),()=>{a=!0}},[s]);let z=(0,c.useCallback)(async()=>{p(!0);try{await fetch("/api/git/workspaces/rescan",{method:"POST"}),await y()}catch(a){console.warn("Rescan failed",a)}finally{p(!1)}},[y]),A=(0,c.useCallback)(async()=>{if(s)try{await fetch("/api/git/workspaces/refresh",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoPath:s.repoPath,ticketId:a})}),await y();let b=new URLSearchParams({repoPath:s.repoPath,ref:s.ref,base:""}),c=await fetch(`/api/git/diff?${b.toString()}`);if(c.ok){let a=await c.json();v(a)}}catch(a){console.warn("Refresh failed",a)}},[s,a,y]),B=(0,c.useMemo)(()=>u?u.files.reduce((a,b)=>({a:a.a+b.additions,d:a.d+b.deletions}),{a:0,d:0}):{a:0,d:0},[u]),C=(0,c.useMemo)(()=>u?u.files.map(a=>({prId:"",path:a.path,status:a.status,additions:a.additions,deletions:a.deletions,changes:a.additions+a.deletions,patch:a.patch,lastSyncedAt:Date.now()})):[],[u]),D=(0,c.useMemo)(()=>[],[]),E=(0,c.useMemo)(()=>({id:"",repoId:"",number:0,title:"",body:"",state:"open",draft:!1,authorLogin:"",headRef:"",headSha:"",baseRef:"",url:"",ciStatus:null,reviewDecision:null,assignees:[],reviewers:[],labels:[],createdAt:0,updatedAt:0,mergedAt:null,closedAt:null,lastSyncedAt:0}),[]);if(f&&0===h.length&&!j)return(0,b.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--muted-foreground)",fontSize:12},children:"Loading workspaces..."});if(j&&0===h.length)return(0,b.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",alignItems:"center",justifyContent:"center",padding:24},children:(0,b.jsxs)("div",{style:{maxWidth:420,border:"1px solid var(--card-border)",borderRadius:8,background:"var(--card-bg)",padding:20,textAlign:"center",color:"var(--foreground)"},children:[(0,b.jsx)("div",{style:{fontSize:13,marginBottom:12},children:"Workspace index not yet built (or older than 24h)."}),q?(0,b.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 12px",borderRadius:6,border:"1px solid var(--card-border)",background:"var(--background)",color:"var(--muted-foreground)",fontSize:12},children:[(0,b.jsx)(l.RefreshCw,{size:12,className:"animate-spin"}),"Indexing..."]}):(0,b.jsxs)("button",{type:"button",onClick:z,disabled:o,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"6px 12px",borderRadius:6,border:"1px solid var(--card-border)",background:"var(--background)",color:"var(--foreground)",fontSize:12,cursor:o?"default":"pointer"},children:[(0,b.jsx)(l.RefreshCw,{size:12,className:o?"animate-spin":void 0}),"Rescan ~"]})]})});if(!j&&0===h.length)return(0,b.jsx)(b.Fragment,{children:e??null});let F=s?h.find(a=>a.repoPath===s.repoPath&&a.branch===s.ref):null,G=s?function(a){if(!a)return a;let b=a.replace(/\/+$/,""),c=b.lastIndexOf("/");return c>=0?b.slice(c+1):b}(s.repoPath):"",H=s?.ref==="WORKING_TREE"?"working tree":F?.branch??s?.ref??"",I=u?.base??"",J=(0,b.jsxs)("header",{style:{height:44,flex:"0 0 auto",display:"flex",alignItems:"center",gap:12,padding:"0 14px",borderBottom:"1px solid var(--card-border)",background:"var(--column-header-bg, var(--card-bg))",fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",fontSize:11},children:[(0,b.jsx)("span",{style:{fontFamily:"var(--font-inter-tight), ui-sans-serif, system-ui",fontWeight:700,fontSize:14,letterSpacing:"-0.02em",color:"var(--foreground)"},children:a}),(0,b.jsx)("div",{style:{width:1,height:20,background:"var(--card-border)"}}),(0,b.jsx)(aZ,{workspaces:h,selected:s,onSelect:a=>t(a),onRescan:z,rescanning:o}),(0,b.jsx)("div",{style:{marginLeft:"auto"},children:(0,b.jsxs)("button",{type:"button",onClick:A,disabled:!s||w,style:{display:"inline-flex",alignItems:"center",gap:6,height:26,padding:"0 10px",borderRadius:4,border:"1px solid var(--card-border)",background:"transparent",color:"var(--muted-foreground)",fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",fontSize:11,cursor:!s||w?"default":"pointer"},title:"Refresh diff and workspaces",children:[(0,b.jsx)(l.RefreshCw,{size:11,className:w?"animate-spin":void 0}),"Refresh"]})})]}),K=(0,b.jsxs)("footer",{style:{height:26,flex:"0 0 auto",display:"flex",alignItems:"center",padding:"0 14px",gap:14,borderTop:"1px solid var(--card-border)",background:"var(--column-header-bg, var(--card-bg))",fontFamily:"var(--font-jetbrains-mono), ui-monospace, Menlo, monospace",fontSize:10,color:"var(--muted-foreground)"},children:[(0,b.jsx)("span",{children:G||"—"}),(0,b.jsx)("span",{style:{color:"var(--card-border)"},children:"·"}),(0,b.jsx)("span",{style:{color:"var(--foreground)"},children:H||"—"}),I?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{style:{color:"var(--card-border)"},children:"·"}),(0,b.jsxs)("span",{children:["base ",I]})]}):null,(0,b.jsx)("span",{style:{color:"var(--card-border)"},children:"·"}),(0,b.jsxs)("span",{children:["+",B.a," −",B.d]}),(0,b.jsxs)("span",{style:{marginLeft:"auto"},children:[C.length," file",1===C.length?"":"s"]})]});return(0,b.jsx)(aX.ReviewLayout,{pr:E,files:C,comments:D,rightPane:d,header:J,statusBar:K})}function a0(a,b){return a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||b}let a1=(0,d.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function a2({item:a,trackerType:d,runs:e,participants:f,projectId:g,projectSlug:h,itemStatusOptions:i,itemStatusUpdating:j,onItemStatusChange:k,activeSessionScriptLabel:l,onOpenSessionScripts:m,onStartScriptedSession:n,createRun:o,updateRun:p,onRunCreated:q,onSelectRun:r}){let s,t,u=f[0],{metadata:v}=function(a,b,d){let[e,f]=(0,c.useState)({labels:[],estimate:null}),[g,h]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if(!b||!d)return void f({labels:[],estimate:null});let c=!1;return h(!0),fetch(`/api/trackers/${encodeURIComponent(a)}/metadata?projectId=${encodeURIComponent(b)}&issueId=${encodeURIComponent(d)}`).then(a=>a.json()).then(a=>{c||f({labels:Array.isArray(a.labels)?a.labels:[],estimate:"number"==typeof a.estimate?a.estimate:null})}).catch(()=>{}).finally(()=>{c||h(!1)}),()=>{c=!0}},[a,b,d]);let i=(0,c.useCallback)(async c=>{if(b&&d)try{let g=await fetch(`/api/trackers/${encodeURIComponent(a)}/metadata?projectId=${encodeURIComponent(b)}&issueId=${encodeURIComponent(d)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),h=await g.json();f({labels:Array.isArray(h.labels)?h.labels:e.labels,estimate:"number"==typeof h.estimate?h.estimate:null})}catch{}},[a,b,d,e.labels]);return{metadata:e,loading:g,update:i}}(d,g,a.id),w="github"===d&&(a.labels??[]).includes("pr"),x=(0,c.useRef)(null);x.current||(x.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:y,setMessages:z,chatRuns:C}=(0,A.useGroupChat)(x.current),{processes:D}=(0,B.useProcessPolling)({workspaceId:x.current},{messages:y,setMessages:z}),E=(0,c.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),F=C.some(a=>E.has(a.status))||D.some(a=>"spawning"===a.state||"running"===a.state)?C.some(a=>"queued"===a.status)?"queued":"working":"ready",G=(0,c.useRef)(!1),H=(0,c.useCallback)(async(b,c,e,i,j,k,l)=>{if(G.current)return;G.current=!0;let m=(j?f.find(a=>a.id===j):null)??u;if(!m){G.current=!1;return}try{var n,r,s,t;let c,e,f,i,j,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,{run:L,recapContent:M}=await o({projectId:g??null,projectSlug:h??null,issueId:a.id,issueIdentifier:a.identifier,issueTitle:a.title,issueStatus:a.status,issueAssignee:a.assignee?.name??null,agentId:m.id,agentName:m.name,mode:"chat"}),{promptPrefix:N}=(f=(s=n={issue:{identifier:a.identifier,title:a.title,status:a.status,assignee:a.assignee?.name??null},project:h?{slug:h}:null,runtime:{recapContent:M}}).issue.identifier.trim()||"TICKET-ID",i=s.issue.title.trim()||"Untitled ticket",j=String(s.issue.status??"").trim()||"Unknown",u=String(s.issue.assignee??"").trim()||"Unassigned",v=function(a){let b=String(a?.slug??"").trim();if(b)return a0(b,"project");let c=String(a?.name??"").trim();return c?a0(c,"project"):"project"}(s.project),w=String(s.project?.name??"").trim()||v,x=String(s.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${v}`,y=String(s.runtime?.issueKnowledgePath??"").trim()||`${x}/issues/${f}/`,z=String(s.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${a0(f,"ticket")}`,B=(A={issue:{identifier:f,title:i,status:j,assignee:u},project:{name:w,slug:v,label:(t=s.project,c=String(t?.name??"").trim(),e=String(t?.slug??"").trim(),c&&e?`${c} (${e})`:c||e||"current project"),repos:s.project?.repos?[...s.project.repos]:[]},runtime:{knowledgeBaseRoot:x,issueKnowledgePath:y,isolatedWorktreePath:z}}).issue.identifier,C=A.issue.title,D=A.issue.status,E=A.issue.assignee,F=A.runtime.knowledgeBaseRoot,G=A.runtime.issueKnowledgePath,H=A.runtime.isolatedWorktreePath,I="",(J=n.runtime?.recapContent?.trim())&&(I=`TICKET RECAP
26
26
  ${J}`),K=["TICKET EXECUTION","You are an engineer working through a single ticket from the project's issue tracker (Linear, Jira, or whichever tracker is configured). 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.",'TERMINOLOGY NOTE\n- "Ticket" / "issue" = the work item you are executing (from Linear, Jira, etc.)\n- "Task" in this project\'s UI = a scheduled or manual background task (cron jobs, automations) — NOT this ticket.\n- Do not confuse scheduled tasks with the ticket you are working on.',`INJECTED CONTEXT
27
27
  - Ticket: ${B}
28
28
  - Title: ${C}
@@ -36,7 +36,7 @@ ${J}`),K=["TICKET EXECUTION","You are an engineer working through a single ticke
36
36
  ${!(r=A.project.repos)||0===r.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":r.map(a=>{let b=[a.name.trim()||"repository"],c=String(a.path??"").trim(),d=String(a.notes??"").trim();return c&&b.push(`path: ${c}`),d&&b.push(`notes: ${d}`),`- ${b.join(" | ")}`}).join("\n")}`,"WORKFLOW\n1. Read the full issue and comment thread before acting. Use the issue tracker MCP for issue details, comments, state changes, and follow-up.\n2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.\n3. If requirements are unclear, ask specific clarifying questions in the issue tracker and stop.\n4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.\n5. 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.\n6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.\n7. Keep the issue tracker accurate: comments, links, statuses, blockers, and PR references should match reality.\n8. Keep the knowledge base current with what you learned, what changed, and what remains.\n9. Work on exactly this ticket during this session.","RULES\n- Use the injected project context instead of hardcoded repo-specific paths or conventions.\n- Use knowledge base terminology; the filesystem path above is the storage location.\n- If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.\n- 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."],I&&K.splice(3,0,I),{prompt:`Work on this ticket: ${B} - ${C}`,promptPrefix:K.join("\n\n")+"\n\n"}),O="";if("github"===d&&(a.labels??[]).includes("pr")&&g)try{let b=await fetch("/api/github/prs/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:g,prId:a.id})});if(b.ok){let a=await b.json();a.context&&(O=a.context)}}catch(a){console.warn("Failed to fetch PR context",a)}let P=N+(O?`
37
37
 
38
38
  ${O}`:"")+(k?`
39
- ${k}`:""),Q=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:P,threadId:L.threadId,activeParticipantIds:[m.id],projectSlug:h??void 0,routing:l})}),R=await Q.json().catch(()=>({}));if(!Q.ok||!R.chatRunId||!R.userMessageId)throw Error(R.error||"Failed to start chat session");await p(L.id,{chatRunId:R.chatRunId,rootMessageId:R.userMessageId}),q(L.id)}catch(a){console.error("Failed to create chat session:",a),D.current=!1,a instanceof Error&&window.alert(a.message)}},[a,f,s,g,h,d,o,p,q]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:a.title})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:["github"!==d&&(0,b.jsx)(av,{status:a.status,options:i,disabled:0===i.length,updating:j,onChange:b=>k(a,b)}),null!=t.estimate&&(0,b.jsxs)("span",{className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--foreground)]",title:"Estimate",children:[(0,b.jsx)(aL.Hash,{size:12}),t.estimate]}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:m,title:`Session script: ${l}`,children:[(0,b.jsx)(aK.FileText,{size:12}),(0,b.jsx)("span",{className:"max-w-[120px] truncate",children:"AGX default"===l?"Session script":l})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600",onClick:n,children:[(0,b.jsx)(W.Play,{size:12}),(0,b.jsx)("span",{children:"Start scripted session"})]})]})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-64",children:[(0,b.jsx)(aR,{issueId:a.id,trackerType:d,projectId:g}),h&&(0,b.jsx)(aU,{targetType:"linear_issue",targetId:a.identifier,projectSlug:h}),(0,b.jsx)(aT,{runs:e,onSelect:r})]}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(aW,{onSend:E,onStop:()=>{},participants:f,projectId:g??void 0,projectSlug:h??void 0,loading:"ready"!==C,commands:[],activityStatus:C,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:s?.id})})]})}var aY=a.i(111814),aZ=a.i(89613),a$=a.i(157633);function a_({groupId:a,name:d,count:e,collapsed:f,selected:g,onToggleCollapse:h,onSelect:i,onUngroup:j,projectSlug:k}){let{setNodeRef:l,isOver:m}=(0,aO.useDroppable)({id:a}),n=(0,c.useRef)(null),[o,p]=(0,c.useState)(!1),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),x=(0,c.useCallback)(async()=>{if(k&&!t)try{let b=await fetch(`/api/tracker/notes?projectSlug=${encodeURIComponent(k)}&id=${encodeURIComponent(a)}&type=group`),c=(await b.json()).content??"";s(c),w(""!==c.trim()),u(!0)}catch{u(!0)}},[k,a,t]),y=(0,c.useCallback)(async b=>{if(k){w(""!==b.trim());try{await fetch("/api/tracker/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectSlug:k,id:a,type:"group",content:b})})}catch{}}},[k,a]),z=(0,c.useCallback)(async a=>{(a.stopPropagation(),o)?p(!1):(await x(),p(!0))},[o,x]);return(0,b.jsxs)("div",{ref:l,className:`group relative flex cursor-pointer items-center gap-2 pl-[24px] pr-4 py-2 text-sm transition-colors ${g?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"} ${m?"bg-[var(--primary)]/10 border-l-2 border-l-[var(--primary)]":""}`,onClick:i,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i())},children:[g&&(0,b.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,b.jsx)("button",{type:"button",className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:a=>{a.stopPropagation(),h()},"aria-label":f?"Expand folder":"Collapse folder",children:f?(0,b.jsx)(V.ChevronRight,{size:14}):(0,b.jsx)(U.ChevronDown,{size:14})}),(0,b.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]",children:f?(0,b.jsx)(a$.Folder,{size:14}):(0,b.jsx)(aZ.FolderOpen,{size:14})}),(0,b.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs font-medium ${g?"text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:d}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--secondary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)]",children:e}),k&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{ref:n,type:"button",className:`flex h-5 w-5 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${v?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${g?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:z,title:v?"Edit group note":"Add group note","aria-label":v?"Edit group note":"Add group note",children:(0,b.jsx)(aB,{size:12,className:v?"fill-current":""})}),o&&(0,b.jsx)(aH,{anchorRef:n,value:r,onChange:s,onClose:()=>p(!1),onSave:y})]}),j&&(0,b.jsx)("button",{type:"button",className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 hover:text-red-400 transition-all",onClick:a=>{a.stopPropagation(),j()},title:"Ungroup tickets","aria-label":"Ungroup tickets",children:(0,b.jsx)(q.X,{size:12})})]})}var a0=a.i(667597);let a1=(0,d.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function a2({group:a,items:d,trackerType:e,participants:f,projectId:g,projectSlug:h,onUpdateName:i,onDelete:j,onSelectItem:k,onRunCreated:l,onSelectRun:m}){let[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(a.name),r=(0,c.useCallback)(()=>{let b=p.trim();b&&b!==a.name&&i(b),o(!1)},[p,a.name,i]),s=d.filter(b=>a.task_ids.includes(b.id)),{runs:t,createRun:u,updateRun:v}=y(e,a.id,g??null),w=f[0],x=(0,c.useRef)(null);x.current||(x.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:z,setMessages:C,chatRuns:D}=(0,A.useGroupChat)(x.current),{processes:E}=(0,B.useProcessPolling)({workspaceId:x.current},{messages:z,setMessages:C}),G=(0,c.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),H=D.some(a=>G.has(a.status))||E.some(a=>"spawning"===a.state||"running"===a.state)?D.some(a=>"queued"===a.status)?"queued":"working":"ready",I=(0,c.useRef)(!1),J=(0,c.useCallback)(async(b,c,d,e,i,j,k)=>{if(I.current)return;I.current=!0;let m=(i?f.find(a=>a.id===i):null)??w;if(!m){I.current=!1;return}try{let{run:c}=await u({projectId:g??null,projectSlug:h??null,issueId:a.id,issueIdentifier:a.name,issueTitle:a.name,issueStatus:"active",issueAssignee:null,agentId:m.id,agentName:m.name,mode:"chat"}),d=s.length>0?s.map(a=>`- ${a.identifier}: ${a.title} (${a.status})`).join("\n"):"- (no tickets assigned to this group)",e=`GROUP SESSION
39
+ ${k}`:""),Q=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:P,threadId:L.threadId,activeParticipantIds:[m.id],projectSlug:h??void 0,routing:l})}),R=await Q.json().catch(()=>({}));if(!Q.ok||!R.chatRunId||!R.userMessageId)throw Error(R.error||"Failed to start chat session");await p(L.id,{chatRunId:R.chatRunId,rootMessageId:R.userMessageId}),q(L.id)}catch(a){console.error("Failed to create chat session:",a),G.current=!1,a instanceof Error&&window.alert(a.message)}},[a,f,u,g,h,d,o,p,q]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:a.title})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:["github"!==d&&(0,b.jsx)(av,{status:a.status,options:i,disabled:0===i.length,updating:j,onChange:b=>k(a,b)}),null!=v.estimate&&(0,b.jsxs)("span",{className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--foreground)]",title:"Estimate",children:[(0,b.jsx)(aL.Hash,{size:12}),v.estimate]}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:m,title:`Session script: ${l}`,children:[(0,b.jsx)(aK.FileText,{size:12}),(0,b.jsx)("span",{className:"max-w-[120px] truncate",children:"AGX default"===l?"Session script":l})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600",onClick:n,children:[(0,b.jsx)(W.Play,{size:12}),(0,b.jsx)("span",{children:"Start scripted session"})]})]})]}),w?(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:(0,b.jsx)(aW.PrReviewView,{prId:a.id,rightPane:(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-[var(--bg-card)]",children:[(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[(0,b.jsx)(aR,{issueId:a.id,trackerType:d,projectId:g}),(0,b.jsx)(aT,{runs:e,onSelect:r})]}),(0,b.jsx)("div",{className:"shrink-0 border-t border-[var(--card-border)] p-2",children:(0,b.jsx)(a1,{onSend:H,onStop:()=>{},participants:f,projectId:g??void 0,projectSlug:h??void 0,loading:"ready"!==F,commands:[],activityStatus:F,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:u?.id})})]})})}):(s=(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-[var(--bg-card)]",children:[(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:[(0,b.jsx)(aR,{issueId:a.id,trackerType:d,projectId:g}),h&&(0,b.jsx)(aV,{targetType:"linear_issue",targetId:a.identifier,projectSlug:h}),(0,b.jsx)(aT,{runs:e,onSelect:r})]}),(0,b.jsx)("div",{className:"shrink-0 border-t border-[var(--card-border)] p-2",children:(0,b.jsx)(a1,{onSend:H,onStop:()=>{},participants:f,projectId:g??void 0,projectSlug:h??void 0,loading:"ready"!==F,commands:[],activityStatus:F,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:u?.id})})]}),t=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-64",children:[(0,b.jsx)(aR,{issueId:a.id,trackerType:d,projectId:g}),h&&(0,b.jsx)(aV,{targetType:"linear_issue",targetId:a.identifier,projectSlug:h}),(0,b.jsx)(aT,{runs:e,onSelect:r})]}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(a1,{onSend:H,onStop:()=>{},participants:f,projectId:g??void 0,projectSlug:h??void 0,loading:"ready"!==F,commands:[],activityStatus:F,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:u?.id})})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:(0,b.jsx)(a_,{ticketId:a.identifier,rightPane:s,fallback:t})}))]})}var a3=a.i(111814),a4=a.i(89613),a5=a.i(157633);function a6({groupId:a,name:d,count:e,collapsed:f,selected:g,onToggleCollapse:h,onSelect:i,onUngroup:j,projectSlug:k}){let{setNodeRef:l,isOver:m}=(0,aO.useDroppable)({id:a}),n=(0,c.useRef)(null),[o,p]=(0,c.useState)(!1),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),x=(0,c.useCallback)(async()=>{if(k&&!t)try{let b=await fetch(`/api/tracker/notes?projectSlug=${encodeURIComponent(k)}&id=${encodeURIComponent(a)}&type=group`),c=(await b.json()).content??"";s(c),w(""!==c.trim()),u(!0)}catch{u(!0)}},[k,a,t]),y=(0,c.useCallback)(async b=>{if(k){w(""!==b.trim());try{await fetch("/api/tracker/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectSlug:k,id:a,type:"group",content:b})})}catch{}}},[k,a]),z=(0,c.useCallback)(async a=>{(a.stopPropagation(),o)?p(!1):(await x(),p(!0))},[o,x]);return(0,b.jsxs)("div",{ref:l,className:`group relative flex cursor-pointer items-center gap-2 pl-[24px] pr-4 py-2 text-sm transition-colors ${g?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"} ${m?"bg-[var(--primary)]/10 border-l-2 border-l-[var(--primary)]":""}`,onClick:i,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i())},children:[g&&(0,b.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,b.jsx)("button",{type:"button",className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:a=>{a.stopPropagation(),h()},"aria-label":f?"Expand folder":"Collapse folder",children:f?(0,b.jsx)(V.ChevronRight,{size:14}):(0,b.jsx)(U.ChevronDown,{size:14})}),(0,b.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]",children:f?(0,b.jsx)(a5.Folder,{size:14}):(0,b.jsx)(a4.FolderOpen,{size:14})}),(0,b.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs font-medium ${g?"text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:d}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--secondary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)]",children:e}),k&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{ref:n,type:"button",className:`flex h-5 w-5 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${v?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${g?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:z,title:v?"Edit group note":"Add group note","aria-label":v?"Edit group note":"Add group note",children:(0,b.jsx)(aB,{size:12,className:v?"fill-current":""})}),o&&(0,b.jsx)(aH,{anchorRef:n,value:r,onChange:s,onClose:()=>p(!1),onSave:y})]}),j&&(0,b.jsx)("button",{type:"button",className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 hover:text-red-400 transition-all",onClick:a=>{a.stopPropagation(),j()},title:"Ungroup tickets","aria-label":"Ungroup tickets",children:(0,b.jsx)(q.X,{size:12})})]})}var a7=a.i(667597);let a8=(0,d.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function a9({group:a,items:d,trackerType:e,participants:f,projectId:g,projectSlug:h,onUpdateName:i,onDelete:j,onSelectItem:k,onRunCreated:l,onSelectRun:m}){let[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(a.name),r=(0,c.useCallback)(()=>{let b=p.trim();b&&b!==a.name&&i(b),o(!1)},[p,a.name,i]),s=d.filter(b=>a.task_ids.includes(b.id)),{runs:t,createRun:u,updateRun:v}=y(e,a.id,g??null),w=f[0],x=(0,c.useRef)(null);x.current||(x.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:z,setMessages:C,chatRuns:D}=(0,A.useGroupChat)(x.current),{processes:E}=(0,B.useProcessPolling)({workspaceId:x.current},{messages:z,setMessages:C}),G=(0,c.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),H=D.some(a=>G.has(a.status))||E.some(a=>"spawning"===a.state||"running"===a.state)?D.some(a=>"queued"===a.status)?"queued":"working":"ready",I=(0,c.useRef)(!1),J=(0,c.useCallback)(async(b,c,d,e,i,j,k)=>{if(I.current)return;I.current=!0;let m=(i?f.find(a=>a.id===i):null)??w;if(!m){I.current=!1;return}try{let{run:c}=await u({projectId:g??null,projectSlug:h??null,issueId:a.id,issueIdentifier:a.name,issueTitle:a.name,issueStatus:"active",issueAssignee:null,agentId:m.id,agentName:m.name,mode:"chat"}),d=s.length>0?s.map(a=>`- ${a.identifier}: ${a.title} (${a.status})`).join("\n"):"- (no tickets assigned to this group)",e=`GROUP SESSION
40
40
 
41
41
  You are working on a group of related tickets named "${a.name}".
42
42
 
@@ -45,6 +45,6 @@ ${d}
45
45
 
46
46
  Work through these tickets as a coherent unit of work.
47
47
 
48
- `+(j??""),f=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:e,threadId:c.threadId,activeParticipantIds:[m.id],projectSlug:h??void 0,routing:k})}),i=await f.json().catch(()=>({}));if(!f.ok||!i.chatRunId||!i.userMessageId)throw Error(i.error||"Failed to start chat session");await v(c.id,{chatRunId:i.chatRunId,rootMessageId:i.userMessageId}),l(c.id)}catch(a){console.error("Failed to create group chat session:",a),I.current=!1,a instanceof Error&&window.alert(a.message)}},[a,s,f,w,g,h,u,v,l]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex h-12 shrink-0 items-center gap-2 border-b border-[var(--card-border)] px-4",children:[(0,b.jsx)(aZ.FolderOpen,{size:16,className:"shrink-0 text-[var(--muted-foreground)]"}),n?(0,b.jsx)("input",{type:"text",value:p,onChange:a=>q(a.target.value),onBlur:r,onKeyDown:b=>{"Enter"===b.key&&r(),"Escape"===b.key&&(q(a.name),o(!1))},autoFocus:!0,className:"min-w-0 flex-1 bg-transparent text-sm font-medium text-[var(--foreground)] outline-none border-b border-[var(--primary)]"}):(0,b.jsx)("h3",{className:"min-w-0 flex-1 truncate text-sm font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>{q(a.name),o(!0)},title:"Rename group",children:(0,b.jsx)(a0.Pencil,{size:12})}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] hover:text-red-400 transition-colors",onClick:j,title:"Delete group (ungroups tickets)",children:(0,b.jsx)(F.Trash2,{size:12})})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-64",children:[(0,b.jsxs)("section",{className:"border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"px-4 py-2 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:["Tickets (",s.length,")"]}),0===s.length?(0,b.jsx)("div",{className:"px-4 pb-4 text-center text-xs text-[var(--muted-foreground)]",children:"No tickets in this group."}):s.map(a=>(0,b.jsx)(aQ,{item:a,selected:!1,onSelect:()=>k(a.id)},a.id))]}),(0,b.jsx)(aR,{issueId:a.id,trackerType:e,projectId:g}),(0,b.jsx)(aT,{runs:t,onSelect:m})]}),f.length>0&&(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(a1,{onSend:J,onStop:()=>{},participants:f,projectId:g??void 0,projectSlug:h??void 0,loading:"ready"!==H,commands:[],activityStatus:H,placeholder:`Work on tickets in "${a.name}"...`,initialPinnedParticipantId:w?.id})})]})}let a3="__pending-group__";function a4({ticket:a,isLast:c}){let{attributes:d,listeners:e,setNodeRef:f,transform:g,isDragging:h}=(0,aO.useDraggable)({id:a.id}),i=g?{transform:`translate3d(${g.x}px, ${g.y}px, 0)`,opacity:h?.3:1,position:"relative",zIndex:h?50:void 0}:void 0;return(0,b.jsxs)("div",{ref:f,style:i,...d,...e,className:"flex items-center gap-3 pl-[48px] pr-4 py-2 text-sm cursor-grab active:cursor-grabbing",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-none text-[var(--muted-foreground)]/40 select-none",children:c?"└──":"├──"}),(0,b.jsx)("span",{className:"shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-[var(--muted-foreground)]",children:a.title}),a.status&&(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:a.status})]})}function a5({tickets:a,onConfirm:d,onCancel:e}){let[f,g]=(0,c.useState)(""),h=(0,c.useRef)(null),{setNodeRef:i,isOver:j}=(0,aO.useDroppable)({id:a3});(0,c.useEffect)(()=>{h.current?.focus()},[]);let k=(0,c.useCallback)(()=>{let b=f.trim(),c=a.map(a=>a.identifier).join(", ");d(b||c||"Untitled")},[f,d,a]);return(0,b.jsxs)("div",{ref:i,className:`mx-0 my-0 transition-colors ${j?"bg-[var(--primary)]/5":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 pl-[24px] pr-4 py-2 bg-[var(--card-bg)]/50",children:[(0,b.jsx)(U.ChevronDown,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)(aZ.FolderOpen,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{ref:h,type:"text",value:f,onChange:a=>g(a.target.value),onKeyDown:a=>{"Enter"===a.key&&k(),"Escape"===a.key&&e()},placeholder:a.map(a=>a.identifier).join(", ")||"Name this group...",className:"min-w-0 flex-1 bg-transparent text-xs font-medium text-[var(--foreground)] placeholder:text-[var(--muted-foreground)]/60 outline-none border-b border-[var(--primary)]/40 pb-0.5 focus:border-[var(--primary)]"}),(0,b.jsx)("button",{type:"button",className:"rounded px-2 py-0.5 text-[10px] font-medium bg-[var(--primary)] text-[var(--primary-foreground)] hover:opacity-90 transition-opacity",onClick:k,children:"Create"}),(0,b.jsx)("button",{type:"button",className:"rounded px-2 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:e,children:"Cancel"})]}),a.map((c,d)=>(0,b.jsx)(a4,{ticket:c,isLast:d===a.length-1},c.id))]})}let a6="sg::";function a7({status:a,categoryColor:c,count:d,collapsed:e,onToggle:f}){let{setNodeRef:g,isOver:h}=(0,aO.useDroppable)({id:`${a6}${a}`});return(0,b.jsxs)("div",{ref:g,className:`sticky top-0 z-[5] flex cursor-pointer items-center gap-2 border-b border-[var(--card-border)] bg-[var(--app-shell-pane)] px-4 py-2 transition-colors ${h?"bg-[var(--primary)]/10 ring-1 ring-inset ring-[var(--primary)]/30":""}`,onClick:f,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),f())},children:[e?(0,b.jsx)(V.ChevronRight,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}):(0,b.jsx)(U.ChevronDown,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:`h-2 w-2 shrink-0 rounded-full ${c}`}),(0,b.jsx)("span",{className:"text-xs font-medium text-[var(--foreground)]",children:a}),(0,b.jsx)("span",{className:"text-[10px] tabular-nums text-[var(--muted-foreground)]",children:d})]})}var a8=a.i(785630);function a9({open:a,onClose:d,anchorRef:e,children:f}){let g=(0,c.useRef)(null);return((0,c.useEffect)(()=>{if(!a)return;let b=a=>{g.current?.contains(a.target)||e.current?.contains(a.target)||d()},c=a=>{"Escape"===a.key&&d()};return document.addEventListener("pointerdown",b),document.addEventListener("keydown",c),()=>{document.removeEventListener("pointerdown",b),document.removeEventListener("keydown",c)}},[a,d,e]),a)?(0,b.jsx)("div",{ref:g,className:"absolute bottom-full left-1/2 z-50 mb-2 -translate-x-1/2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-2 shadow-lg backdrop-blur-sm",children:f}):null}function ba({count:a,onGroup:d,onClear:e,onBulkRecap:f,onBulkPrompt:g,onBulkEstimate:h,onBulkAddLabel:i,onBulkRemoveLabel:j,onBulkStatus:k,statusOptions:m,participants:n,labels:o,onCreateLabel:p,selectedMetadata:r,statusUpdating:s}){let[t,u]=(0,c.useState)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(null),x=(0,c.useRef)(null),y=(0,c.useCallback)(a=>{u(b=>b===a?null:a)},[]),z=c.default.useMemo(()=>{let a=new Map;for(let b of r.values())for(let c of b.labels)a.set(c,(a.get(c)??0)+1);return a},[r]),A=c.default.useMemo(()=>{let a=new Set;for(let b of r.values())for(let c of b.labels)a.add(c);return Array.from(a)},[r]);if(a<2)return null;let B="flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]";return(0,b.jsx)("div",{className:"absolute bottom-4 left-1/2 z-30 -translate-x-1/2",children:(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1.5 shadow-2xl",children:[(0,b.jsxs)("span",{className:"mr-1 text-xs font-medium text-[var(--foreground)]",children:[a," selected"]}),(0,b.jsx)("div",{className:"mx-1 h-4 w-px bg-[var(--card-border)]"}),(0,b.jsxs)("button",{type:"button",className:B,onClick:f,title:"Recap all selected",children:[(0,b.jsx)(aK.FileText,{size:12}),"Recap"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{ref:x,type:"button",className:`${B} ${"prompt"===t?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>y("prompt"),title:"Send prompt to all selected",children:[(0,b.jsx)(ay.MessageSquare,{size:12}),"Prompt"]}),(0,b.jsx)(a9,{open:"prompt"===t,onClose:()=>u(null),anchorRef:x,children:(0,b.jsx)(aM,{count:a,participants:n,onSend:(a,b)=>{g(a,b),u(null)}})})]}),(0,b.jsxs)("button",{type:"button",className:B,onClick:h,title:"Ask the LLM to size all selected",children:[(0,b.jsx)(aL.Hash,{size:12}),"Estimate"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{ref:v,type:"button",className:`${B} ${"label"===t?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>y("label"),title:"Label all selected",children:[(0,b.jsx)(T.Tag,{size:12}),"Label"]}),(0,b.jsx)(a9,{open:"label"===t,onClose:()=>u(null),anchorRef:v,children:(0,b.jsx)(aJ,{labels:o,selectedLabels:A,labelCounts:z,totalSelected:a,onToggle:b=>{(z.get(b)??0)===a?j(b):i(b)},onAdd:p})})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{ref:w,type:"button",className:`${B} ${"status"===t?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>y("status"),title:"Update status for all selected",disabled:s,children:[s?(0,b.jsx)(l.RefreshCw,{size:12,className:"animate-spin"}):(0,b.jsx)(l.RefreshCw,{size:12}),"Status"]}),(0,b.jsx)(a9,{open:"status"===t,onClose:()=>u(null),anchorRef:w,children:(0,b.jsx)("div",{className:"flex max-h-48 w-44 flex-col overflow-y-auto",children:m.map(a=>(0,b.jsx)("button",{type:"button",className:"w-full rounded-lg px-3 py-1.5 text-left text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:()=>{k(a.value),u(null)},children:a.label},a.value))})})]}),(0,b.jsxs)("button",{type:"button",className:B,onClick:d,title:"Group selected",children:[(0,b.jsx)(a8.FolderPlus,{size:12}),"Group"]}),(0,b.jsx)("div",{className:"mx-1 h-4 w-px bg-[var(--card-border)]"}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:e,"aria-label":"Clear selection",children:(0,b.jsx)(q.X,{size:14})})]})})}var bb=a.i(908225);let bc=(0,d.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1}),bd={todo:"bg-zinc-400",in_progress:"bg-amber-400",done:"bg-emerald-400",cancelled:"bg-red-400"};function be({item:a,run:d,participants:e,itemStatusOptions:f,itemStatusUpdating:g,onItemStatusChange:h,onBack:k}){let{messages:l,setMessages:m,sendMessage:n,loadHistory:o,stop:q}=(0,A.useGroupChat)(d.threadId),{processes:r,streaming:s,chatRuns:t}=(0,B.useProcessPolling)(d.rootMessageId?{workspaceId:d.threadId,threadId:d.rootMessageId}:{workspaceId:d.threadId},{messages:l,setMessages:m}),u=(0,c.useMemo)(()=>{let a=t[0];if(!a)return an(d);let b={queued:"queued",running:"running",awaiting_user:"running",blocked:"running",completed:"success",failed:"failed",cancelled:"cancelled"}[a.status]??d.status;return an({...d,status:b})},[t,d]);(0,c.useEffect)(()=>{o()},[o,d.threadId]);let v=(0,c.useMemo)(()=>new Map(e.map(a=>[a.id,a])),[e]),w=(0,c.useRef)(null),[x,y]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let a=w.current;if(!a)return;let b=()=>{let{scrollTop:b,scrollHeight:c,clientHeight:d}=a;y(c-b-d>200)};return a.addEventListener("scroll",b,{passive:!0}),()=>a.removeEventListener("scroll",b)},[]);let z=(0,c.useCallback)(()=>{let a=w.current;a&&a.scrollTo({top:a.scrollHeight,behavior:"smooth"})},[]),D=(0,c.useRef)(0);(0,c.useEffect)(()=>{l.length>D.current&&w.current?.scrollTo({top:w.current.scrollHeight,behavior:"smooth"}),D.current=l.length},[l.length]);let E=new Set(["queued","running","awaiting_user","blocked"]),F=t.some(a=>E.has(a.status))||r.some(a=>"spawning"===a.state||"running"===a.state)?t.some(a=>"queued"===a.status)?"queued":"working":"ready",G=(0,c.useCallback)((a,b,c,f,g,h,i)=>{d.rootMessageId&&n(a,b,void 0,d.rootMessageId,c,void 0,(0,O.orderParticipantIds)(e.map(a=>a.id),g),d.projectSlug??void 0,h,i)},[e,d.projectSlug,d.rootMessageId,n]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[k&&(0,b.jsx)("button",{type:"button",onClick:k,className:"shrink-0 rounded p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"Back to sessions",children:(0,b.jsx)(i.ChevronLeft,{size:16})}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:ao(d)})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,b.jsx)(av,{status:a.status,options:f,disabled:0===f.length,updating:g,onChange:b=>h(a,b)}),(0,b.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${aq[u.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ar[u.tone]}`}),(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:u.label})]}),null!=d.durationMs&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(j.Clock,{size:14}),(0,b.jsxs)("span",{children:[(d.durationMs/1e3).toFixed(1),"s"]})]}),(0,b.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,b.jsx)("img",{src:aP(d.agentId,v.get(d.agentId)?.color),alt:d.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,b.jsx)("span",{className:"pr-1 text-xs font-medium",children:d.agentName})]})]})]}),(0,b.jsx)("div",{ref:w,className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===l.length?(0,b.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===d.status||"running"===d.status?"Starting session...":"No thread messages yet."}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[l.map(a=>{let c=a.participantId?v.get(a.participantId):null,e=(0,J.stripMarkers)(a.content);if(!e.trim())return null;let f=a.participantId??d.agentId;return(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===a.role?(0,b.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,b.jsx)(p.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:aP(f,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:"user"===a.role?(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-sm font-semibold",style:{color:c?.color??"var(--foreground)"},children:c?.name??d.agentName}),(0,b.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,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(a.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===a.role?(0,b.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,b.jsx)(C.Markdown,{content:e,isUser:!0})}):(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(C.Markdown,{content:e,isUser:!1})})]})]},a.id)}),Object.entries(s).filter(([,a])=>!d.rootMessageId||a.rootMessageId===d.rootMessageId).map(([a])=>{let c=v.get(a);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:aP(a,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??d.agentName," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)(bb.JumpToLatestButton,{visible:x&&l.length>10,onClick:z,offsetClassName:"bottom-40"}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:d.rootMessageId?(0,b.jsx)(bc,{onSend:G,onStop:q,participants:e,projectId:d.projectId??void 0,projectSlug:d.projectSlug??void 0,loading:"ready"!==F,commands:[],activityStatus:F,placeholder:"Continue this session...",initialPinnedParticipantId:d.agentId}):(0,b.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the session to start..."})})]})}function bf({trackerType:a,projectId:d,projectSlug:g,initialShowSettings:i,initialGroupId:j}){let p,s,{isTouchLayout:t}=(0,K.useInputCapabilities)(),{connected:u,loading:A,user:B,clis:C,mcpConfigured:D,connect:E,connectWithKey:F,disconnect:G,configureMcp:H}=(0,x.useTrackerConnection)(a,d??""),J=(0,c.useRef)(null),[O,Q]=(0,c.useState)(i??!1),[R,S]=(0,c.useState)(!1),[T,U]=(0,c.useState)(()=>(0,M.loadLinearTicketPanelWidth)()||576),[V,W]=(0,c.useState)(""),[X,Y]=(0,c.useState)(""),[Z,$]=(0,c.useState)(!1),[_,aa]=(0,c.useState)([]),[ab,ac]=(0,c.useState)([]),[ad,ae]=(0,c.useState)([]),[af,ag]=(0,c.useState)([]),[ah,ai]=(0,c.useState)([]),[aj,ak]=(0,c.useState)([]),[aq,ar]=(0,c.useState)("Group"),[av,ax]=(0,c.useState)(""),[ay,az]=(0,c.useState)(""),[aA,aB]=(0,c.useState)("activity"),[aC,aD]=(0,c.useState)("desc"),[aE,aF]=(0,c.useState)([]),[aG,aH]=(0,c.useState)(()=>new Set),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)(null),[aM,aN]=(0,c.useState)(new Set),{participants:aR}=(0,aY.useTrackerParticipants)(a,d),{issueActiveAgents:aS}=function(a,b){let[d,e]=(0,c.useState)(new Map);return(0,c.useEffect)(()=>{let c=!1;async function d(){try{let d=new URLSearchParams;b&&d.set("projectId",b);let f=await fetch(`/api/trackers/${a}/active-agents?${d}`);if(!f.ok||c)return;let g=await f.json(),h=new Map;for(let a of g.agents??[]){let b=h.get(a.issueId)??[];b.push({agentId:a.agentId,agentName:a.agentName}),h.set(a.issueId,b)}c||e(h)}catch{}}d();let f=setInterval(()=>void d(),5e3);return()=>{c=!0,clearInterval(f)}},[a,b]),{issueActiveAgents:d}}(a,d),{issueStats:aT}=function(a,b){let[d,e]=(0,c.useState)(new Map);return(0,c.useEffect)(()=>{let c=!1;async function d(){try{let d=new URLSearchParams;b&&d.set("projectId",b);let f=await fetch(`/api/trackers/${a}/stats?${d}`);if(!f.ok||c)return;let g=await f.json(),h=new Map;for(let a of g.stats??[])h.set(a.issueId,{sessions:a.sessions,messages:a.messages});c||e(h)}catch{}}d();let f=setInterval(()=>void d(),1e4);return()=>{c=!0,clearInterval(f)}},[a,b]),{issueStats:d}}(a,d),[aU,aV]=(0,c.useState)(null),[aW,aZ]=(0,c.useState)(null),[a$,a0]=(0,c.useState)("runs"),a1=(0,c.useRef)(null),a4=(0,c.useRef)(!0),a8=(0,c.useRef)(null),a9=(0,c.useRef)(null),{getSelection:bc,pushSelection:bf,replaceSelection:bg}=(0,r.useUrlSelection)(),bh=bc("issue"),bi=bc("run"),bj=bc("group"),{groups:bk,createGroup:bl,updateGroup:bm,deleteGroup:bn,addTasksToGroup:bo,removeTaskFromGroup:bp,refetch:bq}=function(a){let[b,d]=(0,c.useState)([]),[e,f]=(0,c.useState)(!1),g=(0,c.useCallback)(async()=>{if(a){f(!0);try{let b=await fetch(`/api/task-groups?project_id=${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to fetch groups");let c=await b.json();d(c.groups??[])}catch(a){console.error("useTaskGroups fetch error:",a)}finally{f(!1)}}},[a]);(0,c.useEffect)(()=>{g()},[g]);let h=(0,c.useCallback)(async(b,c)=>{if(!a)return null;try{let d=await fetch("/api/task-groups",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:a,name:b,task_ids:c})});if(!d.ok)throw Error("Failed to create group");let e=await d.json();return await g(),e.group}catch(a){return console.error("createGroup error:",a),null}},[a,g]),i=(0,c.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/task-groups/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)})).ok)throw Error("Failed to update group");await g()}catch(a){console.error("updateGroup error:",a)}},[g]),j=(0,c.useCallback)(async a=>{try{if(!(await fetch(`/api/task-groups/${a}`,{method:"DELETE"})).ok)throw Error("Failed to delete group");await g()}catch(a){console.error("deleteGroup error:",a)}},[g]),k=(0,c.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/task-groups/${a}/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_ids:b})})).ok)throw Error("Failed to assign tasks");await g()}catch(a){console.error("addTasksToGroup error:",a)}},[g]),l=(0,c.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/task-groups/${a}/tasks?task_id=${encodeURIComponent(b)}`,{method:"DELETE"})).ok)throw Error("Failed to remove task");await g()}catch(a){console.error("removeTaskFromGroup error:",a)}},[g]);return{groups:b,isLoading:e,refetch:g,createGroup:h,updateGroup:i,deleteGroup:j,addTasksToGroup:k,removeTaskFromGroup:l}}(d),[br,bs]=(0,c.useState)(new Set),[bt,bu]=(0,c.useState)(!1),[bv,bw]=(0,c.useState)([]),[bx,by]=(0,c.useState)(null),bz=(0,aO.useSensors)((0,aO.useSensor)(aO.PointerSensor,{activationConstraint:{distance:8}})),[bA,bB]=(0,c.useState)(null),bC=(0,c.useCallback)(a=>{bs(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),bD=(0,c.useCallback)(async a=>{bv.length<2||(await bl(a,bv),bw([]),bu(!1),by(null),bs(new Set))},[bv,bl]),bE=(0,c.useRef)([]),bF=(0,c.useRef)(null),bG=(0,c.useCallback)(()=>{let a=Array.from(br),b=bE.current.find(a=>br.has(a.id));bw(a),by(b?.id??a[0]??null),bu(!0)},[br]),bH=bk.find(a=>a.id===bj),bI=(0,c.useMemo)(()=>new Set(bk.flatMap(a=>a.task_ids)),[bk]),bJ=(0,c.useCallback)(a=>{bB(a.active.id)},[]),bK=(0,c.useCallback)(async a=>{bB(null);let{active:b,over:c}=a,d=b.id;if(bt){let a=bv.includes(d);if(!c||b.id===c.id){a&&bw(a=>{let b=a.filter(a=>a!==d);return b.length<2?(bu(!1),by(null),[]):b});return}let e=c.id,f=e===a3||bv.includes(e);a&&!f?bw(a=>{let b=a.filter(a=>a!==d);return b.length<2?(bu(!1),by(null),[]):b}):a||bw(a=>[...a,d]);return}if(!c||b.id===c.id)return;let e=c.id;if(e.startsWith(a6)){let a=e.slice(a6.length),b=bE.current.find(a=>a.id===d),c=bE.current.find(b=>b.status===a)?.statusCategory;b&&b.status!==a&&await bF.current?.(b,a,c);return}let f=bE.current.find(a=>a.id===d),g=bE.current.find(a=>a.id===e);if(f&&g&&f.status!==g.status)return void await bF.current?.(f,g.status,g.statusCategory);let h=bk.find(a=>a.id===e);if(h)return void await bo(h.id,[d]);let i=!bI.has(e);if(!bI.has(d)&&i){bw([d,e]),by(e),bu(!0);return}let j=bk.find(a=>a.task_ids.includes(d));j&&i&&await bp(j.id,d)},[bk,bI,bo,bp,bt,bv]),bL=(0,c.useCallback)(a=>{W(a),a1.current&&clearTimeout(a1.current),a1.current=setTimeout(()=>Y(a),300)},[]),bM=(0,c.useCallback)(a=>{aH(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[a,g]);(0,c.useEffect)(()=>()=>{a1.current&&clearTimeout(a1.current)},[]),(0,c.useEffect)(()=>{let a={...L};a4.current=!0,W(a.search),Y(a.search),ag(a.assigneeIds),ai(a.statusCategories),az(j??a.groupIds?.[0]??""),ax(j??a.groupIds?.[0]??""),aB(a.sortBy),aD(a.sortDir),aF(a.labelNames??[]),aH(new Set)},[a,g,j]),(0,c.useEffect)(()=>{if(a4.current){a4.current=!1;return}},[a,g,V,af,ah,ay,av,aE,aA,aC]),(0,c.useEffect)(()=>{if(!u||!d)return;let b=!1;$(!1);let c=new URLSearchParams;return c.set("projectId",d),g&&c.set("projectSlug",g),fetch(`/api/trackers/${a}/options?${c.toString()}`).then(a=>a.json()).then(a=>{b||(aa(Array.isArray(a.assignees)?a.assignees:[]),ac(Array.isArray(a.statuses)?a.statuses.map(a=>({value:a.name,label:a.name})):[]),ae(Array.isArray(a.teams)?a.teams:[]),ak(Array.isArray(a.groups)?a.groups:[]),a.groupLabel&&ar(a.groupLabel),$(!0))}).catch(()=>{b||(aa([]),ac([]),ae([]),ak([]),$(!0))}),()=>{b=!0}},[u,a,d,g]),(0,c.useEffect)(()=>{if(!Z)return;let a=af.filter(a=>_.some(b=>b.id===a));a.length!==af.length&&ag(a)},[_,Z,af]),(0,c.useEffect)(()=>{if(!Z)return;let a=ab.map(a=>a.value),b=ah.filter(b=>a.includes(b));b.length!==ah.length&&ai(b)},[Z,ah,ab]),(0,c.useEffect)(()=>{if(Z){if(ad.length<=1&&ay)return void az("");ay&&!ad.some(a=>a.id===ay)&&az("")}},[Z,ay,ad]),(0,c.useEffect)(()=>{Z&&av&&!aj.some(a=>a.id===av)&&ax("")},[aj,Z,av]);let{items:bN,loading:bO,hasMore:bP,loadMore:bQ,refresh:bR,updateItem:bS}=function(a,b,d,e){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!0),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1),n=(0,c.useRef)(j),o=(0,c.useRef)(!1);n.current=j;let p=`/api/trackers/${encodeURIComponent(a)}/items`,q=e.projectId?function(a,b,c){let d={};for(let a of Object.keys(c).sort()){let b=c[a];if(null!=b&&""!==b&&!1!==b)if(Array.isArray(b)){if(!b.length)continue;d[a]=[...b].map(String).sort()}else d[a]=b}return`${a}:${b}:${JSON.stringify(d)}`}(a,e.projectId,{statuses:b.statuses,statusCategories:b.statusCategories,search:b.search,assigneeIds:b.assigneeIds,groupIds:b.groupIds,sortBy:b.sortBy,sortDir:b.sortDir,hasActivity:b.hasActivity,limit:e.limit}):null,r=(0,c.useRef)(q);r.current=q;let s=(0,c.useCallback)(async a=>{if(d&&e.projectId){i(!0);try{let c=new URLSearchParams;if(c.set("projectId",e.projectId),b.statuses?.length)for(let a of b.statuses)c.append("status",a);if(b.statusCategories?.length)for(let a of b.statusCategories)c.append("statusCategory",a);if(b.search&&c.set("search",b.search),b.assigneeIds?.length)for(let a of b.assigneeIds)c.append("assigneeId",a);if(b.groupIds?.length)for(let a of b.groupIds)c.append("groupId",a);b.sortBy&&c.set("sortBy",b.sortBy),b.sortDir&&c.set("sortDir",b.sortDir),b.hasActivity&&c.set("hasActivity","true"),a&&n.current&&c.set("cursor",n.current),e.limit&&c.set("limit",String(e.limit));let d=await fetch(`${p}?${c.toString()}`),f=await d.json(),h=f.items??[];g(b=>a?[...b,...h]:h);let i=f.pageInfo?.endCursor??null,j=f.pageInfo?.hasNextPage??!1;k(i),m(j),o.current=!0,!a&&r.current&&w(r.current,{items:h,endCursor:i,hasNextPage:j,savedAt:Date.now()})}catch{a||g([])}finally{i(!1)}}},[p,b.statuses,b.statusCategories,b.search,b.assigneeIds,b.groupIds,b.sortBy,b.sortDir,b.hasActivity,d,e.projectId,e.limit]);(0,c.useEffect)(()=>{let a=!1;return k(null),o.current=!1,d&&q&&v(q).then(b=>{a||!b||o.current||(g(b.items),k(b.endCursor),m(b.hasNextPage),i(!1))}),s(!1),()=>{a=!0}},[s,q,d]);let t=(0,c.useCallback)(()=>s(!0),[s]);return{items:f,loading:h,hasMore:l,loadMore:t,refresh:(0,c.useCallback)(()=>(k(null),s(!1)),[s]),updateItem:(0,c.useCallback)(a=>{g(b=>b.map(b=>b.id===a.id?a:b))},[])}}(a,(0,c.useMemo)(()=>({search:X||void 0,statuses:ah.length>0&&ah.length<ab.length?ah:void 0,assigneeIds:af.length>0?af:void 0,groupIds:av?[av]:void 0,sortBy:aA,sortDir:aC}),[X,af,av,ah,ab.length,aA,aC]),u&&Z&&!!d,{projectId:d??""}),{metadataMap:bT,refresh:bU}=function(a,b,d){let[e,f]=(0,c.useState)(new Map),[g,h]=(0,c.useState)(!1),i=(0,c.useRef)(""),j=(0,c.useCallback)(async()=>{if(!b||0===d.length)return void f(new Map);h(!0);try{let c=await fetch(`/api/trackers/${encodeURIComponent(a)}/metadata/bulk?projectId=${encodeURIComponent(b)}&issueIds=${d.map(encodeURIComponent).join(",")}`),e=await c.json(),g=new Map;for(let[a,b]of Object.entries(e))g.set(a,{labels:Array.isArray(b.labels)?b.labels:[],estimate:"number"==typeof b.estimate?b.estimate:null});f(g)}catch{}h(!1)},[a,b,d]);return(0,c.useEffect)(()=>{let a=d.join(",");a!==i.current&&(i.current=a,j())},[j,d]),{metadataMap:e,loading:g,refresh:j}}(a,d,(0,c.useMemo)(()=>bN.map(a=>a.id),[bN])),{labels:bV,definitions:bW,refresh:bX,createDefinition:bY}=al(a,d),bZ=(0,c.useMemo)(()=>bh?bN.find(a=>a.id===bh)??null:null,[bN,bh]),b$=bZ??(aI?.id===bh?aI:null),b_=(0,c.useMemo)(()=>{if(0===aG.size)return bN;let a=[],b=[];for(let c of bN)aG.has(c.id)?a.push(c):b.push(c);return[...a,...b]},[bN,aG]);bE.current=b_;let b0=(0,c.useDeferredValue)(aE),b1=(0,c.useMemo)(()=>{if(0===b0.length)return b_;let a=new Set(b0),b=[];for(let c of b_){let d=bT.get(c.id)?.labels;if(d){for(let e of d)if(a.has(e)){b.push(c);break}}}return b},[b_,b0,bT]),b2=(0,c.useMemo)(()=>{let a=new Map;for(let b of b1){let c=a.get(b.status);c||(c={status:b.status,category:b.statusCategory,items:[]},a.set(b.status,c)),c.items.push(b)}let b={in_progress:0,todo:1,done:2,cancelled:3};return[...a.values()].sort((a,c)=>(b[a.category]??1)-(b[c.category]??1))},[!0,b1]),{runs:b3,loading:b4,loadedForIssueId:b5,createRun:b6,updateRun:b7}=y(a,b$?.id??null,d??null),{scripts:b8,activeScriptId:b9,activeScript:ca,setActiveScriptId:cb,saveScript:cc,deleteScript:cd}=function(a,b){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(null);(0,c.useEffect)(()=>{let a={...z};e(a.scripts),g(a.activeScriptId)},[a,b]);let h=(0,c.useCallback)((a,b)=>{e(a),g(b)},[a,b]),i=(0,c.useCallback)(a=>{let b=a&&d.some(b=>b.id===a)?a:null;h(d,b)},[h,d]),j=(0,c.useCallback)(a=>{let b=new Date().toISOString(),c=a.name.trim(),e=a.prompt.trim();if(!c||!e)throw Error("Run script name and prompt are required.");let f=a.id?d.find(b=>b.id===a.id):null,g=f?{...f,name:c,prompt:e,updatedAt:b}:{id:crypto.randomUUID(),name:c,prompt:e,createdAt:b,updatedAt:b};return h([...f?d.map(a=>a.id===f.id?g:a):[g,...d]].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)),g.id),g},[h,d]),k=(0,c.useCallback)(a=>{h(d.filter(b=>b.id!==a),f===a?null:f)},[f,h,d]),l=(0,c.useMemo)(()=>d.find(a=>a.id===f)??null,[f,d]);return{scripts:d,activeScriptId:f,activeScript:l,setActiveScriptId:i,saveScript:j,deleteScript:k}}(a,g),ce=bi?b3.find(a=>a.id===bi)??null:null,cf=bh&&!bi?(0,N.loadLastRunForIssue)(bh):null,cg=!!cf&&J.current!==bh,ch=(0,c.useMemo)(()=>_.map(a=>({value:a.id,label:a.name})),[_]),ci=(0,c.useMemo)(()=>ab.map(a=>({value:a.value,label:a.label})),[ab]),cj=(0,c.useMemo)(()=>{let a=ab.map(a=>({value:a.label,label:a.label})),b=new Set(a.map(a=>a.value)),c=b$?.status?.trim();return c&&!b.has(c)&&a.unshift({value:c,label:c}),a},[b$?.status,ab]),ck=(0,c.useMemo)(()=>[{value:"",label:"Workspace"},...ad.map(a=>({value:a.id,label:a.name}))],[ad]),cl=(0,c.useMemo)(()=>[{value:"",label:aq},...aj.map(a=>({value:a.id,label:a.name}))],[aj,aq]),cm=ci.length>0,cn=cl.length>1,co=ck.length>2,cp=ca?.name??"AGX default",cq=(0,c.useMemo)(()=>bV.map(a=>({value:a.name,label:a.name})),[bV]),cr=(0,c.useCallback)(async(b,c)=>{if(!d)return;let e=bT.get(b)?.labels??[],f=e.includes(c)?e.filter(a=>a!==c):[...e,c];try{await fetch(`/api/trackers/${a}/metadata?projectId=${encodeURIComponent(d)}&issueId=${encodeURIComponent(b)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({labels:f})}),bU(),bX()}catch{}},[d,a,bT,bU,bX]),cs=(0,c.useCallback)(async a=>{d&&await bY(a)},[d,bY]),ct=(0,c.useCallback)(async(b,c,e)=>{let f=c.trim();if(!f||f===b.status||!d)return;let g={...b,status:f,statusCategory:e??b.statusCategory};bS(g),bh===b.id&&aJ(g),aL(b.id);try{let c=await fetch(`/api/trackers/${a}/items/${encodeURIComponent(b.id)}?projectId=${encodeURIComponent(d??"")}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:f})}),e=await c.json().catch(()=>({}));if(!c.ok||!e.item)throw Error(e.error||"Failed to update ticket status");let g=e.item;bS(g),bh===g.id&&aJ(g),await bR()}catch(a){bS(b),bh===b.id&&aJ(b),a instanceof Error&&window.alert(a.message)}finally{aL(a=>a===b.id?null:a)}},[bR,bh,bS,a,d]);bF.current=ct;let cu=(0,c.useCallback)(async(b,c,e,f)=>{let h=f??aR[0]?.id;if(h)try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee?.name??null,agentId:h,scriptName:c,scriptPrompt:e})})}catch(a){console.error(`Failed to start ${c} for ${b.identifier}:`,a)}},[aR,a,d,g]),cv=(0,c.useCallback)(async()=>{let b=Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean);if(0===b.length||0===aR.length)return;let c=aR[0];for(let e of b)try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee?.name??null,agentId:c.id,scriptName:"Recap",scriptPrompt:"Summarize recent activity and current state of this ticket. Focus on: what was done, what's outstanding, and any blockers."})})}catch(a){console.error(`Failed to start recap for ${e.identifier}:`,a)}bs(new Set)},[br,bN,aR,a,d,g]),cw=(0,c.useCallback)(async(b,c)=>{for(let e of Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean))try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee?.name??null,agentId:c,scriptPrompt:b})})}catch(a){console.error(`Failed to send prompt for ${e.identifier}:`,a)}bs(new Set)},[br,bN,a,d,g]),cx=(0,c.useCallback)(async()=>{let b=Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean);if(0===b.length||0===aR.length)return;let c=aR[0];for(let e of b)try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee?.name??null,agentId:c.id,scriptName:"Estimate",scriptPrompt:"Assess the complexity and scope of this ticket and assign a Fibonacci story-point estimate (1, 2, 3, 5, 8, 13, or 21). Consider: required investigation, files likely to change, unknowns, and testing effort. Briefly justify the number, then set the estimate using the available tooling."})})}catch(a){console.error(`Failed to start estimate for ${e.identifier}:`,a)}bs(new Set)},[br,bN,aR,a,d,g]),cy=(0,c.useCallback)(async b=>{let c=Array.from(br);if(0!==c.length&&d)try{await fetch(`/api/trackers/${a}/metadata/bulk`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d,issueIds:c,action:"add_labels",payload:{labels:[b]}})}),bU(),bX()}catch{}},[br,d,a,bU,bX]),cz=(0,c.useCallback)(async b=>{let c=Array.from(br);if(0!==c.length&&d)try{await fetch(`/api/trackers/${a}/metadata/bulk`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d,issueIds:c,action:"remove_label",payload:{label:b}})}),bU(),bX()}catch{}},[br,d,a,bU,bX]),[cA,cB]=(0,c.useState)(!1),cC=(0,c.useCallback)(async a=>{let b=Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean);if(0!==b.length){for(let c of(cB(!0),b))await ct(c,a);cB(!1),bs(new Set)}},[br,bN,ct]),cD=(0,c.useCallback)(async a=>{d&&await bY(a)},[d,bY]),cE=(0,c.useCallback)(b=>({statusOptions:cj,onRecap:()=>{let c=d?`?projectId=${encodeURIComponent(d)}`:"";fetch(`/api/trackers/${encodeURIComponent(a)}/items/${encodeURIComponent(b.id)}/recap${c}`,{method:"POST"}).then(()=>{window.dispatchEvent(new CustomEvent("tracker:recap-triggered",{detail:{trackerType:a,issueId:b.id}}))})},onPrompt:(a,c)=>{cu(b,"Prompt",a,c)},onEstimate:()=>{cu(b,"Estimate","Assess the complexity and scope of this ticket and assign a Fibonacci story-point estimate (1, 2, 3, 5, 8, 13, or 21). Consider: required investigation, files likely to change, unknowns, and testing effort. Briefly justify the number, then set the estimate using the available tooling.")},onStatus:a=>{ct(b,a)}}),[cj,cu,ct,a,d]),cF=(0,c.useMemo)(()=>{let a=new Map;for(let b of br){let c=bT.get(b);a.set(b,c??{labels:[],estimate:null})}return a},[br,bT]);(0,c.useEffect)(()=>{if(!bh||!d)return void aJ(null);if(bZ)return void aJ(a=>a?.id===bh?bZ:null);let b=!1;return(async()=>{try{let c=await fetch(`/api/trackers/${a}/items/${encodeURIComponent(bh)}?projectId=${encodeURIComponent(d??"")}`);if(b)return;if(404===c.status)return void aJ(null);if(!c.ok)throw Error(`Failed to fetch selected tracker ticket: ${c.status}`);let e=await c.json().catch(()=>({}));if(!e.item?.id)return void aJ(null);aJ(e.item)}catch(a){b||console.error("Failed to hydrate selected tracker item",a)}})(),()=>{b=!0}},[bg,bZ,bh,a,d]),(0,c.useEffect)(()=>{if(!bh){bi&&bg({run:null});return}},[bg,bh,bi]),(0,c.useEffect)(()=>{b$&&bi&&!b4&&(b3.some(a=>a.id===bi)||bg({run:null}))},[bg,b3,b4,b$,bi]),(0,c.useEffect)(()=>{bh&&bi&&(0,N.persistLastRunForIssue)(bh,bi)},[bh,bi]),(0,c.useEffect)(()=>{cg&&!b4&&b5===bh&&(J.current=bh,cf&&b3.some(a=>a.id===cf)&&bg({run:cf}))},[cg,cf,bh,b3,b4,b5,bg]),(0,c.useEffect)(()=>{if(t){if(!b$)return void a0("runs");if(ce||0===b3.length)return void a0("ticket");a0("runs")}},[t,b3.length,b$,ce]),(0,c.useEffect)(()=>{if(!R)return;let a=a=>{let b=a.target;a9.current?.contains(b)||a8.current?.contains(b)||S(!1)},b=a=>{"Escape"===a.key&&S(!1)};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",b)}},[R]);let cG=(0,c.useCallback)(async(b,c)=>{aV(null),aZ(null);try{let e=await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee?.name??null,agentId:c.id,scriptName:ca?.name,scriptPrompt:ca?.prompt})}),f=await e.json().catch(()=>({}));if(!e.ok||!f.run||!f.chatRunId||!f.userMessageId)throw Error(f.error||"Failed to start scripted session");bf({issue:b.id,run:f.run.id})}catch(a){console.error("Failed to start scripted tracker session:",a),a instanceof Error&&window.alert(a.message)}},[ca,d,g,bf,a]),cH=(0,c.useCallback)((a,b)=>{if(S(!1),0===aR.length)return void window.alert("Add at least one agent to this project before starting a scripted session.");if(1===aR.length)return void cG(a,aR[0]);let c=b?.currentTarget?.getBoundingClientRect();aV(a),aZ(c?{top:c.bottom+4,left:c.left}:{top:200,left:200})},[cG,aR]),cI=(0,c.useRef)(null),cJ=(0,c.useRef)(null),cK=(0,c.useRef)(null),[cL,cM]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let a=[cJ.current,cK.current].filter(Boolean);if(0===a.length)return;let b=a=>{cM(a.currentTarget.scrollTop>400)};return a.forEach(a=>a.addEventListener("scroll",b,{passive:!0})),()=>a.forEach(a=>a.removeEventListener("scroll",b))},[t]);let cN=(0,c.useCallback)(()=>{let a=cJ.current??cK.current;a?.scrollTo({top:0,behavior:"smooth"})},[]);return((0,c.useEffect)(()=>{let a=cI.current;if(!a||!bP)return;let b=new IntersectionObserver(a=>{a[0]?.isIntersecting&&bQ()},{threshold:.1});return b.observe(a),()=>b.disconnect()},[bP,bQ]),u)?(0,b.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[t?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.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,b.jsx)(m.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:V,onChange:a=>bL(a.target.value)})]}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void bR(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:bO,children:(0,b.jsx)(l.RefreshCw,{size:16,className:bO?"animate-spin":void 0})}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{S(!1),Q(!0)},title:"Tracker settings",children:(0,b.jsx)(n.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 pb-2",children:[cn?(0,b.jsx)(au,{label:aq,value:av,options:cl,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ax}):null,cm?(0,b.jsx)(aw,{label:"Status",values:ah,options:ci,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:ai,emptyLabel:"All statuses"}):null,(0,b.jsx)(aw,{label:"Assignee",values:af,options:ch,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ag,emptyLabel:"All assignees"}),cq.length>0&&(0,b.jsx)(aw,{label:"Label",values:aE,options:cq,activeClasses:"border-pink-500/30 bg-pink-500/10 text-pink-400",onChange:aF,emptyLabel:"All labels"}),co?(0,b.jsx)(au,{label:"Workspace",value:ay,options:ck,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:az}):null,(0,b.jsx)(au,{label:"Sort",value:aA,options:[{value:"activity",label:"Updated At"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created At"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>aB(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===aC?"Descending":"Ascending",onClick:()=>aD(a=>"desc"===a?"asc":"desc"),children:"desc"===aC?(0,b.jsx)(e.ArrowDown,{size:12}):(0,b.jsx)(f.ArrowUp,{size:12})})]})]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,b.jsx)("div",{ref:cK,className:"flex-1 overflow-y-auto",children:bO&&0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[b2.map(a=>{let d=aM.has(a.status);return(0,b.jsxs)(c.default.Fragment,{children:[(0,b.jsx)(a7,{status:a.status,categoryColor:bd[a.category]??"bg-zinc-400",count:a.items.length,collapsed:d,onToggle:()=>aN(b=>{let c=new Set(b);return c.has(a.status)?c.delete(a.status):c.add(a.status),c})}),!d&&a.items.map(a=>(0,b.jsx)(aQ,{item:a,selected:b$?.id===a.id,pinned:aG.has(a.id),activeAgents:aS.get(a.id),participants:aR,projectSlug:g,stats:aT.get(a.id),hideStatus:!0,estimate:bT.get(a.id)?.estimate,localLabels:bT.get(a.id)?.labels,labelDefinitions:bW,allLabels:bV,onToggleLabel:b=>cr(a.id,b),onAddLabel:cs,onSelect:()=>{a0("runs"),bf({issue:a.id,run:null})},onTogglePin:()=>bM(a.id),rowActions:cE(a),showGroup:!av},a.id))]},`sg-${a.status}`)}),bP?(0,b.jsx)("div",{ref:cI,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:bO?"Loading...":"Load more"}):null]})}),(0,b.jsx)(bb.JumpToLatestButton,{visible:cL&&bN.length>20,direction:"top",onClick:cN})]})]}),b$?(0,b.jsxs)("div",{className:"absolute inset-0 z-20 flex flex-col bg-[var(--background)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:b$.identifier}),(0,b.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:b$.title})]}),(0,b.jsx)("button",{type:"button",className:"rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>bg({issue:null,run:null}),"aria-label":"Close ticket panel",children:(0,b.jsx)(q.X,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"runs"===a$?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>a0("runs"),children:"Runs"}),(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"ticket"===a$?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>a0("ticket"),children:"Ticket"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:"runs"===a$?(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Sessions"}),(0,b.jsxs)("button",{ref:a8,type:"button",className:"inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-40",onClick:()=>{S(!1),a0("ticket"),bf({run:null})},title:"Open a fresh chat for this ticket. You can choose or edit the session script in the ticket tab.","aria-label":"New session",disabled:!b$,children:[(0,b.jsx)(k.Plus,{size:12}),"New session"]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:b4&&0===b3.length||cg?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===b3.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):b3.map(a=>{let c=an(a);return(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${ce?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>{a0("ticket"),bf({run:a.id})},children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]",children:ao(a)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(a.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,b.jsx)("span",{className:`font-medium ${as[c.tone]}`,children:c.label}),(0,b.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:a.agentName})]}),null!=a.durationMs?(0,b.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(a.durationMs/1e3).toFixed(1),"s"]}):null]},a.id)})})]}):ce?(0,b.jsx)(be,{item:b$??{id:ce.issueId,identifier:ce.issueIdentifier,title:ce.issueTitle,status:ce.issueStatus,statusCategory:"todo",labels:[],trackerId:"",trackerType:a,assignee:ce.issueAssignee?{id:"",name:ce.issueAssignee}:void 0,updatedAt:ce.updatedAt,createdAt:ce.updatedAt,url:""},run:ce,participants:aR,itemStatusOptions:cj,itemStatusUpdating:aK===ce.issueId,onItemStatusChange:ct,onBack:()=>bg({run:null})}):cg?null:0===aR.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add an agent team so you can pick a ticket and start shipping."}):(0,b.jsx)(aX,{item:b$,trackerType:a,runs:b3,participants:aR,projectId:d,projectSlug:g,itemStatusOptions:cj,itemStatusUpdating:aK===b$.id,onItemStatusChange:ct,activeSessionScriptLabel:cp,onOpenSessionScripts:()=>S(!0),onStartScriptedSession:a=>cH(b$,a),createRun:b6,updateRun:b7,onRunCreated:a=>bf({run:a}),onSelectRun:a=>bf({run:a})},b$.id)})]}):null]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:T},children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.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,b.jsx)(m.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:V,onChange:a=>bL(a.target.value)})]}),(0,b.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 bR(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:bO,children:(0,b.jsx)(l.RefreshCw,{size:16,className:bO?"animate-spin":void 0})}),(0,b.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:()=>{S(!1),Q(!0)},title:"Tracker settings",children:(0,b.jsx)(n.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[cn?(0,b.jsx)(au,{label:aq,value:av,options:cl,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ax}):null,cm?(0,b.jsx)(aw,{label:"Status",values:ah,options:ci,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:ai,emptyLabel:"All statuses"}):null,(0,b.jsx)(aw,{label:"Assignee",values:af,options:ch,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ag,emptyLabel:"All assignees"}),cq.length>0&&(0,b.jsx)(aw,{label:"Label",values:aE,options:cq,activeClasses:"border-pink-500/30 bg-pink-500/10 text-pink-400",onChange:aF,emptyLabel:"All labels"}),co?(0,b.jsx)(au,{label:"Workspace",value:ay,options:ck,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:az}):null,(0,b.jsx)(au,{label:"Sort",value:aA,options:[{value:"activity",label:"Updated At"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created At"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>aB(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===aC?"Descending":"Ascending",onClick:()=>aD(a=>"desc"===a?"asc":"desc"),children:"desc"===aC?(0,b.jsx)(e.ArrowDown,{size:12}):(0,b.jsx)(f.ArrowUp,{size:12})}),b1.length>0&&(p=b1.length>0&&b1.every(a=>br.has(a.id)),(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] transition-colors ${p?"border-[var(--primary)]/40 bg-[var(--primary)]/10 text-[var(--primary)]":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,title:p?"Clear selection":"Select all filtered tickets",onClick:()=>{p?bs(new Set):bs(new Set(b1.map(a=>a.id)))},children:[p?(0,b.jsx)(h,{size:12}):(0,b.jsx)(o,{size:12}),p?"Clear":`Select all (${b1.length})`]}))]})]}),(0,b.jsxs)(aO.DndContext,{sensors:bz,collisionDetection:aO.closestCenter,onDragStart:bJ,onDragEnd:bK,children:[(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,b.jsxs)("div",{ref:cJ,className:"flex-1 overflow-y-auto",children:[bO&&0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[b2.map(a=>{let d=aM.has(a.status);return(0,b.jsxs)(c.default.Fragment,{children:[(0,b.jsx)(a7,{status:a.status,categoryColor:bd[a.category]??"bg-zinc-400",count:a.items.length,collapsed:d,onToggle:()=>aN(b=>{let c=new Set(b);return c.has(a.status)?c.delete(a.status):c.add(a.status),c})}),!d&&(()=>{let d=bt?new Set(bv):null,e=new Map;for(let b of bk){let c=a.items.find(a=>b.task_ids.includes(a.id));c&&e.set(c.id,b)}let f=bt?bv.map(b=>a.items.find(a=>a.id===b)).filter(Boolean).map(a=>({id:a.id,identifier:a.identifier,title:a.title,status:ap[a.status]??a.status})):[],h=new Set;return a.items.map(i=>{if(d?.has(i.id))return i.id===bx&&bt?(0,b.jsx)(a5,{tickets:f,onConfirm:bD,onCancel:()=>{bu(!1),bw([]),by(null)}},"__pending-group__"):null;let j=e.get(i.id);if(j&&!h.has(j.id)){h.add(j.id);let d=j.task_ids.map(b=>a.items.find(a=>a.id===b)).filter(Boolean);return(0,b.jsxs)(c.default.Fragment,{children:[(0,b.jsx)(a_,{groupId:j.id,name:j.name,count:d.length,collapsed:!!j.collapsed,selected:bj===j.id,projectSlug:g,onToggleCollapse:()=>bm(j.id,{collapsed:!j.collapsed}),onSelect:()=>bf({group:j.id,issue:null,run:null}),onUngroup:()=>{bn(j.id),bj===j.id&&bg({group:null})}}),!j.collapsed&&d.map((a,c)=>(0,b.jsx)(aQ,{item:a,selected:b$?.id===a.id,pinned:aG.has(a.id),activeAgents:aS.get(a.id),participants:aR,draggable:!0,multiSelected:br.has(a.id),treeConnector:c===d.length-1?"last":"mid",projectSlug:g,stats:aT.get(a.id),hideStatus:!0,estimate:bT.get(a.id)?.estimate,localLabels:bT.get(a.id)?.labels,labelDefinitions:bW,allLabels:bV,onToggleLabel:b=>cr(a.id,b),onAddLabel:cs,onSelect:b=>{b&&(b.metaKey||b.ctrlKey)?bC(a.id):bf({issue:a.id,run:null,group:null})},onTogglePin:()=>bM(a.id),rowActions:cE(a),showGroup:!av},a.id))]},`group-${j.id}`)}return bI.has(i.id)?null:(0,b.jsx)(aQ,{item:i,selected:b$?.id===i.id,pinned:aG.has(i.id),activeAgents:aS.get(i.id),participants:aR,draggable:!0,multiSelected:br.has(i.id),projectSlug:g,stats:aT.get(i.id),hideStatus:!0,estimate:bT.get(i.id)?.estimate,localLabels:bT.get(i.id)?.labels,labelDefinitions:bW,allLabels:bV,onToggleLabel:a=>cr(i.id,a),onAddLabel:cs,onSelect:a=>{a&&(a.metaKey||a.ctrlKey)?bC(i.id):bf({issue:i.id,run:null,group:null})},onTogglePin:()=>bM(i.id),rowActions:cE(i),showGroup:!av},i.id)})})()]},`sg-${a.status}`)}),bP?(0,b.jsx)("div",{ref:cI,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:bO?"Loading...":"Load more"}):null]}),(0,b.jsx)(ba,{count:br.size,onGroup:bG,onClear:()=>bs(new Set),onBulkRecap:cv,onBulkPrompt:cw,onBulkEstimate:cx,onBulkAddLabel:cy,onBulkRemoveLabel:cz,onBulkStatus:cC,statusOptions:cj,participants:aR,labels:bV,onCreateLabel:cD,selectedMetadata:cF,statusUpdating:cA})]}),(0,b.jsx)(bb.JumpToLatestButton,{visible:cL&&bN.length>20,direction:"top",onClick:cN})]}),(0,b.jsx)(aO.DragOverlay,{dropAnimation:null,children:bA&&((s=bE.current.find(a=>a.id===bA))?(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-[var(--primary)]/30 bg-[var(--card-bg)] px-4 py-2.5 text-sm shadow-xl backdrop-blur-sm",children:[(0,b.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:s.identifier}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs font-medium text-[var(--foreground)]",children:s.title})]}):null)})]})]}),(0,b.jsx)(at.ResizeHandle,{onResize:a=>U(b=>{let c=Math.max(280,Math.min(960,b+a));return(0,M.persistLinearTicketPanelWidth)(c),c})}),R?(0,b.jsx)("div",{ref:a9,className:"absolute right-6 top-16 z-20 max-h-[80vh] overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",style:{width:"min(760px, calc(100vw - 32px))"},children:(0,b.jsx)(I,{projectSlug:g,scripts:b8,activeScriptId:b9,onSetActiveScriptId:cb,onSaveScript:cc,onDeleteScript:cd})}):null,(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:ce?(0,b.jsx)(be,{item:b$??{id:ce.issueId,identifier:ce.issueIdentifier,title:ce.issueTitle,status:ce.issueStatus,statusCategory:"todo",labels:[],trackerId:"",trackerType:a,assignee:ce.issueAssignee?{id:"",name:ce.issueAssignee}:void 0,updatedAt:ce.updatedAt,createdAt:ce.updatedAt,url:""},run:ce,participants:aR,itemStatusOptions:cj,itemStatusUpdating:aK===ce.issueId,onItemStatusChange:ct,onBack:()=>bg({run:null})}):bH&&!b$?(0,b.jsx)(a2,{group:bH,items:bN,trackerType:a,participants:aR,projectId:d,projectSlug:g,onUpdateName:a=>bm(bH.id,{name:a}),onDelete:async()=>{await bn(bH.id),bg({group:null})},onSelectItem:a=>bf({issue:a,group:null,run:null}),onRunCreated:a=>bf({run:a}),onSelectRun:a=>bf({run:a})}):b$?cg?null:0===aR.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add an agent team so you can pick a ticket and start shipping."}):(0,b.jsx)(aX,{item:b$,trackerType:a,runs:b3,participants:aR,projectId:d,projectSlug:g,itemStatusOptions:cj,itemStatusUpdating:aK===b$.id,onItemStatusChange:ct,activeSessionScriptLabel:cp,onOpenSessionScripts:()=>S(!0),onStartScriptedSession:a=>cH(b$,a),createRun:b6,updateRun:b7,onRunCreated:a=>bf({run:a}),onSelectRun:a=>bf({run:a})},b$.id):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Select a ticket from the list."})})]}),O&&(0,b.jsx)(am,{trackerType:a,connected:u,user:B,clis:C,mcpConfigured:D,onConnect:E,onConnectWithKey:F,onDisconnect:G,onConfigureMcp:H,onClose:()=>Q(!1),projectId:d}),R&&t?(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50 p-4",children:(0,b.jsx)("div",{ref:a9,className:"max-h-[85vh] w-full max-w-3xl overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",children:(0,b.jsx)(I,{projectSlug:g,scripts:b8,activeScriptId:b9,onSetActiveScriptId:cb,onSaveScript:cc,onDeleteScript:cd})})}):null,aU&&aW&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{aV(null),aZ(null)}}),(0,b.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:aW.top,left:aW.left},children:[(0,b.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Pick an agent"}),aR.map(a=>(0,b.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 cG(aU,a),children:[(0,b.jsx)("img",{src:aP(a.id,a.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,b.jsxs)("span",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),a.role?(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.role}):null]})]},a.id))]})]})]}):(0,b.jsx)(P.default,{trackerType:a,projectId:d??"",connected:u,onConnect:E,onConnectWithKey:F})}a.s(["default",()=>bf],859117)}];
48
+ `+(j??""),f=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:e,threadId:c.threadId,activeParticipantIds:[m.id],projectSlug:h??void 0,routing:k})}),i=await f.json().catch(()=>({}));if(!f.ok||!i.chatRunId||!i.userMessageId)throw Error(i.error||"Failed to start chat session");await v(c.id,{chatRunId:i.chatRunId,rootMessageId:i.userMessageId}),l(c.id)}catch(a){console.error("Failed to create group chat session:",a),I.current=!1,a instanceof Error&&window.alert(a.message)}},[a,s,f,w,g,h,u,v,l]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex h-12 shrink-0 items-center gap-2 border-b border-[var(--card-border)] px-4",children:[(0,b.jsx)(a4.FolderOpen,{size:16,className:"shrink-0 text-[var(--muted-foreground)]"}),n?(0,b.jsx)("input",{type:"text",value:p,onChange:a=>q(a.target.value),onBlur:r,onKeyDown:b=>{"Enter"===b.key&&r(),"Escape"===b.key&&(q(a.name),o(!1))},autoFocus:!0,className:"min-w-0 flex-1 bg-transparent text-sm font-medium text-[var(--foreground)] outline-none border-b border-[var(--primary)]"}):(0,b.jsx)("h3",{className:"min-w-0 flex-1 truncate text-sm font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>{q(a.name),o(!0)},title:"Rename group",children:(0,b.jsx)(a7.Pencil,{size:12})}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] hover:text-red-400 transition-colors",onClick:j,title:"Delete group (ungroups tickets)",children:(0,b.jsx)(F.Trash2,{size:12})})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-64",children:[(0,b.jsxs)("section",{className:"border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"px-4 py-2 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:["Tickets (",s.length,")"]}),0===s.length?(0,b.jsx)("div",{className:"px-4 pb-4 text-center text-xs text-[var(--muted-foreground)]",children:"No tickets in this group."}):s.map(a=>(0,b.jsx)(aQ,{item:a,selected:!1,onSelect:()=>k(a.id)},a.id))]}),(0,b.jsx)(aR,{issueId:a.id,trackerType:e,projectId:g}),(0,b.jsx)(aT,{runs:t,onSelect:m})]}),f.length>0&&(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(a8,{onSend:J,onStop:()=>{},participants:f,projectId:g??void 0,projectSlug:h??void 0,loading:"ready"!==H,commands:[],activityStatus:H,placeholder:`Work on tickets in "${a.name}"...`,initialPinnedParticipantId:w?.id})})]})}let ba="__pending-group__";function bb({ticket:a,isLast:c}){let{attributes:d,listeners:e,setNodeRef:f,transform:g,isDragging:h}=(0,aO.useDraggable)({id:a.id}),i=g?{transform:`translate3d(${g.x}px, ${g.y}px, 0)`,opacity:h?.3:1,position:"relative",zIndex:h?50:void 0}:void 0;return(0,b.jsxs)("div",{ref:f,style:i,...d,...e,className:"flex items-center gap-3 pl-[48px] pr-4 py-2 text-sm cursor-grab active:cursor-grabbing",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-none text-[var(--muted-foreground)]/40 select-none",children:c?"└──":"├──"}),(0,b.jsx)("span",{className:"shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-[var(--muted-foreground)]",children:a.title}),a.status&&(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:a.status})]})}function bc({tickets:a,onConfirm:d,onCancel:e}){let[f,g]=(0,c.useState)(""),h=(0,c.useRef)(null),{setNodeRef:i,isOver:j}=(0,aO.useDroppable)({id:ba});(0,c.useEffect)(()=>{h.current?.focus()},[]);let k=(0,c.useCallback)(()=>{let b=f.trim(),c=a.map(a=>a.identifier).join(", ");d(b||c||"Untitled")},[f,d,a]);return(0,b.jsxs)("div",{ref:i,className:`mx-0 my-0 transition-colors ${j?"bg-[var(--primary)]/5":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 pl-[24px] pr-4 py-2 bg-[var(--card-bg)]/50",children:[(0,b.jsx)(U.ChevronDown,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)(a4.FolderOpen,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{ref:h,type:"text",value:f,onChange:a=>g(a.target.value),onKeyDown:a=>{"Enter"===a.key&&k(),"Escape"===a.key&&e()},placeholder:a.map(a=>a.identifier).join(", ")||"Name this group...",className:"min-w-0 flex-1 bg-transparent text-xs font-medium text-[var(--foreground)] placeholder:text-[var(--muted-foreground)]/60 outline-none border-b border-[var(--primary)]/40 pb-0.5 focus:border-[var(--primary)]"}),(0,b.jsx)("button",{type:"button",className:"rounded px-2 py-0.5 text-[10px] font-medium bg-[var(--primary)] text-[var(--primary-foreground)] hover:opacity-90 transition-opacity",onClick:k,children:"Create"}),(0,b.jsx)("button",{type:"button",className:"rounded px-2 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:e,children:"Cancel"})]}),a.map((c,d)=>(0,b.jsx)(bb,{ticket:c,isLast:d===a.length-1},c.id))]})}let bd="sg::";function be({status:a,categoryColor:c,count:d,collapsed:e,onToggle:f}){let{setNodeRef:g,isOver:h}=(0,aO.useDroppable)({id:`${bd}${a}`});return(0,b.jsxs)("div",{ref:g,className:`sticky top-0 z-[5] flex cursor-pointer items-center gap-2 border-b border-[var(--card-border)] bg-[var(--app-shell-pane)] px-4 py-2 transition-colors ${h?"bg-[var(--primary)]/10 ring-1 ring-inset ring-[var(--primary)]/30":""}`,onClick:f,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),f())},children:[e?(0,b.jsx)(V.ChevronRight,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}):(0,b.jsx)(U.ChevronDown,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:`h-2 w-2 shrink-0 rounded-full ${c}`}),(0,b.jsx)("span",{className:"text-xs font-medium text-[var(--foreground)]",children:a}),(0,b.jsx)("span",{className:"text-[10px] tabular-nums text-[var(--muted-foreground)]",children:d})]})}var bf=a.i(785630);function bg({open:a,onClose:d,anchorRef:e,children:f}){let g=(0,c.useRef)(null);return((0,c.useEffect)(()=>{if(!a)return;let b=a=>{g.current?.contains(a.target)||e.current?.contains(a.target)||d()},c=a=>{"Escape"===a.key&&d()};return document.addEventListener("pointerdown",b),document.addEventListener("keydown",c),()=>{document.removeEventListener("pointerdown",b),document.removeEventListener("keydown",c)}},[a,d,e]),a)?(0,b.jsx)("div",{ref:g,className:"absolute bottom-full left-1/2 z-50 mb-2 -translate-x-1/2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-2 shadow-lg backdrop-blur-sm",children:f}):null}function bh({count:a,onGroup:d,onClear:e,onBulkRecap:f,onBulkPrompt:g,onBulkEstimate:h,onBulkAddLabel:i,onBulkRemoveLabel:j,onBulkStatus:k,statusOptions:m,participants:n,labels:o,onCreateLabel:p,selectedMetadata:r,statusUpdating:s}){let[t,u]=(0,c.useState)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(null),x=(0,c.useRef)(null),y=(0,c.useCallback)(a=>{u(b=>b===a?null:a)},[]),z=c.default.useMemo(()=>{let a=new Map;for(let b of r.values())for(let c of b.labels)a.set(c,(a.get(c)??0)+1);return a},[r]),A=c.default.useMemo(()=>{let a=new Set;for(let b of r.values())for(let c of b.labels)a.add(c);return Array.from(a)},[r]);if(a<2)return null;let B="flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]";return(0,b.jsx)("div",{className:"absolute bottom-4 left-1/2 z-30 -translate-x-1/2",children:(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1.5 shadow-2xl",children:[(0,b.jsxs)("span",{className:"mr-1 text-xs font-medium text-[var(--foreground)]",children:[a," selected"]}),(0,b.jsx)("div",{className:"mx-1 h-4 w-px bg-[var(--card-border)]"}),(0,b.jsxs)("button",{type:"button",className:B,onClick:f,title:"Recap all selected",children:[(0,b.jsx)(aK.FileText,{size:12}),"Recap"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{ref:x,type:"button",className:`${B} ${"prompt"===t?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>y("prompt"),title:"Send prompt to all selected",children:[(0,b.jsx)(ay.MessageSquare,{size:12}),"Prompt"]}),(0,b.jsx)(bg,{open:"prompt"===t,onClose:()=>u(null),anchorRef:x,children:(0,b.jsx)(aM,{count:a,participants:n,onSend:(a,b)=>{g(a,b),u(null)}})})]}),(0,b.jsxs)("button",{type:"button",className:B,onClick:h,title:"Ask the LLM to size all selected",children:[(0,b.jsx)(aL.Hash,{size:12}),"Estimate"]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{ref:v,type:"button",className:`${B} ${"label"===t?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>y("label"),title:"Label all selected",children:[(0,b.jsx)(T.Tag,{size:12}),"Label"]}),(0,b.jsx)(bg,{open:"label"===t,onClose:()=>u(null),anchorRef:v,children:(0,b.jsx)(aJ,{labels:o,selectedLabels:A,labelCounts:z,totalSelected:a,onToggle:b=>{(z.get(b)??0)===a?j(b):i(b)},onAdd:p})})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{ref:w,type:"button",className:`${B} ${"status"===t?"bg-[var(--background)] text-[var(--foreground)]":""}`,onClick:()=>y("status"),title:"Update status for all selected",disabled:s,children:[s?(0,b.jsx)(l.RefreshCw,{size:12,className:"animate-spin"}):(0,b.jsx)(l.RefreshCw,{size:12}),"Status"]}),(0,b.jsx)(bg,{open:"status"===t,onClose:()=>u(null),anchorRef:w,children:(0,b.jsx)("div",{className:"flex max-h-48 w-44 flex-col overflow-y-auto",children:m.map(a=>(0,b.jsx)("button",{type:"button",className:"w-full rounded-lg px-3 py-1.5 text-left text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:()=>{k(a.value),u(null)},children:a.label},a.value))})})]}),(0,b.jsxs)("button",{type:"button",className:B,onClick:d,title:"Group selected",children:[(0,b.jsx)(bf.FolderPlus,{size:12}),"Group"]}),(0,b.jsx)("div",{className:"mx-1 h-4 w-px bg-[var(--card-border)]"}),(0,b.jsx)("button",{type:"button",className:"flex h-6 w-6 items-center justify-center rounded text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:e,"aria-label":"Clear selection",children:(0,b.jsx)(q.X,{size:14})})]})})}var bi=a.i(908225);let bj=(0,d.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1}),bk={todo:"bg-zinc-400",in_progress:"bg-amber-400",done:"bg-emerald-400",cancelled:"bg-red-400"};function bl({item:a,run:d,participants:e,itemStatusOptions:f,itemStatusUpdating:g,onItemStatusChange:h,onBack:k}){let{messages:l,setMessages:m,sendMessage:n,loadHistory:o,stop:q}=(0,A.useGroupChat)(d.threadId),{processes:r,streaming:s,chatRuns:t}=(0,B.useProcessPolling)(d.rootMessageId?{workspaceId:d.threadId,threadId:d.rootMessageId}:{workspaceId:d.threadId},{messages:l,setMessages:m}),u=(0,c.useMemo)(()=>{let a=t[0];if(!a)return an(d);let b={queued:"queued",running:"running",awaiting_user:"running",blocked:"running",completed:"success",failed:"failed",cancelled:"cancelled"}[a.status]??d.status;return an({...d,status:b})},[t,d]);(0,c.useEffect)(()=>{o()},[o,d.threadId]);let v=(0,c.useMemo)(()=>new Map(e.map(a=>[a.id,a])),[e]),w=(0,c.useRef)(null),[x,y]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let a=w.current;if(!a)return;let b=()=>{let{scrollTop:b,scrollHeight:c,clientHeight:d}=a;y(c-b-d>200)};return a.addEventListener("scroll",b,{passive:!0}),()=>a.removeEventListener("scroll",b)},[]);let z=(0,c.useCallback)(()=>{let a=w.current;a&&a.scrollTo({top:a.scrollHeight,behavior:"smooth"})},[]),D=(0,c.useRef)(0);(0,c.useEffect)(()=>{l.length>D.current&&w.current?.scrollTo({top:w.current.scrollHeight,behavior:"smooth"}),D.current=l.length},[l.length]);let E=new Set(["queued","running","awaiting_user","blocked"]),F=t.some(a=>E.has(a.status))||r.some(a=>"spawning"===a.state||"running"===a.state)?t.some(a=>"queued"===a.status)?"queued":"working":"ready",G=(0,c.useCallback)((a,b,c,f,g,h,i)=>{d.rootMessageId&&n(a,b,void 0,d.rootMessageId,c,void 0,(0,O.orderParticipantIds)(e.map(a=>a.id),g),d.projectSlug??void 0,h,i)},[e,d.projectSlug,d.rootMessageId,n]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[k&&(0,b.jsx)("button",{type:"button",onClick:k,className:"shrink-0 rounded p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"Back to sessions",children:(0,b.jsx)(i.ChevronLeft,{size:16})}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:ao(d)})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,b.jsx)(av,{status:a.status,options:f,disabled:0===f.length,updating:g,onChange:b=>h(a,b)}),(0,b.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${aq[u.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ar[u.tone]}`}),(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:u.label})]}),null!=d.durationMs&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(j.Clock,{size:14}),(0,b.jsxs)("span",{children:[(d.durationMs/1e3).toFixed(1),"s"]})]}),(0,b.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,b.jsx)("img",{src:aP(d.agentId,v.get(d.agentId)?.color),alt:d.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,b.jsx)("span",{className:"pr-1 text-xs font-medium",children:d.agentName})]})]})]}),(0,b.jsx)("div",{ref:w,className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===l.length?(0,b.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===d.status||"running"===d.status?"Starting session...":"No thread messages yet."}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[l.map(a=>{let c=a.participantId?v.get(a.participantId):null,e=(0,J.stripMarkers)(a.content);if(!e.trim())return null;let f=a.participantId??d.agentId;return(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===a.role?(0,b.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,b.jsx)(p.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:aP(f,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:"user"===a.role?(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-sm font-semibold",style:{color:c?.color??"var(--foreground)"},children:c?.name??d.agentName}),(0,b.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,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(a.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===a.role?(0,b.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,b.jsx)(C.Markdown,{content:e,isUser:!0})}):(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(C.Markdown,{content:e,isUser:!1})})]})]},a.id)}),Object.entries(s).filter(([,a])=>!d.rootMessageId||a.rootMessageId===d.rootMessageId).map(([a])=>{let c=v.get(a);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:aP(a,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??d.agentName," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)(bi.JumpToLatestButton,{visible:x&&l.length>10,onClick:z,offsetClassName:"bottom-40"}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:d.rootMessageId?(0,b.jsx)(bj,{onSend:G,onStop:q,participants:e,projectId:d.projectId??void 0,projectSlug:d.projectSlug??void 0,loading:"ready"!==F,commands:[],activityStatus:F,placeholder:"Continue this session...",initialPinnedParticipantId:d.agentId}):(0,b.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the session to start..."})})]})}function bm({trackerType:a,projectId:d,projectSlug:g,initialShowSettings:i,initialGroupId:j}){let p,s,{isTouchLayout:t}=(0,K.useInputCapabilities)(),{connected:u,loading:A,user:B,clis:C,mcpConfigured:D,connect:E,connectWithKey:F,disconnect:G,configureMcp:H}=(0,x.useTrackerConnection)(a,d??""),J=(0,c.useRef)(null),[O,Q]=(0,c.useState)(i??!1),[R,S]=(0,c.useState)(!1),[T,U]=(0,c.useState)(()=>(0,M.loadLinearTicketPanelWidth)()||576),[V,W]=(0,c.useState)(""),[X,Y]=(0,c.useState)(""),[Z,$]=(0,c.useState)(!1),[_,aa]=(0,c.useState)([]),[ab,ac]=(0,c.useState)([]),[ad,ae]=(0,c.useState)([]),[af,ag]=(0,c.useState)([]),[ah,ai]=(0,c.useState)([]),[aj,ak]=(0,c.useState)([]),[aq,ar]=(0,c.useState)("Group"),[av,ax]=(0,c.useState)(""),[ay,az]=(0,c.useState)(""),[aA,aB]=(0,c.useState)("activity"),[aC,aD]=(0,c.useState)("desc"),[aE,aF]=(0,c.useState)([]),[aG,aH]=(0,c.useState)(()=>new Set),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)(null),[aM,aN]=(0,c.useState)(new Set),{participants:aR}=(0,a3.useTrackerParticipants)(a,d),{issueActiveAgents:aS}=function(a,b){let[d,e]=(0,c.useState)(new Map);return(0,c.useEffect)(()=>{let c=!1;async function d(){try{let d=new URLSearchParams;b&&d.set("projectId",b);let f=await fetch(`/api/trackers/${a}/active-agents?${d}`);if(!f.ok||c)return;let g=await f.json(),h=new Map;for(let a of g.agents??[]){let b=h.get(a.issueId)??[];b.push({agentId:a.agentId,agentName:a.agentName}),h.set(a.issueId,b)}c||e(h)}catch{}}d();let f=setInterval(()=>void d(),5e3);return()=>{c=!0,clearInterval(f)}},[a,b]),{issueActiveAgents:d}}(a,d),{issueStats:aT}=function(a,b){let[d,e]=(0,c.useState)(new Map);return(0,c.useEffect)(()=>{let c=!1;async function d(){try{let d=new URLSearchParams;b&&d.set("projectId",b);let f=await fetch(`/api/trackers/${a}/stats?${d}`);if(!f.ok||c)return;let g=await f.json(),h=new Map;for(let a of g.stats??[])h.set(a.issueId,{sessions:a.sessions,messages:a.messages});c||e(h)}catch{}}d();let f=setInterval(()=>void d(),1e4);return()=>{c=!0,clearInterval(f)}},[a,b]),{issueStats:d}}(a,d),[aU,aV]=(0,c.useState)(null),[aW,aX]=(0,c.useState)(null),[aY,aZ]=(0,c.useState)("runs"),a$=(0,c.useRef)(null),a_=(0,c.useRef)(!0),a0=(0,c.useRef)(null),a1=(0,c.useRef)(null),{getSelection:a4,pushSelection:a5,replaceSelection:a7}=(0,r.useUrlSelection)(),a8=a4("issue"),bb=a4("run"),bf=a4("group"),{groups:bg,createGroup:bj,updateGroup:bm,deleteGroup:bn,addTasksToGroup:bo,removeTaskFromGroup:bp,refetch:bq}=function(a){let[b,d]=(0,c.useState)([]),[e,f]=(0,c.useState)(!1),g=(0,c.useCallback)(async()=>{if(a){f(!0);try{let b=await fetch(`/api/task-groups?project_id=${encodeURIComponent(a)}`);if(!b.ok)throw Error("Failed to fetch groups");let c=await b.json();d(c.groups??[])}catch(a){console.error("useTaskGroups fetch error:",a)}finally{f(!1)}}},[a]);(0,c.useEffect)(()=>{g()},[g]);let h=(0,c.useCallback)(async(b,c)=>{if(!a)return null;try{let d=await fetch("/api/task-groups",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:a,name:b,task_ids:c})});if(!d.ok)throw Error("Failed to create group");let e=await d.json();return await g(),e.group}catch(a){return console.error("createGroup error:",a),null}},[a,g]),i=(0,c.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/task-groups/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)})).ok)throw Error("Failed to update group");await g()}catch(a){console.error("updateGroup error:",a)}},[g]),j=(0,c.useCallback)(async a=>{try{if(!(await fetch(`/api/task-groups/${a}`,{method:"DELETE"})).ok)throw Error("Failed to delete group");await g()}catch(a){console.error("deleteGroup error:",a)}},[g]),k=(0,c.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/task-groups/${a}/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_ids:b})})).ok)throw Error("Failed to assign tasks");await g()}catch(a){console.error("addTasksToGroup error:",a)}},[g]),l=(0,c.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/task-groups/${a}/tasks?task_id=${encodeURIComponent(b)}`,{method:"DELETE"})).ok)throw Error("Failed to remove task");await g()}catch(a){console.error("removeTaskFromGroup error:",a)}},[g]);return{groups:b,isLoading:e,refetch:g,createGroup:h,updateGroup:i,deleteGroup:j,addTasksToGroup:k,removeTaskFromGroup:l}}(d),[br,bs]=(0,c.useState)(new Set),[bt,bu]=(0,c.useState)(!1),[bv,bw]=(0,c.useState)([]),[bx,by]=(0,c.useState)(null),bz=(0,aO.useSensors)((0,aO.useSensor)(aO.PointerSensor,{activationConstraint:{distance:8}})),[bA,bB]=(0,c.useState)(null),bC=(0,c.useCallback)(a=>{bs(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),bD=(0,c.useCallback)(async a=>{bv.length<2||(await bj(a,bv),bw([]),bu(!1),by(null),bs(new Set))},[bv,bj]),bE=(0,c.useRef)([]),bF=(0,c.useRef)(null),bG=(0,c.useCallback)(()=>{let a=Array.from(br),b=bE.current.find(a=>br.has(a.id));bw(a),by(b?.id??a[0]??null),bu(!0)},[br]),bH=bg.find(a=>a.id===bf),bI=(0,c.useMemo)(()=>new Set(bg.flatMap(a=>a.task_ids)),[bg]),bJ=(0,c.useCallback)(a=>{bB(a.active.id)},[]),bK=(0,c.useCallback)(async a=>{bB(null);let{active:b,over:c}=a,d=b.id;if(bt){let a=bv.includes(d);if(!c||b.id===c.id){a&&bw(a=>{let b=a.filter(a=>a!==d);return b.length<2?(bu(!1),by(null),[]):b});return}let e=c.id,f=e===ba||bv.includes(e);a&&!f?bw(a=>{let b=a.filter(a=>a!==d);return b.length<2?(bu(!1),by(null),[]):b}):a||bw(a=>[...a,d]);return}if(!c||b.id===c.id)return;let e=c.id;if(e.startsWith(bd)){let a=e.slice(bd.length),b=bE.current.find(a=>a.id===d),c=bE.current.find(b=>b.status===a)?.statusCategory;b&&b.status!==a&&await bF.current?.(b,a,c);return}let f=bE.current.find(a=>a.id===d),g=bE.current.find(a=>a.id===e);if(f&&g&&f.status!==g.status)return void await bF.current?.(f,g.status,g.statusCategory);let h=bg.find(a=>a.id===e);if(h)return void await bo(h.id,[d]);let i=!bI.has(e);if(!bI.has(d)&&i){bw([d,e]),by(e),bu(!0);return}let j=bg.find(a=>a.task_ids.includes(d));j&&i&&await bp(j.id,d)},[bg,bI,bo,bp,bt,bv]),bL=(0,c.useCallback)(a=>{W(a),a$.current&&clearTimeout(a$.current),a$.current=setTimeout(()=>Y(a),300)},[]),bM=(0,c.useCallback)(a=>{aH(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[a,g]);(0,c.useEffect)(()=>()=>{a$.current&&clearTimeout(a$.current)},[]),(0,c.useEffect)(()=>{let a={...L};a_.current=!0,W(a.search),Y(a.search),ag(a.assigneeIds),ai(a.statusCategories),az(j??a.groupIds?.[0]??""),ax(j??a.groupIds?.[0]??""),aB(a.sortBy),aD(a.sortDir),aF(a.labelNames??[]),aH(new Set)},[a,g,j]),(0,c.useEffect)(()=>{if(a_.current){a_.current=!1;return}},[a,g,V,af,ah,ay,av,aE,aA,aC]),(0,c.useEffect)(()=>{if(!u||!d)return;let b=!1;$(!1);let c=new URLSearchParams;return c.set("projectId",d),g&&c.set("projectSlug",g),fetch(`/api/trackers/${a}/options?${c.toString()}`).then(a=>a.json()).then(a=>{b||(aa(Array.isArray(a.assignees)?a.assignees:[]),ac(Array.isArray(a.statuses)?a.statuses.map(a=>({value:a.name,label:a.name})):[]),ae(Array.isArray(a.teams)?a.teams:[]),ak(Array.isArray(a.groups)?a.groups:[]),a.groupLabel&&ar(a.groupLabel),$(!0))}).catch(()=>{b||(aa([]),ac([]),ae([]),ak([]),$(!0))}),()=>{b=!0}},[u,a,d,g]),(0,c.useEffect)(()=>{if(!Z)return;let a=af.filter(a=>_.some(b=>b.id===a));a.length!==af.length&&ag(a)},[_,Z,af]),(0,c.useEffect)(()=>{if(!Z)return;let a=ab.map(a=>a.value),b=ah.filter(b=>a.includes(b));b.length!==ah.length&&ai(b)},[Z,ah,ab]),(0,c.useEffect)(()=>{if(Z){if(ad.length<=1&&ay)return void az("");ay&&!ad.some(a=>a.id===ay)&&az("")}},[Z,ay,ad]),(0,c.useEffect)(()=>{Z&&av&&!aj.some(a=>a.id===av)&&ax("")},[aj,Z,av]);let{items:bN,loading:bO,hasMore:bP,loadMore:bQ,refresh:bR,updateItem:bS}=function(a,b,d,e){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!0),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(!1),n=(0,c.useRef)(j),o=(0,c.useRef)(!1);n.current=j;let p=`/api/trackers/${encodeURIComponent(a)}/items`,q=e.projectId?function(a,b,c){let d={};for(let a of Object.keys(c).sort()){let b=c[a];if(null!=b&&""!==b&&!1!==b)if(Array.isArray(b)){if(!b.length)continue;d[a]=[...b].map(String).sort()}else d[a]=b}return`${a}:${b}:${JSON.stringify(d)}`}(a,e.projectId,{statuses:b.statuses,statusCategories:b.statusCategories,search:b.search,assigneeIds:b.assigneeIds,groupIds:b.groupIds,sortBy:b.sortBy,sortDir:b.sortDir,hasActivity:b.hasActivity,limit:e.limit}):null,r=(0,c.useRef)(q);r.current=q;let s=(0,c.useCallback)(async a=>{if(d&&e.projectId){i(!0);try{let c=new URLSearchParams;if(c.set("projectId",e.projectId),b.statuses?.length)for(let a of b.statuses)c.append("status",a);if(b.statusCategories?.length)for(let a of b.statusCategories)c.append("statusCategory",a);if(b.search&&c.set("search",b.search),b.assigneeIds?.length)for(let a of b.assigneeIds)c.append("assigneeId",a);if(b.groupIds?.length)for(let a of b.groupIds)c.append("groupId",a);b.sortBy&&c.set("sortBy",b.sortBy),b.sortDir&&c.set("sortDir",b.sortDir),b.hasActivity&&c.set("hasActivity","true"),a&&n.current&&c.set("cursor",n.current),e.limit&&c.set("limit",String(e.limit));let d=await fetch(`${p}?${c.toString()}`),f=await d.json(),h=f.items??[];g(b=>a?[...b,...h]:h);let i=f.pageInfo?.endCursor??null,j=f.pageInfo?.hasNextPage??!1;k(i),m(j),o.current=!0,!a&&r.current&&w(r.current,{items:h,endCursor:i,hasNextPage:j,savedAt:Date.now()})}catch{a||g([])}finally{i(!1)}}},[p,b.statuses,b.statusCategories,b.search,b.assigneeIds,b.groupIds,b.sortBy,b.sortDir,b.hasActivity,d,e.projectId,e.limit]);(0,c.useEffect)(()=>{let a=!1;return k(null),o.current=!1,d&&q&&v(q).then(b=>{a||!b||o.current||(g(b.items),k(b.endCursor),m(b.hasNextPage),i(!1))}),s(!1),()=>{a=!0}},[s,q,d]);let t=(0,c.useCallback)(()=>s(!0),[s]);return{items:f,loading:h,hasMore:l,loadMore:t,refresh:(0,c.useCallback)(()=>(k(null),s(!1)),[s]),updateItem:(0,c.useCallback)(a=>{g(b=>b.map(b=>b.id===a.id?a:b))},[])}}(a,(0,c.useMemo)(()=>({search:X||void 0,statuses:ah.length>0&&ah.length<ab.length?ah:void 0,assigneeIds:af.length>0?af:void 0,groupIds:av?[av]:void 0,sortBy:aA,sortDir:aC}),[X,af,av,ah,ab.length,aA,aC]),u&&Z&&!!d,{projectId:d??""}),{metadataMap:bT,refresh:bU}=function(a,b,d){let[e,f]=(0,c.useState)(new Map),[g,h]=(0,c.useState)(!1),i=(0,c.useRef)(""),j=(0,c.useCallback)(async()=>{if(!b||0===d.length)return void f(new Map);h(!0);try{let c=await fetch(`/api/trackers/${encodeURIComponent(a)}/metadata/bulk?projectId=${encodeURIComponent(b)}&issueIds=${d.map(encodeURIComponent).join(",")}`),e=await c.json(),g=new Map;for(let[a,b]of Object.entries(e))g.set(a,{labels:Array.isArray(b.labels)?b.labels:[],estimate:"number"==typeof b.estimate?b.estimate:null});f(g)}catch{}h(!1)},[a,b,d]);return(0,c.useEffect)(()=>{let a=d.join(",");a!==i.current&&(i.current=a,j())},[j,d]),{metadataMap:e,loading:g,refresh:j}}(a,d,(0,c.useMemo)(()=>bN.map(a=>a.id),[bN])),{labels:bV,definitions:bW,refresh:bX,createDefinition:bY}=al(a,d),bZ=(0,c.useMemo)(()=>a8?bN.find(a=>a.id===a8)??null:null,[bN,a8]),b$=bZ??(aI?.id===a8?aI:null),b_=(0,c.useMemo)(()=>{if(0===aG.size)return bN;let a=[],b=[];for(let c of bN)aG.has(c.id)?a.push(c):b.push(c);return[...a,...b]},[bN,aG]);bE.current=b_;let b0=(0,c.useDeferredValue)(aE),b1=(0,c.useMemo)(()=>{if(0===b0.length)return b_;let a=new Set(b0),b=[];for(let c of b_){let d=bT.get(c.id)?.labels;if(d){for(let e of d)if(a.has(e)){b.push(c);break}}}return b},[b_,b0,bT]),b2=(0,c.useMemo)(()=>{let a=new Map;for(let b of b1){let c=a.get(b.status);c||(c={status:b.status,category:b.statusCategory,items:[]},a.set(b.status,c)),c.items.push(b)}let b={in_progress:0,todo:1,done:2,cancelled:3};return[...a.values()].sort((a,c)=>(b[a.category]??1)-(b[c.category]??1))},[!0,b1]),{runs:b3,loading:b4,loadedForIssueId:b5,createRun:b6,updateRun:b7}=y(a,b$?.id??null,d??null),{scripts:b8,activeScriptId:b9,activeScript:ca,setActiveScriptId:cb,saveScript:cc,deleteScript:cd}=function(a,b){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(null);(0,c.useEffect)(()=>{let a={...z};e(a.scripts),g(a.activeScriptId)},[a,b]);let h=(0,c.useCallback)((a,b)=>{e(a),g(b)},[a,b]),i=(0,c.useCallback)(a=>{let b=a&&d.some(b=>b.id===a)?a:null;h(d,b)},[h,d]),j=(0,c.useCallback)(a=>{let b=new Date().toISOString(),c=a.name.trim(),e=a.prompt.trim();if(!c||!e)throw Error("Run script name and prompt are required.");let f=a.id?d.find(b=>b.id===a.id):null,g=f?{...f,name:c,prompt:e,updatedAt:b}:{id:crypto.randomUUID(),name:c,prompt:e,createdAt:b,updatedAt:b};return h([...f?d.map(a=>a.id===f.id?g:a):[g,...d]].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)),g.id),g},[h,d]),k=(0,c.useCallback)(a=>{h(d.filter(b=>b.id!==a),f===a?null:f)},[f,h,d]),l=(0,c.useMemo)(()=>d.find(a=>a.id===f)??null,[f,d]);return{scripts:d,activeScriptId:f,activeScript:l,setActiveScriptId:i,saveScript:j,deleteScript:k}}(a,g),ce=bb?b3.find(a=>a.id===bb)??null:null,cf=a8&&!bb?(0,N.loadLastRunForIssue)(a8):null,cg=!!cf&&J.current!==a8,ch=(0,c.useMemo)(()=>_.map(a=>({value:a.id,label:a.name})),[_]),ci=(0,c.useMemo)(()=>ab.map(a=>({value:a.value,label:a.label})),[ab]),cj=(0,c.useMemo)(()=>{let a=ab.map(a=>({value:a.label,label:a.label})),b=new Set(a.map(a=>a.value)),c=b$?.status?.trim();return c&&!b.has(c)&&a.unshift({value:c,label:c}),a},[b$?.status,ab]),ck=(0,c.useMemo)(()=>[{value:"",label:"Workspace"},...ad.map(a=>({value:a.id,label:a.name}))],[ad]),cl=(0,c.useMemo)(()=>[{value:"",label:aq},...aj.map(a=>({value:a.id,label:a.name}))],[aj,aq]),cm=ci.length>0,cn=cl.length>1,co=ck.length>2,cp=ca?.name??"AGX default",cq=(0,c.useMemo)(()=>bV.map(a=>({value:a.name,label:a.name})),[bV]),cr=(0,c.useCallback)(async(b,c)=>{if(!d)return;let e=bT.get(b)?.labels??[],f=e.includes(c)?e.filter(a=>a!==c):[...e,c];try{await fetch(`/api/trackers/${a}/metadata?projectId=${encodeURIComponent(d)}&issueId=${encodeURIComponent(b)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({labels:f})}),bU(),bX()}catch{}},[d,a,bT,bU,bX]),cs=(0,c.useCallback)(async a=>{d&&await bY(a)},[d,bY]),ct=(0,c.useCallback)(async(b,c,e)=>{let f=c.trim();if(!f||f===b.status||!d)return;let g={...b,status:f,statusCategory:e??b.statusCategory};bS(g),a8===b.id&&aJ(g),aL(b.id);try{let c=await fetch(`/api/trackers/${a}/items/${encodeURIComponent(b.id)}?projectId=${encodeURIComponent(d??"")}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:f})}),e=await c.json().catch(()=>({}));if(!c.ok||!e.item)throw Error(e.error||"Failed to update ticket status");let g=e.item;bS(g),a8===g.id&&aJ(g),await bR()}catch(a){bS(b),a8===b.id&&aJ(b),a instanceof Error&&window.alert(a.message)}finally{aL(a=>a===b.id?null:a)}},[bR,a8,bS,a,d]);bF.current=ct;let cu=(0,c.useCallback)(async(b,c,e,f)=>{let h=f??aR[0]?.id;if(h)try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee?.name??null,agentId:h,scriptName:c,scriptPrompt:e})})}catch(a){console.error(`Failed to start ${c} for ${b.identifier}:`,a)}},[aR,a,d,g]),cv=(0,c.useCallback)(async()=>{let b=Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean);if(0===b.length||0===aR.length)return;let c=aR[0];for(let e of b)try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee?.name??null,agentId:c.id,scriptName:"Recap",scriptPrompt:"Summarize recent activity and current state of this ticket. Focus on: what was done, what's outstanding, and any blockers."})})}catch(a){console.error(`Failed to start recap for ${e.identifier}:`,a)}bs(new Set)},[br,bN,aR,a,d,g]),cw=(0,c.useCallback)(async(b,c)=>{for(let e of Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean))try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee?.name??null,agentId:c,scriptPrompt:b})})}catch(a){console.error(`Failed to send prompt for ${e.identifier}:`,a)}bs(new Set)},[br,bN,a,d,g]),cx=(0,c.useCallback)(async()=>{let b=Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean);if(0===b.length||0===aR.length)return;let c=aR[0];for(let e of b)try{await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee?.name??null,agentId:c.id,scriptName:"Estimate",scriptPrompt:"Assess the complexity and scope of this ticket and assign a Fibonacci story-point estimate (1, 2, 3, 5, 8, 13, or 21). Consider: required investigation, files likely to change, unknowns, and testing effort. Briefly justify the number, then set the estimate using the available tooling."})})}catch(a){console.error(`Failed to start estimate for ${e.identifier}:`,a)}bs(new Set)},[br,bN,aR,a,d,g]),cy=(0,c.useCallback)(async b=>{let c=Array.from(br);if(0!==c.length&&d)try{await fetch(`/api/trackers/${a}/metadata/bulk`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d,issueIds:c,action:"add_labels",payload:{labels:[b]}})}),bU(),bX()}catch{}},[br,d,a,bU,bX]),cz=(0,c.useCallback)(async b=>{let c=Array.from(br);if(0!==c.length&&d)try{await fetch(`/api/trackers/${a}/metadata/bulk`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d,issueIds:c,action:"remove_label",payload:{label:b}})}),bU(),bX()}catch{}},[br,d,a,bU,bX]),[cA,cB]=(0,c.useState)(!1),cC=(0,c.useCallback)(async a=>{let b=Array.from(br).map(a=>bN.find(b=>b.id===a)).filter(Boolean);if(0!==b.length){for(let c of(cB(!0),b))await ct(c,a);cB(!1),bs(new Set)}},[br,bN,ct]),cD=(0,c.useCallback)(async a=>{d&&await bY(a)},[d,bY]),cE=(0,c.useCallback)(b=>({statusOptions:cj,onRecap:()=>{let c=d?`?projectId=${encodeURIComponent(d)}`:"";fetch(`/api/trackers/${encodeURIComponent(a)}/items/${encodeURIComponent(b.id)}/recap${c}`,{method:"POST"}).then(()=>{window.dispatchEvent(new CustomEvent("tracker:recap-triggered",{detail:{trackerType:a,issueId:b.id}}))})},onPrompt:(a,c)=>{cu(b,"Prompt",a,c)},onEstimate:()=>{cu(b,"Estimate","Assess the complexity and scope of this ticket and assign a Fibonacci story-point estimate (1, 2, 3, 5, 8, 13, or 21). Consider: required investigation, files likely to change, unknowns, and testing effort. Briefly justify the number, then set the estimate using the available tooling.")},onStatus:a=>{ct(b,a)}}),[cj,cu,ct,a,d]),cF=(0,c.useMemo)(()=>{let a=new Map;for(let b of br){let c=bT.get(b);a.set(b,c??{labels:[],estimate:null})}return a},[br,bT]);(0,c.useEffect)(()=>{if(!a8||!d)return void aJ(null);if(bZ)return void aJ(a=>a?.id===a8?bZ:null);let b=!1;return(async()=>{try{let c=await fetch(`/api/trackers/${a}/items/${encodeURIComponent(a8)}?projectId=${encodeURIComponent(d??"")}`);if(b)return;if(404===c.status)return void aJ(null);if(!c.ok)throw Error(`Failed to fetch selected tracker ticket: ${c.status}`);let e=await c.json().catch(()=>({}));if(!e.item?.id)return void aJ(null);aJ(e.item)}catch(a){b||console.error("Failed to hydrate selected tracker item",a)}})(),()=>{b=!0}},[a7,bZ,a8,a,d]),(0,c.useEffect)(()=>{if(!a8){bb&&a7({run:null});return}},[a7,a8,bb]),(0,c.useEffect)(()=>{b$&&bb&&!b4&&(b3.some(a=>a.id===bb)||a7({run:null}))},[a7,b3,b4,b$,bb]),(0,c.useEffect)(()=>{a8&&bb&&(0,N.persistLastRunForIssue)(a8,bb)},[a8,bb]),(0,c.useEffect)(()=>{cg&&!b4&&b5===a8&&(J.current=a8,cf&&b3.some(a=>a.id===cf)&&a7({run:cf}))},[cg,cf,a8,b3,b4,b5,a7]),(0,c.useEffect)(()=>{if(t){if(!b$)return void aZ("runs");if(ce||0===b3.length)return void aZ("ticket");aZ("runs")}},[t,b3.length,b$,ce]),(0,c.useEffect)(()=>{if(!R)return;let a=a=>{let b=a.target;a1.current?.contains(b)||a0.current?.contains(b)||S(!1)},b=a=>{"Escape"===a.key&&S(!1)};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",b)}},[R]);let cG=(0,c.useCallback)(async(b,c)=>{aV(null),aX(null);try{let e=await fetch(`/api/trackers/${a}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:d??void 0,projectSlug:g??void 0,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee?.name??null,agentId:c.id,scriptName:ca?.name,scriptPrompt:ca?.prompt})}),f=await e.json().catch(()=>({}));if(!e.ok||!f.run||!f.chatRunId||!f.userMessageId)throw Error(f.error||"Failed to start scripted session");a5({issue:b.id,run:f.run.id})}catch(a){console.error("Failed to start scripted tracker session:",a),a instanceof Error&&window.alert(a.message)}},[ca,d,g,a5,a]),cH=(0,c.useCallback)((a,b)=>{if(S(!1),0===aR.length)return void window.alert("Add at least one agent to this project before starting a scripted session.");if(1===aR.length)return void cG(a,aR[0]);let c=b?.currentTarget?.getBoundingClientRect();aV(a),aX(c?{top:c.bottom+4,left:c.left}:{top:200,left:200})},[cG,aR]),cI=(0,c.useRef)(null),cJ=(0,c.useRef)(null),cK=(0,c.useRef)(null),[cL,cM]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let a=[cJ.current,cK.current].filter(Boolean);if(0===a.length)return;let b=a=>{cM(a.currentTarget.scrollTop>400)};return a.forEach(a=>a.addEventListener("scroll",b,{passive:!0})),()=>a.forEach(a=>a.removeEventListener("scroll",b))},[t]);let cN=(0,c.useCallback)(()=>{let a=cJ.current??cK.current;a?.scrollTo({top:0,behavior:"smooth"})},[]);return((0,c.useEffect)(()=>{let a=cI.current;if(!a||!bP)return;let b=new IntersectionObserver(a=>{a[0]?.isIntersecting&&bQ()},{threshold:.1});return b.observe(a),()=>b.disconnect()},[bP,bQ]),u)?(0,b.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[t?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.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,b.jsx)(m.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:V,onChange:a=>bL(a.target.value)})]}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void bR(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:bO,children:(0,b.jsx)(l.RefreshCw,{size:16,className:bO?"animate-spin":void 0})}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{S(!1),Q(!0)},title:"Tracker settings",children:(0,b.jsx)(n.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 pb-2",children:[cn?(0,b.jsx)(au,{label:aq,value:av,options:cl,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ax}):null,cm?(0,b.jsx)(aw,{label:"Status",values:ah,options:ci,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:ai,emptyLabel:"All statuses"}):null,(0,b.jsx)(aw,{label:"Assignee",values:af,options:ch,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ag,emptyLabel:"All assignees"}),cq.length>0&&(0,b.jsx)(aw,{label:"Label",values:aE,options:cq,activeClasses:"border-pink-500/30 bg-pink-500/10 text-pink-400",onChange:aF,emptyLabel:"All labels"}),co?(0,b.jsx)(au,{label:"Workspace",value:ay,options:ck,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:az}):null,(0,b.jsx)(au,{label:"Sort",value:aA,options:[{value:"activity",label:"Updated At"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created At"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>aB(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===aC?"Descending":"Ascending",onClick:()=>aD(a=>"desc"===a?"asc":"desc"),children:"desc"===aC?(0,b.jsx)(e.ArrowDown,{size:12}):(0,b.jsx)(f.ArrowUp,{size:12})})]})]}),(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,b.jsx)("div",{ref:cK,className:"flex-1 overflow-y-auto",children:bO&&0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[b2.map(a=>{let d=aM.has(a.status);return(0,b.jsxs)(c.default.Fragment,{children:[(0,b.jsx)(be,{status:a.status,categoryColor:bk[a.category]??"bg-zinc-400",count:a.items.length,collapsed:d,onToggle:()=>aN(b=>{let c=new Set(b);return c.has(a.status)?c.delete(a.status):c.add(a.status),c})}),!d&&a.items.map(a=>(0,b.jsx)(aQ,{item:a,selected:b$?.id===a.id,pinned:aG.has(a.id),activeAgents:aS.get(a.id),participants:aR,projectSlug:g,stats:aT.get(a.id),hideStatus:!0,estimate:bT.get(a.id)?.estimate,localLabels:bT.get(a.id)?.labels,labelDefinitions:bW,allLabels:bV,onToggleLabel:b=>cr(a.id,b),onAddLabel:cs,onSelect:()=>{aZ("runs"),a5({issue:a.id,run:null})},onTogglePin:()=>bM(a.id),rowActions:cE(a),showGroup:!av},a.id))]},`sg-${a.status}`)}),bP?(0,b.jsx)("div",{ref:cI,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:bO?"Loading...":"Load more"}):null]})}),(0,b.jsx)(bi.JumpToLatestButton,{visible:cL&&bN.length>20,direction:"top",onClick:cN})]})]}),b$?(0,b.jsxs)("div",{className:"absolute inset-0 z-20 flex flex-col bg-[var(--background)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:b$.identifier}),(0,b.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:b$.title})]}),(0,b.jsx)("button",{type:"button",className:"rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>a7({issue:null,run:null}),"aria-label":"Close ticket panel",children:(0,b.jsx)(q.X,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"runs"===aY?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>aZ("runs"),children:"Runs"}),(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"ticket"===aY?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>aZ("ticket"),children:"Ticket"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:"runs"===aY?(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Sessions"}),(0,b.jsxs)("button",{ref:a0,type:"button",className:"inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-40",onClick:()=>{S(!1),aZ("ticket"),a5({run:null})},title:"Open a fresh chat for this ticket. You can choose or edit the session script in the ticket tab.","aria-label":"New session",disabled:!b$,children:[(0,b.jsx)(k.Plus,{size:12}),"New session"]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:b4&&0===b3.length||cg?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===b3.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):b3.map(a=>{let c=an(a);return(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${ce?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>{aZ("ticket"),a5({run:a.id})},children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]",children:ao(a)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(a.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,b.jsx)("span",{className:`font-medium ${as[c.tone]}`,children:c.label}),(0,b.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:a.agentName})]}),null!=a.durationMs?(0,b.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(a.durationMs/1e3).toFixed(1),"s"]}):null]},a.id)})})]}):ce?(0,b.jsx)(bl,{item:b$??{id:ce.issueId,identifier:ce.issueIdentifier,title:ce.issueTitle,status:ce.issueStatus,statusCategory:"todo",labels:[],trackerId:"",trackerType:a,assignee:ce.issueAssignee?{id:"",name:ce.issueAssignee}:void 0,updatedAt:ce.updatedAt,createdAt:ce.updatedAt,url:""},run:ce,participants:aR,itemStatusOptions:cj,itemStatusUpdating:aK===ce.issueId,onItemStatusChange:ct,onBack:()=>a7({run:null})}):cg?null:0===aR.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add an agent team so you can pick a ticket and start shipping."}):(0,b.jsx)(a2,{item:b$,trackerType:a,runs:b3,participants:aR,projectId:d,projectSlug:g,itemStatusOptions:cj,itemStatusUpdating:aK===b$.id,onItemStatusChange:ct,activeSessionScriptLabel:cp,onOpenSessionScripts:()=>S(!0),onStartScriptedSession:a=>cH(b$,a),createRun:b6,updateRun:b7,onRunCreated:a=>a5({run:a}),onSelectRun:a=>a5({run:a})},b$.id)})]}):null]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:T},children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.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,b.jsx)(m.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:V,onChange:a=>bL(a.target.value)})]}),(0,b.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 bR(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:bO,children:(0,b.jsx)(l.RefreshCw,{size:16,className:bO?"animate-spin":void 0})}),(0,b.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:()=>{S(!1),Q(!0)},title:"Tracker settings",children:(0,b.jsx)(n.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[cn?(0,b.jsx)(au,{label:aq,value:av,options:cl,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ax}):null,cm?(0,b.jsx)(aw,{label:"Status",values:ah,options:ci,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:ai,emptyLabel:"All statuses"}):null,(0,b.jsx)(aw,{label:"Assignee",values:af,options:ch,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ag,emptyLabel:"All assignees"}),cq.length>0&&(0,b.jsx)(aw,{label:"Label",values:aE,options:cq,activeClasses:"border-pink-500/30 bg-pink-500/10 text-pink-400",onChange:aF,emptyLabel:"All labels"}),co?(0,b.jsx)(au,{label:"Workspace",value:ay,options:ck,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:az}):null,(0,b.jsx)(au,{label:"Sort",value:aA,options:[{value:"activity",label:"Updated At"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created At"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>aB(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===aC?"Descending":"Ascending",onClick:()=>aD(a=>"desc"===a?"asc":"desc"),children:"desc"===aC?(0,b.jsx)(e.ArrowDown,{size:12}):(0,b.jsx)(f.ArrowUp,{size:12})}),b1.length>0&&(p=b1.length>0&&b1.every(a=>br.has(a.id)),(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] transition-colors ${p?"border-[var(--primary)]/40 bg-[var(--primary)]/10 text-[var(--primary)]":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,title:p?"Clear selection":"Select all filtered tickets",onClick:()=>{p?bs(new Set):bs(new Set(b1.map(a=>a.id)))},children:[p?(0,b.jsx)(h,{size:12}):(0,b.jsx)(o,{size:12}),p?"Clear":`Select all (${b1.length})`]}))]})]}),(0,b.jsxs)(aO.DndContext,{sensors:bz,collisionDetection:aO.closestCenter,onDragStart:bJ,onDragEnd:bK,children:[(0,b.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[(0,b.jsxs)("div",{ref:cJ,className:"flex-1 overflow-y-auto",children:[bO&&0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===bN.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[b2.map(a=>{let d=aM.has(a.status);return(0,b.jsxs)(c.default.Fragment,{children:[(0,b.jsx)(be,{status:a.status,categoryColor:bk[a.category]??"bg-zinc-400",count:a.items.length,collapsed:d,onToggle:()=>aN(b=>{let c=new Set(b);return c.has(a.status)?c.delete(a.status):c.add(a.status),c})}),!d&&(()=>{let d=bt?new Set(bv):null,e=new Map;for(let b of bg){let c=a.items.find(a=>b.task_ids.includes(a.id));c&&e.set(c.id,b)}let f=bt?bv.map(b=>a.items.find(a=>a.id===b)).filter(Boolean).map(a=>({id:a.id,identifier:a.identifier,title:a.title,status:ap[a.status]??a.status})):[],h=new Set;return a.items.map(i=>{if(d?.has(i.id))return i.id===bx&&bt?(0,b.jsx)(bc,{tickets:f,onConfirm:bD,onCancel:()=>{bu(!1),bw([]),by(null)}},"__pending-group__"):null;let j=e.get(i.id);if(j&&!h.has(j.id)){h.add(j.id);let d=j.task_ids.map(b=>a.items.find(a=>a.id===b)).filter(Boolean);return(0,b.jsxs)(c.default.Fragment,{children:[(0,b.jsx)(a6,{groupId:j.id,name:j.name,count:d.length,collapsed:!!j.collapsed,selected:bf===j.id,projectSlug:g,onToggleCollapse:()=>bm(j.id,{collapsed:!j.collapsed}),onSelect:()=>a5({group:j.id,issue:null,run:null}),onUngroup:()=>{bn(j.id),bf===j.id&&a7({group:null})}}),!j.collapsed&&d.map((a,c)=>(0,b.jsx)(aQ,{item:a,selected:b$?.id===a.id,pinned:aG.has(a.id),activeAgents:aS.get(a.id),participants:aR,draggable:!0,multiSelected:br.has(a.id),treeConnector:c===d.length-1?"last":"mid",projectSlug:g,stats:aT.get(a.id),hideStatus:!0,estimate:bT.get(a.id)?.estimate,localLabels:bT.get(a.id)?.labels,labelDefinitions:bW,allLabels:bV,onToggleLabel:b=>cr(a.id,b),onAddLabel:cs,onSelect:b=>{b&&(b.metaKey||b.ctrlKey)?bC(a.id):a5({issue:a.id,run:null,group:null})},onTogglePin:()=>bM(a.id),rowActions:cE(a),showGroup:!av},a.id))]},`group-${j.id}`)}return bI.has(i.id)?null:(0,b.jsx)(aQ,{item:i,selected:b$?.id===i.id,pinned:aG.has(i.id),activeAgents:aS.get(i.id),participants:aR,draggable:!0,multiSelected:br.has(i.id),projectSlug:g,stats:aT.get(i.id),hideStatus:!0,estimate:bT.get(i.id)?.estimate,localLabels:bT.get(i.id)?.labels,labelDefinitions:bW,allLabels:bV,onToggleLabel:a=>cr(i.id,a),onAddLabel:cs,onSelect:a=>{a&&(a.metaKey||a.ctrlKey)?bC(i.id):a5({issue:i.id,run:null,group:null})},onTogglePin:()=>bM(i.id),rowActions:cE(i),showGroup:!av},i.id)})})()]},`sg-${a.status}`)}),bP?(0,b.jsx)("div",{ref:cI,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:bO?"Loading...":"Load more"}):null]}),(0,b.jsx)(bh,{count:br.size,onGroup:bG,onClear:()=>bs(new Set),onBulkRecap:cv,onBulkPrompt:cw,onBulkEstimate:cx,onBulkAddLabel:cy,onBulkRemoveLabel:cz,onBulkStatus:cC,statusOptions:cj,participants:aR,labels:bV,onCreateLabel:cD,selectedMetadata:cF,statusUpdating:cA})]}),(0,b.jsx)(bi.JumpToLatestButton,{visible:cL&&bN.length>20,direction:"top",onClick:cN})]}),(0,b.jsx)(aO.DragOverlay,{dropAnimation:null,children:bA&&((s=bE.current.find(a=>a.id===bA))?(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-lg border border-[var(--primary)]/30 bg-[var(--card-bg)] px-4 py-2.5 text-sm shadow-xl backdrop-blur-sm",children:[(0,b.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:s.identifier}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs font-medium text-[var(--foreground)]",children:s.title})]}):null)})]})]}),(0,b.jsx)(at.ResizeHandle,{onResize:a=>U(b=>{let c=Math.max(280,Math.min(960,b+a));return(0,M.persistLinearTicketPanelWidth)(c),c})}),R?(0,b.jsx)("div",{ref:a1,className:"absolute right-6 top-16 z-20 max-h-[80vh] overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",style:{width:"min(760px, calc(100vw - 32px))"},children:(0,b.jsx)(I,{projectSlug:g,scripts:b8,activeScriptId:b9,onSetActiveScriptId:cb,onSaveScript:cc,onDeleteScript:cd})}):null,(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:ce?(0,b.jsx)(bl,{item:b$??{id:ce.issueId,identifier:ce.issueIdentifier,title:ce.issueTitle,status:ce.issueStatus,statusCategory:"todo",labels:[],trackerId:"",trackerType:a,assignee:ce.issueAssignee?{id:"",name:ce.issueAssignee}:void 0,updatedAt:ce.updatedAt,createdAt:ce.updatedAt,url:""},run:ce,participants:aR,itemStatusOptions:cj,itemStatusUpdating:aK===ce.issueId,onItemStatusChange:ct,onBack:()=>a7({run:null})}):bH&&!b$?(0,b.jsx)(a9,{group:bH,items:bN,trackerType:a,participants:aR,projectId:d,projectSlug:g,onUpdateName:a=>bm(bH.id,{name:a}),onDelete:async()=>{await bn(bH.id),a7({group:null})},onSelectItem:a=>a5({issue:a,group:null,run:null}),onRunCreated:a=>a5({run:a}),onSelectRun:a=>a5({run:a})}):b$?cg?null:0===aR.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add an agent team so you can pick a ticket and start shipping."}):(0,b.jsx)(a2,{item:b$,trackerType:a,runs:b3,participants:aR,projectId:d,projectSlug:g,itemStatusOptions:cj,itemStatusUpdating:aK===b$.id,onItemStatusChange:ct,activeSessionScriptLabel:cp,onOpenSessionScripts:()=>S(!0),onStartScriptedSession:a=>cH(b$,a),createRun:b6,updateRun:b7,onRunCreated:a=>a5({run:a}),onSelectRun:a=>a5({run:a})},b$.id):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Select a ticket from the list."})})]}),O&&(0,b.jsx)(am,{trackerType:a,connected:u,user:B,clis:C,mcpConfigured:D,onConnect:E,onConnectWithKey:F,onDisconnect:G,onConfigureMcp:H,onClose:()=>Q(!1),projectId:d}),R&&t?(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50 p-4",children:(0,b.jsx)("div",{ref:a1,className:"max-h-[85vh] w-full max-w-3xl overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",children:(0,b.jsx)(I,{projectSlug:g,scripts:b8,activeScriptId:b9,onSetActiveScriptId:cb,onSaveScript:cc,onDeleteScript:cd})})}):null,aU&&aW&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{aV(null),aX(null)}}),(0,b.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:aW.top,left:aW.left},children:[(0,b.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Pick an agent"}),aR.map(a=>(0,b.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 cG(aU,a),children:[(0,b.jsx)("img",{src:aP(a.id,a.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,b.jsxs)("span",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),a.role?(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.role}):null]})]},a.id))]})]})]}):(0,b.jsx)(P.default,{trackerType:a,projectId:d??"",connected:u,onConnect:E,onConnectWithKey:F})}a.s(["default",()=>bm],859117)}];
49
49
 
50
50
  //# sourceMappingURL=apps_local_components_TrackerBoard_tsx_98970bab._.js.map