@mndrk/agx 2.4.6 → 2.4.7

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 (357) 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 +4 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +33 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/app-paths-manifest.json +3 -0
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/build-manifest.json +11 -0
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/server-reference-manifest.json +4 -0
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js +13 -0
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.map +5 -0
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.nft.json +1 -0
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route_client-reference-manifest.js +2 -0
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/app-paths-manifest.json +3 -0
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/build-manifest.json +11 -0
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/server-reference-manifest.json +4 -0
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js +11 -0
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.map +5 -0
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.nft.json +1 -0
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route_client-reference-manifest.js +2 -0
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/app-paths-manifest.json +3 -0
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/build-manifest.json +11 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/server-reference-manifest.json +4 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js +11 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.map +5 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.nft.json +1 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route_client-reference-manifest.js +2 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +2 -2
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +2 -2
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/app-paths-manifest.json +3 -0
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/build-manifest.json +18 -0
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +11 -0
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/react-loadable-manifest.json +1 -0
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/server-reference-manifest.json +4 -0
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +16 -0
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.map +5 -0
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -0
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +2 -0
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +4 -0
  197. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_export_route_actions_e161f108.js +3 -0
  198. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_import_route_actions_10d2bce2.js +3 -0
  199. package/cloud-runtime/standalone/apps/local/.next/server/chunks/7255d_app_api_projects_[id]_objectives_[objectiveId]_program_route_actions_e6cdbc76.js +3 -0
  200. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1563ebff._.js +2 -2
  201. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3fdd57cb._.js +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__45af4365._.js +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__683b7ad7._.js +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__736d5859._.js +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__96b5ea56._.js +3 -0
  206. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ba72d342._.js +5 -5
  207. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3188470._.js +1 -1
  208. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb69343e._.js +3 -0
  209. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4d88e4dc._.js +91 -0
  211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c530bd77._.js +11 -0
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d69937f2._.js +91 -0
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e2867b32._.js +3 -0
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e32b0cab._.js +91 -0
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0da96_local__next-internal_server_app_projects_[slug]_thread_page_actions_3ceeb59b.js +3 -0
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__1e0fd816._.js +3 -0
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__42499ecf._.js +3 -0
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5f31e40b._.js +3 -0
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__636799fb._.js +3 -0
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__4bf7d5b9._.js → [root-of-the-server]__74436f61._.js} +2 -2
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9434d6d7._.js +3 -0
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd339da0._.js +3 -0
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +3 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e02a457c._.js +3 -0
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +3 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f802e7d1._.js +3 -0
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ff96bb77._.js +3 -0
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_6a2ba8f0._.js +3 -0
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7cb6b08a._.js +3 -0
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a0f42923._.js +7 -0
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a93c1059._.js +3 -0
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_components_PromptJobBoard_tsx_281b2873._.js → apps_local_04cb9fd5._.js} +3 -3
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_15502af8._.js +3 -0
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +3 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3c11c068._.js +8 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_89b49aad._.js +7 -0
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ae1a134f._.js +7 -0
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_2a02508d._.js +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b8e580cc._.js +4 -0
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +2 -2
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js → apps_local_components_chat-ui_ChatContainer_tsx_47371955._.js} +2 -2
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +3 -3
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eb223411._.js +18 -0
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_7d1abfbf._.js → apps_local_f1c9872a._.js} +2 -2
  258. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +3 -0
  259. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  260. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  262. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  263. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  264. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08e75b35d6c52269.js +1 -0
  267. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +1 -0
  268. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{cb19d71dd7ffb935.js → 1585dd5f9ec4866a.js} +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +1 -0
  270. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +16 -0
  271. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2aa24a251622fd06.js +5 -0
  272. package/cloud-runtime/standalone/apps/local/.next/static/chunks/39513207112d6828.js +1 -0
  273. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{74e3a3e93be78db8.js → 40857295bb9226c4.js} +7 -7
  274. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8d8fe711583a59f0.js → 41ae15220fc19bf7.js} +2 -2
  275. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5092f14c2bf43204.js +16 -0
  276. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5159169343ce6d2f.css +1 -0
  277. package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +1 -0
  278. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7bfbfcd072f8d61e.js +20 -0
  279. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7cf26dd04166f32f.js +6 -0
  280. package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dcb743d23feeca.js +16 -0
  281. package/cloud-runtime/standalone/apps/local/.next/static/chunks/93749b45e2700808.js +16 -0
  282. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{48feca51cf97c8a7.js → 9bb8f1406365af81.js} +1 -1
  283. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b4aa71020acae46f.js +16 -0
  284. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +1 -0
  285. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +16 -0
  286. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1600dd6ff8607d8f.js → c9a2c4b55bb76f4f.js} +6 -6
  287. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d6a9cc66254693b8.js +1 -0
  288. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{9e703dd5d95e9557.js → e3bdd1e0f385114e.js} +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6ffcd12eabd7c65e.js → f71d73895d228547.js} +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f750d2f1882d31a8.js +5 -0
  291. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -10
  292. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/program/route.ts +77 -0
  293. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/export/route.ts +35 -0
  294. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/import/route.ts +91 -0
  295. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +1 -8
  296. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  297. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/thread/page.tsx +14 -0
  298. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +15 -15
  299. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +7 -12
  300. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +51 -196
  301. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +662 -784
  302. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +7 -10
  303. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
  304. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +118 -0
  305. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSettings.tsx +81 -7
  306. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +13 -3
  307. package/cloud-runtime/standalone/apps/local/hooks/useProjectWorkspace.ts +117 -0
  308. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +14 -10
  309. package/cloud-runtime/standalone/apps/local/lib/project-workspace.ts +80 -0
  310. package/cloud-runtime/standalone/apps/local/lib/task-context.ts +39 -4
  311. package/cloud-runtime/standalone/apps/local/lib/workspace-yaml.ts +164 -0
  312. package/cloud-runtime/standalone/apps/local/src/objectives/program/index.ts +7 -0
  313. package/cloud-runtime/standalone/apps/local/src/objectives/program/repository.ts +60 -0
  314. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +12 -0
  315. package/cloud-runtime/standalone/apps/local/src/scheduling/status.ts +42 -0
  316. package/cloud-runtime/standalone/apps/local/worker/index.js +14 -9
  317. package/lib/commands/workspace.js +145 -7
  318. package/package.json +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_09d85861._.js +0 -91
  320. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +0 -11
  321. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2caf4398._.js +0 -91
  322. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_31ca7a35._.js +0 -91
  323. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +0 -3
  324. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__23838f87._.js +0 -3
  325. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +0 -3
  326. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +0 -3
  327. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +0 -3
  328. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +0 -3
  329. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +0 -3
  330. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__a61463b8._.js +0 -7
  331. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +0 -3
  332. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +0 -3
  333. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ecd68e8._.js +0 -3
  334. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +0 -7
  335. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_5c140c38._.js +0 -7
  336. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +0 -3
  337. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_30d021de._.js +0 -3
  338. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +0 -18
  339. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +0 -3
  340. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_8cc1a335._.js +0 -3
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +0 -16
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/692103d55fcd0328.js +0 -5
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +0 -16
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +0 -1
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +0 -16
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/87e4fb11329a358d.js +0 -1
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/92467c495ad08a85.js +0 -5
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +0 -16
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/94a66d2d19268d25.js +0 -5
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/add53c2fe147af75.css +0 -1
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +0 -1
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d662272e49df1950.js +0 -20
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e0d68c6af17c8c87.js +0 -1
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +0 -16
  355. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → xVMVGrzDjtD1H0bGL76NJ}/_buildManifest.js +0 -0
  356. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → xVMVGrzDjtD1H0bGL76NJ}/_clientMiddlewareManifest.json +0 -0
  357. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → xVMVGrzDjtD1H0bGL76NJ}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[859117,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(837554),e=a.i(238234),f=a.i(412690),g=a.i(831709);let h=(0,g.default)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var i=a.i(754812),j=a.i(820859),k=a.i(353532),l=a.i(864061),m=a.i(542341);let n=(0,g.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),o=(0,g.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);var p=a.i(252197),q=a.i(824179),r=a.i(520612);let s="items",t=null;function u(){return"u"<typeof indexedDB?Promise.resolve(null):t||(t=new Promise(a=>{let b=indexedDB.open("agx-tracker-cache",1);b.onupgradeneeded=()=>{let a=b.result;a.objectStoreNames.contains(s)||a.createObjectStore(s)},b.onsuccess=()=>a(b.result),b.onerror=()=>a(null)}))}async function v(a){let b=await u();return b?new Promise(c=>{try{let d=b.transaction(s,"readonly").objectStore(s).get(a);d.onsuccess=()=>c(d.result??null),d.onerror=()=>c(null)}catch{c(null)}}):null}async function w(a,b){let c=await u();if(c)return new Promise(d=>{try{let e=c.transaction(s,"readwrite");e.objectStore(s).put(b,a),e.oncomplete=()=>d(),e.onerror=()=>d(),e.onabort=()=>d()}catch{d()}})}var x=a.i(947218);function y(a,b,d){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(null),k=(0,c.useRef)(b??null);k.current=b??null;let l=`/api/trackers/${encodeURIComponent(a)}/runs`,m=(0,c.useCallback)(async()=>{let a=k.current?.trim();if(!a)return f([]),j(null),[];h(!0);try{let b=new URLSearchParams({issueId:a});d&&b.set("projectId",d);let c=await fetch(`${l}?${b.toString()}`);if(!c.ok)throw Error(`Failed to fetch tracker runs: ${c.status}`);let e=await c.json(),g=Array.isArray(e.runs)?e.runs:[];return f(g),j(a),g}finally{h(!1)}},[d,l]);return(0,c.useEffect)(()=>{f([]),j(null),m()},[m,b]),(0,c.useEffect)(()=>{if(!b)return;let a=window.setInterval(()=>{m()},3e3);return()=>window.clearInterval(a)},[b,m]),{runs:e,loading:g,loadedForIssueId:i,refresh:m,createRun:(0,c.useCallback)(async a=>{let b=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||`Failed to create tracker run: ${b.status}`);let c=await b.json(),d=c.run,e=c.recapContent??null;return f(a=>[d,...a.filter(a=>a.id!==d.id)]),{run:d,recapContent:e}},[l]),updateRun:(0,c.useCallback)(async(a,b)=>{let c=await fetch(`${l}/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||`Failed to update tracker run: ${c.status}`);let d=(await c.json()).run;return f(a=>a.map(a=>a.id===d.id?d:a)),d},[l])}}let z={activeScriptId:null,scripts:[]};var A=a.i(155829),B=a.i(496368),C=a.i(86007),D=a.i(627421),E=a.i(354658),F=a.i(697183),G=a.i(734709),H=a.i(86466);function I({projectSlug:a,scripts:d,activeScriptId:e,onSetActiveScriptId:f,onSaveScript:g,onDeleteScript:h}){let i=(0,c.useMemo)(()=>d.find(a=>a.id===e)??null,[e,d]),[j,l]=(0,c.useState)(()=>e?{type:"edit",scriptId:e}:{type:"new"}),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(null),u="edit"===j.type?j.scriptId:null;(0,c.useEffect)(()=>{if("edit"===j.type){let a=d.find(a=>a.id===j.scriptId);if(a){n(a.name),p(a.prompt);return}}if(i&&"new"!==j.type){("edit"!==j.type||j.scriptId!==i.id)&&l({type:"edit",scriptId:i.id}),n(i.name),p(i.prompt);return}0===d.length&&"new"!==j.type&&(l({type:"new"}),n(""),p(""))},[i,u,j,d]);let v=()=>{l({type:"new"}),n(""),p(""),r(null)},w=()=>{try{let a=g({name:m,prompt:o});l({type:"edit",scriptId:a.id}),r(null)}catch(a){r(a instanceof Error?a.message:"Failed to save session script.")}};return(0,b.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Session Scripts"}),(0,b.jsxs)("p",{className:"text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Save reusable kickoff prompts for the ",String(a??"").trim()||"global tracker board",". These scripts stay on this device and layer on top of the built-in ticket context whenever you start a scripted session."]})]}),(0,b.jsxs)("div",{className:"grid gap-5 md:grid-cols-[240px_minmax(0,1fr)]",children:[(0,b.jsxs)("aside",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--muted-foreground)]",children:"Library"}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-[11px] font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:v,children:[(0,b.jsx)(k.Plus,{size:12}),"New"]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("button",{type:"button",className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${null===e?"bg-[var(--background)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>f(null),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${null===e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:null===e?(0,b.jsx)(D.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium",children:"AGX default"})]}),0===d.length?(0,b.jsx)("div",{className:"rounded-lg border border-dashed border-[var(--card-border)] px-3 py-4 text-xs leading-relaxed text-[var(--muted-foreground)]",children:"No saved scripts yet. Create one to reuse your preferred scripted session prompt."}):d.map(a=>{let c=a.id===e,d="edit"===j.type&&j.scriptId===a.id;return(0,b.jsx)("button",{type:"button",className:`rounded-lg border px-3 py-2 text-left transition-colors ${d?"border-blue-500/50 bg-[var(--background)]":"border-transparent hover:border-[var(--card-border)] hover:bg-[var(--background)]"}`,onClick:()=>{l({type:"edit",scriptId:a.id}),n(a.name),p(a.prompt),r(null),f(a.id)},children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("span",{className:`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${c?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:c?(0,b.jsx)(D.Check,{size:10}):null}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("div",{className:"mt-1 line-clamp-2 text-[11px] leading-relaxed text-[var(--muted-foreground)]",children:a.prompt}),(0,b.jsxs)("div",{className:"mt-2 text-[10px] uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:["Updated ",function(a){try{return new Date(a).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return a}}(a.updatedAt)]})]})]})},a.id)})]})]}),(0,b.jsxs)("section",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"text-sm font-semibold text-[var(--foreground)]",children:"edit"===j.type?"Edit Session Script":"New Session Script"}),(0,b.jsxs)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Use placeholders like ",(0,b.jsx)("code",{children:"{{ticket.identifier}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.title}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.status}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.assignee}}"}),", ",(0,b.jsx)("code",{children:"{{project.slug}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.root}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.issue_path}}"}),", and ",(0,b.jsx)("code",{children:"{{worktree.path}}"}),"."]})]}),i?(0,b.jsxs)("span",{className:"rounded-full border border-blue-500/30 bg-blue-500/10 px-2.5 py-1 text-[11px] font-medium text-blue-400",children:["Active: ",i.name]}):(0,b.jsx)("span",{className:"rounded-full border border-[var(--card-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--muted-foreground)]",children:"Active: AGX default"})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{type:"text",className:"rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-blue-500",placeholder:"Investigation-first",value:m,onChange:a=>n(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Prompt"}),(0,b.jsx)("div",{className:"overflow-hidden rounded-lg border border-[var(--card-border)] bg-[var(--background)] transition-colors focus-within:border-blue-500 [&_.rich-text-editor_.ProseMirror]:min-h-[220px]",children:(0,b.jsx)(H.default,{content:o,onChange:p,placeholder:"Read {{ticket.identifier}} and the full comment thread before changing code.\nWrite your investigation to {{knowledge_base.issue_path}} and stop after posting a plan unless the item is already approved for implementation."})})]}),q?(0,b.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:q}):null,(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg bg-blue-500 px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",onClick:w,children:[(0,b.jsx)(E.Save,{size:14}),"Save as new"]}),"edit"===j.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:()=>{if("edit"!==j.type)return void w();try{let a=g({id:j.scriptId,name:m,prompt:o});l({type:"edit",scriptId:a.id}),r(null)}catch(a){r(a instanceof Error?a.message:"Failed to update session script.")}},children:[(0,b.jsx)(E.Save,{size:14}),"Update"]}):null,"edit"===j.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-red-500/30 px-3 py-2 text-sm font-medium text-red-300 transition-colors hover:bg-red-500/10",onClick:()=>{t(d.find(a=>a.id===j.scriptId)??null)},children:[(0,b.jsx)(F.Trash2,{size:14}),"Delete"]}):null,(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:v,children:[(0,b.jsx)(k.Plus,{size:14}),"Clear editor"]})]})]})]})]}),(0,b.jsx)(G.default,{isOpen:!!s,title:"Delete session script?",message:"This removes the saved script from this device for the current project.",preview:s?.name,confirmLabel:"Delete",variant:"danger",onConfirm:()=>{s&&(h(s.id),"edit"===j.type&&j.scriptId===s.id&&(l({type:"new"}),n(""),p("")),t(null),r(null))},onCancel:()=>t(null)})]})}var J=a.i(475632),K=a.i(529889);let L={search:"",assigneeIds:[],statusCategories:[],groupIds:[],labelNames:[],sortBy:"activity",sortDir:"desc",hasActivity:!1};var M=a.i(427411),N=a.i(837929),O=a.i(785061),P=a.i(778784),Q=a.i(971382);let R=(0,g.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),S=(0,g.default)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var T=a.i(60985),U=a.i(811760),V=a.i(756490),W=a.i(73948),X=a.i(201485);let Y=`Pick the highest-priority actionable ticket. Prefer tickets that:
1
+ module.exports=[859117,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(837554),e=a.i(238234),f=a.i(412690),g=a.i(831709);let h=(0,g.default)("square-check-big",[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);var i=a.i(754812),j=a.i(820859),k=a.i(353532),l=a.i(864061),m=a.i(542341),n=a.i(642784);let o=(0,g.default)("square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);var p=a.i(252197),q=a.i(824179),r=a.i(520612);let s="items",t=null;function u(){return"u"<typeof indexedDB?Promise.resolve(null):t||(t=new Promise(a=>{let b=indexedDB.open("agx-tracker-cache",1);b.onupgradeneeded=()=>{let a=b.result;a.objectStoreNames.contains(s)||a.createObjectStore(s)},b.onsuccess=()=>a(b.result),b.onerror=()=>a(null)}))}async function v(a){let b=await u();return b?new Promise(c=>{try{let d=b.transaction(s,"readonly").objectStore(s).get(a);d.onsuccess=()=>c(d.result??null),d.onerror=()=>c(null)}catch{c(null)}}):null}async function w(a,b){let c=await u();if(c)return new Promise(d=>{try{let e=c.transaction(s,"readwrite");e.objectStore(s).put(b,a),e.oncomplete=()=>d(),e.onerror=()=>d(),e.onabort=()=>d()}catch{d()}})}var x=a.i(947218);function y(a,b,d){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(null),k=(0,c.useRef)(b??null);k.current=b??null;let l=`/api/trackers/${encodeURIComponent(a)}/runs`,m=(0,c.useCallback)(async()=>{let a=k.current?.trim();if(!a)return f([]),j(null),[];h(!0);try{let b=new URLSearchParams({issueId:a});d&&b.set("projectId",d);let c=await fetch(`${l}?${b.toString()}`);if(!c.ok)throw Error(`Failed to fetch tracker runs: ${c.status}`);let e=await c.json(),g=Array.isArray(e.runs)?e.runs:[];return f(g),j(a),g}finally{h(!1)}},[d,l]);return(0,c.useEffect)(()=>{f([]),j(null),m()},[m,b]),(0,c.useEffect)(()=>{if(!b)return;let a=window.setInterval(()=>{m()},3e3);return()=>window.clearInterval(a)},[b,m]),{runs:e,loading:g,loadedForIssueId:i,refresh:m,createRun:(0,c.useCallback)(async a=>{let b=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||`Failed to create tracker run: ${b.status}`);let c=await b.json(),d=c.run,e=c.recapContent??null;return f(a=>[d,...a.filter(a=>a.id!==d.id)]),{run:d,recapContent:e}},[l]),updateRun:(0,c.useCallback)(async(a,b)=>{let c=await fetch(`${l}/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||`Failed to update tracker run: ${c.status}`);let d=(await c.json()).run;return f(a=>a.map(a=>a.id===d.id?d:a)),d},[l])}}let z={activeScriptId:null,scripts:[]};var A=a.i(155829),B=a.i(496368),C=a.i(86007),D=a.i(627421),E=a.i(354658),F=a.i(697183),G=a.i(734709),H=a.i(86466);function I({projectSlug:a,scripts:d,activeScriptId:e,onSetActiveScriptId:f,onSaveScript:g,onDeleteScript:h}){let i=(0,c.useMemo)(()=>d.find(a=>a.id===e)??null,[e,d]),[j,l]=(0,c.useState)(()=>e?{type:"edit",scriptId:e}:{type:"new"}),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(null),u="edit"===j.type?j.scriptId:null;(0,c.useEffect)(()=>{if("edit"===j.type){let a=d.find(a=>a.id===j.scriptId);if(a){n(a.name),p(a.prompt);return}}if(i&&"new"!==j.type){("edit"!==j.type||j.scriptId!==i.id)&&l({type:"edit",scriptId:i.id}),n(i.name),p(i.prompt);return}0===d.length&&"new"!==j.type&&(l({type:"new"}),n(""),p(""))},[i,u,j,d]);let v=()=>{l({type:"new"}),n(""),p(""),r(null)},w=()=>{try{let a=g({name:m,prompt:o});l({type:"edit",scriptId:a.id}),r(null)}catch(a){r(a instanceof Error?a.message:"Failed to save session script.")}};return(0,b.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Session Scripts"}),(0,b.jsxs)("p",{className:"text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Save reusable kickoff prompts for the ",String(a??"").trim()||"global tracker board",". These scripts stay on this device and layer on top of the built-in ticket context whenever you start a scripted session."]})]}),(0,b.jsxs)("div",{className:"grid gap-5 md:grid-cols-[240px_minmax(0,1fr)]",children:[(0,b.jsxs)("aside",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--muted-foreground)]",children:"Library"}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-[11px] font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:v,children:[(0,b.jsx)(k.Plus,{size:12}),"New"]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("button",{type:"button",className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${null===e?"bg-[var(--background)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>f(null),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${null===e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:null===e?(0,b.jsx)(D.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium",children:"AGX default"})]}),0===d.length?(0,b.jsx)("div",{className:"rounded-lg border border-dashed border-[var(--card-border)] px-3 py-4 text-xs leading-relaxed text-[var(--muted-foreground)]",children:"No saved scripts yet. Create one to reuse your preferred scripted session prompt."}):d.map(a=>{let c=a.id===e,d="edit"===j.type&&j.scriptId===a.id;return(0,b.jsx)("button",{type:"button",className:`rounded-lg border px-3 py-2 text-left transition-colors ${d?"border-blue-500/50 bg-[var(--background)]":"border-transparent hover:border-[var(--card-border)] hover:bg-[var(--background)]"}`,onClick:()=>{l({type:"edit",scriptId:a.id}),n(a.name),p(a.prompt),r(null),f(a.id)},children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("span",{className:`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${c?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:c?(0,b.jsx)(D.Check,{size:10}):null}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("div",{className:"mt-1 line-clamp-2 text-[11px] leading-relaxed text-[var(--muted-foreground)]",children:a.prompt}),(0,b.jsxs)("div",{className:"mt-2 text-[10px] uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:["Updated ",function(a){try{return new Date(a).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return a}}(a.updatedAt)]})]})]})},a.id)})]})]}),(0,b.jsxs)("section",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"text-sm font-semibold text-[var(--foreground)]",children:"edit"===j.type?"Edit Session Script":"New Session Script"}),(0,b.jsxs)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Use placeholders like ",(0,b.jsx)("code",{children:"{{ticket.identifier}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.title}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.status}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.assignee}}"}),", ",(0,b.jsx)("code",{children:"{{project.slug}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.root}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.issue_path}}"}),", and ",(0,b.jsx)("code",{children:"{{worktree.path}}"}),"."]})]}),i?(0,b.jsxs)("span",{className:"rounded-full border border-blue-500/30 bg-blue-500/10 px-2.5 py-1 text-[11px] font-medium text-blue-400",children:["Active: ",i.name]}):(0,b.jsx)("span",{className:"rounded-full border border-[var(--card-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--muted-foreground)]",children:"Active: AGX default"})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{type:"text",className:"rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-blue-500",placeholder:"Investigation-first",value:m,onChange:a=>n(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Prompt"}),(0,b.jsx)("div",{className:"overflow-hidden rounded-lg border border-[var(--card-border)] bg-[var(--background)] transition-colors focus-within:border-blue-500 [&_.rich-text-editor_.ProseMirror]:min-h-[220px]",children:(0,b.jsx)(H.default,{content:o,onChange:p,placeholder:"Read {{ticket.identifier}} and the full comment thread before changing code.\nWrite your investigation to {{knowledge_base.issue_path}} and stop after posting a plan unless the item is already approved for implementation."})})]}),q?(0,b.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:q}):null,(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg bg-blue-500 px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",onClick:w,children:[(0,b.jsx)(E.Save,{size:14}),"Save as new"]}),"edit"===j.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:()=>{if("edit"!==j.type)return void w();try{let a=g({id:j.scriptId,name:m,prompt:o});l({type:"edit",scriptId:a.id}),r(null)}catch(a){r(a instanceof Error?a.message:"Failed to update session script.")}},children:[(0,b.jsx)(E.Save,{size:14}),"Update"]}):null,"edit"===j.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-red-500/30 px-3 py-2 text-sm font-medium text-red-300 transition-colors hover:bg-red-500/10",onClick:()=>{t(d.find(a=>a.id===j.scriptId)??null)},children:[(0,b.jsx)(F.Trash2,{size:14}),"Delete"]}):null,(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:v,children:[(0,b.jsx)(k.Plus,{size:14}),"Clear editor"]})]})]})]})]}),(0,b.jsx)(G.default,{isOpen:!!s,title:"Delete session script?",message:"This removes the saved script from this device for the current project.",preview:s?.name,confirmLabel:"Delete",variant:"danger",onConfirm:()=>{s&&(h(s.id),"edit"===j.type&&j.scriptId===s.id&&(l({type:"new"}),n(""),p("")),t(null),r(null))},onCancel:()=>t(null)})]})}var J=a.i(475632),K=a.i(529889);let L={search:"",assigneeIds:[],statusCategories:[],groupIds:[],labelNames:[],sortBy:"activity",sortDir:"desc",hasActivity:!1};var M=a.i(427411),N=a.i(837929),O=a.i(785061),P=a.i(778784),Q=a.i(971382);let R=(0,g.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),S=(0,g.default)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var T=a.i(60985),U=a.i(811760),V=a.i(756490),W=a.i(73948),X=a.i(201485);let Y=`Pick the highest-priority actionable ticket. Prefer tickets that:
2
2
  1. Are already started (existing branches, PRs, or prior comments) — continue where you left off.
3
3
  2. Are assigned to you or unassigned.
4
4
  3. Have the most urgent priority or earliest due date.
@@ -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=new Set(["queued","running","awaiting_user","blocked"]),x=t.some(a=>w.has(a.status))||r.some(a=>"spawning"===a.state||"running"===a.state)?t.some(a=>"queued"===a.status)?"queued":"working":"ready",y=(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",{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)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:d.rootMessageId?(0,b.jsx)(bc,{onSend:y,onStop:q,participants:e,projectId:d.projectId??void 0,projectSlug:d.projectSlug??void 0,loading:"ready"!==x,commands:[],activityStatus:x,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,{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 at least one agent to this project to start a session."}):(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,{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 at least one agent to this project to start a session."}):(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)(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=new Set(["queued","running","awaiting_user","blocked"]),x=t.some(a=>w.has(a.status))||r.some(a=>"spawning"===a.state||"running"===a.state)?t.some(a=>"queued"===a.status)?"queued":"working":"ready",y=(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",{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)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:d.rootMessageId?(0,b.jsx)(bc,{onSend:y,onStop:q,participants:e,projectId:d.projectId??void 0,projectSlug:d.projectSlug??void 0,loading:"ready"!==x,commands:[],activityStatus:x,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 at least one agent to this project to start a session."}):(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 at least one agent to this project to start a session."}):(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)}];
49
49
 
50
50
  //# sourceMappingURL=apps_local_components_TrackerBoard_tsx_98970bab._.js.map