@mndrk/agx 2.4.1 → 2.4.3

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 (305) 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 +5 -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 +41 -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]/scheduled-tasks/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route/app-paths-manifest.json +3 -0
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route/build-manifest.json +11 -0
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route/server-reference-manifest.json +4 -0
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js +7 -0
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.map +5 -0
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -0
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route_client-reference-manifest.js +2 -0
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route/app-paths-manifest.json +3 -0
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route/build-manifest.json +11 -0
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route/server-reference-manifest.json +4 -0
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js +7 -0
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.map +5 -0
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -0
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route_client-reference-manifest.js +2 -0
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route/app-paths-manifest.json +3 -0
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route/build-manifest.json +11 -0
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route/server-reference-manifest.json +4 -0
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js +7 -0
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.map +5 -0
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -0
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route_client-reference-manifest.js +2 -0
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route/app-paths-manifest.json +3 -0
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route/build-manifest.json +11 -0
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route/server-reference-manifest.json +4 -0
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js +7 -0
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.map +5 -0
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -0
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route_client-reference-manifest.js +2 -0
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route/app-paths-manifest.json +3 -0
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route/build-manifest.json +11 -0
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route/server-reference-manifest.json +4 -0
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +7 -0
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.map +5 -0
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -0
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route_client-reference-manifest.js +2 -0
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +2 -2
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/react-loadable-manifest.json +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/react-loadable-manifest.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +2 -2
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +2 -2
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +2 -2
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +5 -0
  193. package/cloud-runtime/standalone/apps/local/.next/server/chunks/083c9_next-internal_server_app_api_trackers_[tracker]_metadata_route_actions_c83fcc1a.js +3 -0
  194. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_labels_[id]_route_actions_2646388d.js +3 -0
  195. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_metadata_bulk_route_actions_f43e6831.js +3 -0
  196. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e04eca4._.js +40 -0
  197. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10a90219._.js +3 -3
  198. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1d970ad0._.js +40 -0
  199. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3a038592._.js +3 -3
  200. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3b27260f._.js +23 -8
  201. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__580ddcca._.js +40 -0
  202. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5da8d281._.js +129 -0
  203. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__68b692c4._.js +9 -9
  204. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__76030d44._.js +40 -0
  205. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7db7c421._.js +20 -5
  206. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7fcbb0c2._.js +4 -4
  207. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8cc43c7._.js +22 -7
  208. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f598d976._.js +1 -1
  209. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a936d9._.js +21 -6
  210. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_80b34b78._.js +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_8f9f647d._.js +28 -13
  212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d256aa32._.js +28 -25
  213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +17 -17
  214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_tracker_tracker-run-store_ts_5aa9592e._.js +22 -7
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_labels_route_actions_8ba41152.js +3 -0
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_stats_route_actions_7da4ccde.js +3 -0
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__799f4d13._.js → [root-of-the-server]__2af44092._.js} +2 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__452cb0f0._.js +3 -0
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__489568b4._.js +3 -0
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ec098a0._.js +3 -0
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__53bd50df._.js +3 -0
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7774a40c._.js +3 -0
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__b8484b0e._.js +7 -0
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__51edc9b6._.js → [root-of-the-server]__bd05ee09._.js} +2 -2
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_8c4beba9._.js +7 -0
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_35d90b5d._.js → apps_local_bbb7b83b._.js} +2 -2
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +6 -6
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_f0554cb4._.js +1 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +5 -0
  230. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  231. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  232. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  233. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  235. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0243e7d015db440d.js +5 -0
  236. package/cloud-runtime/standalone/apps/local/.next/static/chunks/42a62b80b32a97f7.js +9 -0
  237. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5d047fc7267a8f53.js +16 -0
  238. package/cloud-runtime/standalone/apps/local/.next/static/chunks/716e1716d526ded9.js +46 -0
  239. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{77cea126364aab3c.js → 7353a3a1fcd5825c.js} +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9acdd370e9daca0d.js +16 -0
  241. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6c777fe66e042eec.js → 9df45611d6c84e02.js} +1 -1
  242. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a084c6475513e6fe.js +16 -0
  243. package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa6db7c91c1ccd5f.js +16 -0
  244. package/cloud-runtime/standalone/apps/local/.next/static/chunks/cecf3e8c47c785f5.js +5 -0
  245. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d5607ac80145f3b7.js +1 -0
  246. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{d5b14e14665024a9.js → d5c307b52fd87861.js} +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f4acf76cb6c82c73.js +16 -0
  248. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f6d31036588ddfe4.css +1 -0
  249. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/[id]/route.ts +23 -0
  250. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/route.ts +41 -0
  251. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/bulk/route.ts +68 -0
  252. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/route.ts +31 -0
  253. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/options/route.ts +1 -0
  254. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/stats/route.ts +20 -0
  255. package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +609 -85
  256. package/cloud-runtime/standalone/apps/local/components/tracker/FibonacciPicker.tsx +41 -0
  257. package/cloud-runtime/standalone/apps/local/components/tracker/FolderRow.tsx +1 -1
  258. package/cloud-runtime/standalone/apps/local/components/tracker/LabelPicker.tsx +118 -0
  259. package/cloud-runtime/standalone/apps/local/components/tracker/LabelSettings.tsx +104 -0
  260. package/cloud-runtime/standalone/apps/local/components/tracker/PromptPopover.tsx +64 -0
  261. package/cloud-runtime/standalone/apps/local/components/tracker/SelectionBar.tsx +276 -23
  262. package/cloud-runtime/standalone/apps/local/components/tracker/StatusGroupRow.tsx +50 -0
  263. package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +14 -2
  264. package/cloud-runtime/standalone/apps/local/components/tracker/TicketRow.tsx +147 -7
  265. package/cloud-runtime/standalone/apps/local/components/tracker/TrackerSettingsModal.tsx +14 -2
  266. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +15 -22
  267. package/cloud-runtime/standalone/apps/local/hooks/useTrackerIssueStats.ts +52 -0
  268. package/cloud-runtime/standalone/apps/local/hooks/useTrackerItemMetadata.ts +67 -0
  269. package/cloud-runtime/standalone/apps/local/hooks/useTrackerItemsMetadata.ts +51 -0
  270. package/cloud-runtime/standalone/apps/local/hooks/useTrackerLabels.ts +74 -0
  271. package/cloud-runtime/standalone/apps/local/hooks/useTrackerRuns.ts +5 -0
  272. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +6 -1
  273. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/adapter.tsx +1 -0
  274. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/issues.ts +1 -0
  275. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/adapter.tsx +1 -0
  276. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/client.ts +5 -0
  277. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/issues.ts +1 -0
  278. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-adapter.ts +2 -0
  279. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-metadata-store.ts +262 -0
  280. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-store.ts +10 -3
  281. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-run-store.ts +42 -0
  282. package/cloud-runtime/standalone/apps/local/state/trackerBoardFilters.ts +4 -0
  283. package/cloud-runtime/standalone/apps/local/worker/index.js +5 -2
  284. package/package.json +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__30bf097e._.js +0 -3
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__46ae9d33._.js +0 -3
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__50fd8680._.js +0 -3
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__8059a285._.js +0 -3
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__886953ec._.js +0 -7
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__97160565._.js +0 -3
  291. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0876dfd6ce07abaf.js +0 -9
  292. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1ec83777a9abd420.js +0 -16
  293. package/cloud-runtime/standalone/apps/local/.next/static/chunks/286758b0fd546c68.js +0 -16
  294. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a72ed5cb3feb0d51.js +0 -5
  295. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b02c180ad1d968eb.js +0 -16
  296. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b048a4812b51f97a.js +0 -1
  297. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c63d97c917d96f47.js +0 -46
  298. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d3bf70e2fbdc0ae5.js +0 -5
  299. package/cloud-runtime/standalone/apps/local/.next/static/chunks/dd5a56eea2d4c067.js +0 -16
  300. package/cloud-runtime/standalone/apps/local/.next/static/chunks/dd7d7c382389b8b9.js +0 -16
  301. package/cloud-runtime/standalone/apps/local/.next/static/chunks/ec92e3bd6c2db6e6.css +0 -1
  302. package/cloud-runtime/standalone/apps/local/.next/static/chunks/ffcc32453866d0c2.js +0 -1
  303. /package/cloud-runtime/standalone/apps/local/.next/static/{ycVU7ABTMiX10ainku7bE → 4MnUE2NHztybGBWFbcBo5}/_buildManifest.js +0 -0
  304. /package/cloud-runtime/standalone/apps/local/.next/static/{ycVU7ABTMiX10ainku7bE → 4MnUE2NHztybGBWFbcBo5}/_clientMiddlewareManifest.json +0 -0
  305. /package/cloud-runtime/standalone/apps/local/.next/static/{ycVU7ABTMiX10ainku7bE → 4MnUE2NHztybGBWFbcBo5}/_ssgManifest.js +0 -0
@@ -1,46 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,471387,e=>{"use strict";var t=e.i(762281),r=e.i(935851),s=e.i(353899),a=e.i(878001),n=e.i(507193),i=e.i(493141),o=e.i(580873),l=e.i(929870),d=e.i(203096),c=e.i(8707),u=e.i(363732);let p=(0,u.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"}]]);var m=e.i(169610),x=e.i(797167),f=e.i(66386),g=e.i(287472);function h(e,t,s){let[a,n]=(0,r.useState)([]),[i,o]=(0,r.useState)(!1),l=(0,r.useRef)(t??null);l.current=t??null;let d=`/api/trackers/${encodeURIComponent(e)}/runs`,c=(0,r.useCallback)(async()=>{let e=l.current?.trim();if(!e)return n([]),[];o(!0);try{let t=new URLSearchParams({issueId:e});s&&t.set("projectId",s);let r=await fetch(`${d}?${t.toString()}`);if(!r.ok)throw Error(`Failed to fetch tracker runs: ${r.status}`);let a=await r.json(),i=Array.isArray(a.runs)?a.runs:[];return n(i),i}finally{o(!1)}},[s,d]);return(0,r.useEffect)(()=>{n([]),c()},[c,t]),(0,r.useEffect)(()=>{if(!t)return;let e=window.setInterval(()=>{c()},3e3);return()=>window.clearInterval(e)},[t,c]),{runs:a,loading:i,refresh:c,createRun:(0,r.useCallback)(async e=>{let t=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||`Failed to create tracker run: ${t.status}`);let r=await t.json(),s=r.run,a=r.recapContent??null;return n(e=>[s,...e.filter(e=>e.id!==s.id)]),{run:s,recapContent:a}},[d]),updateRun:(0,r.useCallback)(async(e,t)=>{let r=await fetch(`${d}/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||`Failed to update tracker run: ${r.status}`);let s=(await r.json()).run;return n(e=>e.map(e=>e.id===s.id?s:e)),s},[d])}}let b={activeScriptId:null,scripts:[]};function v(){return void 0!==window.localStorage}function j(e){if(!e||"object"!=typeof e)return{...b};let t=Array.isArray(e.scripts)?[...e.scripts.map(e=>(function(e){if(!e||"object"!=typeof e)return null;let t="string"==typeof e.id?e.id.trim():"",r="string"==typeof e.name?e.name.trim():"",s="string"==typeof e.prompt?e.prompt.trim():"",a="string"==typeof e.createdAt&&e.createdAt.trim()?e.createdAt.trim():"",n="string"==typeof e.updatedAt&&e.updatedAt.trim()?e.updatedAt.trim():a;return t&&r&&s&&a&&n?{id:t,name:r,prompt:s,createdAt:a,updatedAt:n}:null})(e)).filter(e=>!!e)].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)):[],r="string"==typeof e.activeScriptId&&e.activeScriptId.trim()?e.activeScriptId.trim():null;return{activeScriptId:r&&t.some(e=>e.id===r)?r:null,scripts:t}}function y(e,t){let r=String(t??"").trim().toLowerCase(),s=`agx-tracker:runScripts:${e}`;return r?`${s}:${r}`:`${s}:global`}var k=e.i(945028),w=e.i(490011),N=e.i(208343),S=e.i(529471),C=e.i(693646),I=e.i(794731),$=e.i(352687),R=e.i(40527);function A({projectSlug:e,scripts:s,activeScriptId:a,onSetActiveScriptId:n,onSaveScript:i,onDeleteScript:o}){let d=(0,r.useMemo)(()=>s.find(e=>e.id===a)??null,[a,s]),[c,u]=(0,r.useState)(()=>a?{type:"edit",scriptId:a}:{type:"new"}),[p,m]=(0,r.useState)(""),[x,f]=(0,r.useState)(""),[g,h]=(0,r.useState)(null),[b,v]=(0,r.useState)(null),j="edit"===c.type?c.scriptId:null;(0,r.useEffect)(()=>{if("edit"===c.type){let e=s.find(e=>e.id===c.scriptId);if(e){m(e.name),f(e.prompt);return}}if(d&&"new"!==c.type){("edit"!==c.type||c.scriptId!==d.id)&&u({type:"edit",scriptId:d.id}),m(d.name),f(d.prompt);return}0===s.length&&"new"!==c.type&&(u({type:"new"}),m(""),f(""))},[d,j,c,s]);let y=()=>{u({type:"new"}),m(""),f(""),h(null)},k=()=>{try{let e=i({name:p,prompt:x});u({type:"edit",scriptId:e.id}),h(null)}catch(e){h(e instanceof Error?e.message:"Failed to save session script.")}};return(0,t.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Session Scripts"}),(0,t.jsxs)("p",{className:"text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Save reusable kickoff prompts for the ",String(e??"").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,t.jsxs)("div",{className:"grid gap-5 md:grid-cols-[240px_minmax(0,1fr)]",children:[(0,t.jsxs)("aside",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-3",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--muted-foreground)]",children:"Library"}),(0,t.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:y,children:[(0,t.jsx)(l.Plus,{size:12}),"New"]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.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===a?"bg-[var(--background)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>n(null),children:[(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${null===a?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:null===a?(0,t.jsx)(S.Check,{size:10}):null}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium",children:"AGX default"})]}),0===s.length?(0,t.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."}):s.map(e=>{let r=e.id===a,s="edit"===c.type&&c.scriptId===e.id;return(0,t.jsx)("button",{type:"button",className:`rounded-lg border px-3 py-2 text-left transition-colors ${s?"border-blue-500/50 bg-[var(--background)]":"border-transparent hover:border-[var(--card-border)] hover:bg-[var(--background)]"}`,onClick:()=>{u({type:"edit",scriptId:e.id}),m(e.name),f(e.prompt),h(null),n(e.id)},children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${r?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:r?(0,t.jsx)(S.Check,{size:10}):null}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-xs font-medium text-[var(--foreground)]",children:e.name}),(0,t.jsx)("div",{className:"mt-1 line-clamp-2 text-[11px] leading-relaxed text-[var(--muted-foreground)]",children:e.prompt}),(0,t.jsxs)("div",{className:"mt-2 text-[10px] uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:["Updated ",function(e){try{return new Date(e).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return e}}(e.updatedAt)]})]})]})},e.id)})]})]}),(0,t.jsxs)("section",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,t.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-semibold text-[var(--foreground)]",children:"edit"===c.type?"Edit Session Script":"New Session Script"}),(0,t.jsxs)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Use placeholders like ",(0,t.jsx)("code",{children:"{{ticket.identifier}}"}),", ",(0,t.jsx)("code",{children:"{{ticket.title}}"}),", ",(0,t.jsx)("code",{children:"{{ticket.status}}"}),", ",(0,t.jsx)("code",{children:"{{ticket.assignee}}"}),", ",(0,t.jsx)("code",{children:"{{project.slug}}"}),", ",(0,t.jsx)("code",{children:"{{knowledge_base.root}}"}),", ",(0,t.jsx)("code",{children:"{{knowledge_base.issue_path}}"}),", and ",(0,t.jsx)("code",{children:"{{worktree.path}}"}),"."]})]}),d?(0,t.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: ",d.name]}):(0,t.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,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Name"}),(0,t.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:p,onChange:e=>m(e.target.value)})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Prompt"}),(0,t.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,t.jsx)(R.default,{content:x,onChange:f,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."})})]}),g?(0,t.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:g}):null,(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.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:k,children:[(0,t.jsx)(C.Save,{size:14}),"Save as new"]}),"edit"===c.type?(0,t.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"!==c.type)return void k();try{let e=i({id:c.scriptId,name:p,prompt:x});u({type:"edit",scriptId:e.id}),h(null)}catch(e){h(e instanceof Error?e.message:"Failed to update session script.")}},children:[(0,t.jsx)(C.Save,{size:14}),"Update"]}):null,"edit"===c.type?(0,t.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:()=>{v(s.find(e=>e.id===c.scriptId)??null)},children:[(0,t.jsx)(I.Trash2,{size:14}),"Delete"]}):null,(0,t.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:y,children:[(0,t.jsx)(l.Plus,{size:14}),"Clear editor"]})]})]})]})]}),(0,t.jsx)($.default,{isOpen:!!b,title:"Delete session script?",message:"This removes the saved script from this device for the current project.",preview:b?.name,confirmLabel:"Delete",variant:"danger",onConfirm:()=>{b&&(o(b.id),"edit"===c.type&&c.scriptId===b.id&&(u({type:"new"}),m(""),f("")),v(null),h(null))},onCancel:()=>v(null)})]})}var E=e.i(423709),T=e.i(44054);let z={search:"",assigneeIds:[],statusCategories:[],groupIds:[],sortBy:"activity",sortDir:"desc",hasActivity:!1};function P(){return void 0!==window.localStorage}function M(e){return Array.isArray(e)?Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[]}function D(e,t){let r=String(t??"").trim().toLowerCase(),s=`agx-tracker:boardFilters:${e}`;return r?`${s}:${r}`:`${s}:global`}function U(){return void 0!==window.localStorage}function L(e,t){let r=String(t??"").trim().toLowerCase(),s=`agx-tracker:pinnedItems:${e}`;return r?`${s}:${r}`:`${s}:global`}function O(e,t){if(!U())return new Set;let r=window.localStorage.getItem(L(e,t));if(!r)return new Set;try{let e=JSON.parse(r);if(!Array.isArray(e))return new Set;return new Set(e.filter(e=>"string"==typeof e&&e.length>0))}catch{return new Set}}var F=e.i(169433),_=e.i(982141),q=e.i(990933),G=e.i(202192),B=e.i(51297);let K=(0,u.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"}]]),J=(0,u.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 W=e.i(498027),X=e.i(367859),H=e.i(245900),Y=e.i(667480);let V=`Pick the highest-priority actionable ticket. Prefer tickets that:
2
- 1. Are already started (existing branches, PRs, or prior comments) — continue where you left off.
3
- 2. Are assigned to you or unassigned.
4
- 3. Have the most urgent priority or earliest due date.
5
-
6
- Skip tickets with the \`active-session\` label — another agent is already working on them.`,Q=`Work on {{ticket.identifier}}: {{ticket.title}}
7
-
8
- ## Workflow
9
-
10
- 1. **Read the ticket** — Read the full issue and comment thread via the issue tracker MCP before acting.
11
- 2. **Resume existing work** — Check for existing branches, PRs, knowledge-base notes, or prior discussion. Continue where things left off.
12
- 3. **If unclear** — Post a clarifying comment on the ticket and stop. Don't guess.
13
- 4. **If fresh** — Investigate the codebase, draft a plan, post it as a comment. Stop and wait for approval.
14
- 5. **If plan is approved** — Create a git worktree, implement the fix, run tests, commit, push, and create a PR linking the ticket.
15
- 6. **If PR exists** — Check CI, address review feedback, or confirm merge. Don't start over.
16
-
17
- ## Rules
18
-
19
- - Work in an isolated git worktree — never modify the main checkout directly.
20
- - Keep the issue tracker accurate: update status, post comments, link PRs.
21
- - Add the \`active-session\` label when starting. Remove it when done.
22
- - Leave everything in a resumable state. Clean up worktrees when finished.
23
- - One ticket per session.`,Z=(0,s.default)(()=>e.A(469612),{loadableGenerated:{modules:[668610]},ssr:!1});function ee({children:e}){return(0,t.jsx)("label",{className:"block text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-2",children:e})}function et({title:e,expanded:r,onToggle:s,children:a}){return(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden",children:[(0,t.jsxs)("button",{type:"button",onClick:s,className:"flex w-full items-center gap-2 px-4 py-3 text-left text-xs font-semibold text-[var(--muted-foreground)] uppercase tracking-widest hover:text-[var(--foreground)] transition-colors",children:[r?(0,t.jsx)(W.ChevronDown,{size:12}):(0,t.jsx)(X.ChevronRight,{size:12}),e]}),r&&(0,t.jsx)("div",{className:"border-t border-[var(--card-border)]",children:a})]})}function er({projectId:e,onJobLoaded:s}){let[a,n]=(0,r.useState)(null),[i,o]=(0,r.useState)([]),[l,c]=(0,r.useState)(!0),[u,p]=(0,r.useState)(!1),[m,x]=(0,r.useState)(V),[f,g]=(0,r.useState)(Q),[h,b]=(0,r.useState)("*/30 * * * *"),[v,j]=(0,r.useState)(""),[y,k]=(0,r.useState)(""),[w,N]=(0,r.useState)(!1),[S,C]=(0,r.useState)(!0),I=(0,r.useRef)(!1),$=(0,r.useCallback)(async()=>{try{let t=new URLSearchParams;e&&t.set("projectId",e);let r=await fetch(`/api/linear/worker?${t}`);if(!r.ok)return;let a=await r.json();a.job?(n(a.job),x(a.job.prompt||V),g(a.job.scriptPrompt||Q),b(a.job.cronExpr||a.job.cadence||"*/30 * * * *"),j(a.job.condition||""),k(a.job.teamId||""),s?.(a.job.id)):s?.(null)}catch{}finally{c(!1)}},[e,s]),R=(0,r.useCallback)(async()=>{if(e)try{let t=await fetch(`/api/projects/${e}/teams`);if(!t.ok)return;let r=((await t.json()).teams??[]).map(e=>({id:e.id,name:e.name}));o(r)}catch{}},[e]);(0,r.useEffect)(()=>{I.current||(I.current=!0,$(),R())},[$,R]),(0,r.useEffect)(()=>{let e=setInterval($,15e3);return()=>clearInterval(e)},[$]);let A=(0,r.useCallback)(async()=>{p(!0);try{let t={prompt:m,scriptPrompt:f,cadence:h,condition:v,teamId:y};e&&(t.projectId=e);let r=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(r.ok){let e=await r.json();n(e.job)}}catch{}finally{p(!1)}},[m,f,h,v,y,e]),E=(0,r.useCallback)(async()=>{if(!a)return void await A();p(!0);try{let t="active"===a.state?"paused":"active",r=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e,state:t})});if(r.ok){let e=await r.json();n(e.job)}}catch{}finally{p(!1)}},[a,e,A]),[T,z]=(0,r.useState)(!1),P=(0,r.useCallback)(async()=>{if(a){z(!0);try{await fetch("/api/prompt-jobs/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobId:a.id})}),setTimeout($,1e3)}catch{}finally{z(!1)}}},[a,$]);if(l)return(0,t.jsxs)("div",{className:"flex items-center gap-2 py-12 justify-center text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)(d.RefreshCw,{size:14,className:"animate-spin"}),"Loading Worker..."]});let M=a?.state==="active";return(0,t.jsxs)("div",{className:"flex flex-col gap-4 h-full",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-4 text-xs text-[var(--muted-foreground)]",children:a&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{children:["Next: ",(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:function(e,t){if("paused"===t)return"Paused";if("stopped"===t)return"Stopped";if(null===e)return"Pending";let r=e-Date.now();return r<0?"Overdue":r<6e4?`in ${Math.round(r/1e3)}s`:r<36e5?`in ${Math.round(r/6e4)}m`:r<864e5?`in ${Math.round(r/36e5)}h`:`in ${Math.round(r/864e5)}d`}(a.nextRunAt,a.state)})]}),(0,t.jsxs)("span",{children:["Last: ",(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:function(e){if(!e)return"Never";let t=Date.now()-e;return t<6e4?"Just now":t<36e5?`${Math.round(t/6e4)}m ago`:t<864e5?`${Math.round(t/36e5)}h ago`:`${Math.round(t/864e5)}d ago`}(a.lastRunAt)})]}),a.lastOutcome&&(0,t.jsxs)("span",{children:["Outcome:"," ",(0,t.jsx)("span",{className:"success"===a.lastOutcome?"text-emerald-400":"failed"===a.lastOutcome?"text-red-400":"text-[var(--foreground)]",children:a.lastOutcome})]})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[a&&(0,t.jsxs)("button",{type:"button",disabled:T||u,onClick:P,className:"flex items-center gap-1.5 rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-1.5 text-xs font-medium text-blue-400 transition-colors hover:bg-blue-500/20 disabled:opacity-40",children:[T?(0,t.jsx)(d.RefreshCw,{size:12,className:"animate-spin"}):(0,t.jsx)(H.Play,{size:12}),"Run now"]}),(0,t.jsxs)("button",{type:"button",disabled:u,onClick:E,className:"relative flex items-center gap-2.5 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] px-3 py-1.5 text-xs font-medium text-[var(--foreground)] transition-colors hover:border-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{className:`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors ${M?"bg-emerald-500":"bg-[var(--card-border)]"}`,children:(0,t.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white transition-transform ${M?"translate-x-3.5":"translate-x-0.5"}`})}),M?"Enabled":"Disabled"]})]})]}),(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 gap-6 overflow-y-auto",children:[(0,t.jsxs)("div",{className:"flex flex-1 min-w-0 flex-col gap-4",children:[(0,t.jsx)(et,{title:"How to pick a ticket",expanded:w,onToggle:()=>N(!w),children:(0,t.jsx)("div",{className:"min-h-[120px] overflow-y-auto resize-y",style:{height:320},children:(0,t.jsx)(Z,{content:m,onChange:e=>x(e),placeholder:"Describe how to pick which ticket to work on..."})})}),(0,t.jsx)(et,{title:"How to work a ticket",expanded:S,onToggle:()=>C(!S),children:(0,t.jsx)("div",{className:"min-h-[300px] max-h-[50vh] overflow-y-auto",children:(0,t.jsx)(Z,{content:f,onChange:e=>g(e),placeholder:"Instructions injected into the agent session when working a ticket..."})})})]}),(0,t.jsxs)("div",{className:"w-[340px] shrink-0 space-y-6",children:[i.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(ee,{children:"Team"}),(0,t.jsx)(Y.SimpleDropdown,{value:y||"",options:[{value:"",label:"Select a team"},...i.map(e=>({value:e.id,label:e.name}))],onChange:e=>k(e),ariaLabel:"Select team"}),(0,t.jsx)("p",{className:"mt-1.5 text-[10px] text-[var(--muted-foreground)]",children:"Agents in this team become default participants of the tracker chat."})]}),(0,t.jsx)(Y.ScheduleConditionPicker,{value:{cadence:h,condition:v},onChange:e=>{b(e.cadence),j(e.condition)},scheduleLabel:"Schedule",conditionLabel:"Condition"})]})]}),(0,t.jsx)("div",{className:"flex shrink-0 justify-end pt-2",children:(0,t.jsx)("button",{type:"button",disabled:u,onClick:A,className:"rounded-lg bg-[var(--foreground)] px-5 py-2 text-sm font-medium text-[var(--background)] transition-opacity hover:opacity-90 disabled:opacity-40",children:u?"Saving...":"Save configuration"})})]})}var es=e.i(807087),ea=e.i(437307),en=e.i(906724);let ei=(0,u.default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);function eo({status:e}){switch(e){case"success":return(0,t.jsx)(es.CheckCircle2,{size:14,className:"text-emerald-400"});case"failed":return(0,t.jsx)(ea.XCircle,{size:14,className:"text-red-400"});case"running":return(0,t.jsx)(en.Loader2,{size:14,className:"text-blue-400 animate-spin"});case"queued":return(0,t.jsx)(o.Clock,{size:14,className:"text-yellow-400"});case"cancelled":return(0,t.jsx)(ei,{size:14,className:"text-[var(--muted-foreground)]"});default:return(0,t.jsx)(o.Clock,{size:14,className:"text-[var(--muted-foreground)]"})}}function el(e){return e?new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"—"}function ed({jobId:e}){let[s,a]=(0,r.useState)([]),[n,i]=(0,r.useState)(!0),[o,l]=(0,r.useState)(null),c=(0,r.useRef)(!1),u=(0,r.useCallback)(async()=>{if(!e)return void i(!1);try{let t=await fetch(`/api/prompt-jobs/${e}/runs`);if(!t.ok)return;let r=await t.json();a(r.runs??[])}catch{}finally{i(!1)}},[e]);return((0,r.useEffect)(()=>{c.current||(c.current=!0,u())},[u]),(0,r.useEffect)(()=>{let e=setInterval(u,1e4);return()=>clearInterval(e)},[u]),e)?n?(0,t.jsxs)("div",{className:"flex items-center gap-2 py-12 justify-center text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)(d.RefreshCw,{size:14,className:"animate-spin"}),"Loading run history..."]}):0===s.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-16 text-sm text-[var(--muted-foreground)]",children:"No runs yet. The worker will log runs here once it starts executing."}):(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)("div",{className:"grid grid-cols-[minmax(0,1fr)_100px_140px_140px_90px] gap-3 px-4 py-2 text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest border-b border-[var(--card-border)]",children:[(0,t.jsx)("span",{children:"Status"}),(0,t.jsx)("span",{children:"Duration"}),(0,t.jsx)("span",{children:"Started"}),(0,t.jsx)("span",{children:"Finished"}),(0,t.jsx)("span",{children:"Run ID"})]}),(0,t.jsx)("div",{className:"max-h-[60vh] overflow-y-auto",children:s.map(e=>{var r,s;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(o===e.id?null:e.id),className:"grid w-full grid-cols-[minmax(0,1fr)_100px_140px_140px_90px] gap-3 px-4 py-2.5 text-left text-sm transition-colors hover:bg-[var(--card-bg)] rounded-lg",children:[(0,t.jsxs)("span",{className:`flex items-center gap-2 font-medium ${function(e){switch(e){case"success":return"text-emerald-400";case"failed":return"text-red-400";case"running":return"text-blue-400";case"queued":return"text-yellow-400";default:return"text-[var(--muted-foreground)]"}}(e.status)}`,children:[(0,t.jsx)(eo,{status:e.status}),(r=e.status).charAt(0).toUpperCase()+r.slice(1)]}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:null===(s=e.durationMs)?"—":s<1e3?`${s}ms`:s<6e4?`${(s/1e3).toFixed(1)}s`:s<36e5?`${Math.round(s/6e4)}m ${Math.round(s%6e4/1e3)}s`:`${Math.round(s/36e5)}h ${Math.round(s%36e5/6e4)}m`}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:el(e.startedAt)}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:el(e.finishedAt)}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] font-mono text-xs truncate",children:e.id.slice(0,8)})]}),o===e.id&&(e.output||e.error)&&(0,t.jsxs)("div",{className:"mx-4 mb-2 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] overflow-hidden",children:[e.error&&(0,t.jsxs)("div",{className:"px-4 py-3 border-b border-[var(--card-border)]",children:[(0,t.jsx)("div",{className:"text-[10px] font-semibold text-red-400 uppercase tracking-widest mb-1",children:"Error"}),(0,t.jsx)("pre",{className:"text-xs text-red-300 whitespace-pre-wrap font-mono",children:e.error})]}),e.output&&(0,t.jsxs)("div",{className:"px-4 py-3",children:[(0,t.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1",children:"Output"}),(0,t.jsx)("pre",{className:"text-xs text-[var(--foreground)] whitespace-pre-wrap font-mono max-h-[300px] overflow-y-auto",children:e.output})]})]})]},e.id)})})]}):(0,t.jsx)("div",{className:"flex items-center justify-center py-16 text-sm text-[var(--muted-foreground)]",children:"No worker configured yet. Enable the worker to see run history."})}function ec({trackerType:e,connected:s,user:a,clis:n,mcpConfigured:i,onConnect:o,onConnectWithKey:l,onDisconnect:d,onConfigureMcp:c,onClose:u,projectId:p}){let[m,f]=(0,r.useState)(s?"worker":"connection"),[g,h]=(0,r.useState)(null),b="jira"===e?"Jira Worker":"Linear Worker",v=[{id:"connection",label:"Connection",icon:(0,t.jsx)(K,{size:14})},{id:"worker",label:b,icon:(0,t.jsx)(B.Bot,{size:14}),disabled:!s},{id:"run-log",label:"Run Log",icon:(0,t.jsx)(J,{size:14}),disabled:!s}];return(0,t.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50",children:(0,t.jsxs)("div",{className:"relative flex w-full max-w-6xl flex-col rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,t.jsx)("div",{className:"flex items-center gap-6",children:v.map(e=>{let r=m===e.id;return(0,t.jsxs)("button",{onClick:()=>!e.disabled&&f(e.id),disabled:e.disabled,className:`relative flex items-center gap-2 py-4 text-sm font-semibold transition-colors ${r?"text-[var(--foreground)]":e.disabled?"cursor-not-allowed text-[var(--muted-foreground)]/40":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[e.icon,e.label,r&&(0,t.jsx)("span",{className:"absolute bottom-0 left-0 right-0 h-[2px] rounded-full bg-[var(--foreground)]"})]},e.id)})}),(0,t.jsx)("button",{type:"button",className:"rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:u,children:(0,t.jsx)(x.X,{size:18})})]}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 max-h-[80vh] overflow-y-auto p-6",children:["connection"===m&&(0,t.jsx)(G.default,{trackerType:e,projectId:p??"",connected:s,onConnect:o,onConnectWithKey:l,onDisconnect:d,clis:n,mcpConfigured:i,onConfigureMcp:c}),"worker"===m&&s&&(0,t.jsx)(er,{projectId:p,onJobLoaded:h}),"run-log"===m&&s&&(0,t.jsx)(ed,{jobId:g})]})]})})}function eu(e){if("chat"===e.mode)switch(e.status){case"queued":return{label:"starting",tone:"queued"};case"running":return{label:"thinking",tone:"running"};case"success":return{label:"ready",tone:"ready"};case"failed":return{label:"error",tone:"failed"};case"cancelled":return{label:"stopped",tone:"cancelled"}}return{label:function(e){switch(e){case"queued":return"queued";case"running":return"running";case"success":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return e}}(e.status),tone:e.status}}function ep(e){let t=e.sessionTitle?.trim();return t||("scripted"===e.mode?"Scripted session":"Chat session")}let em={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},ex={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-400",ready:"bg-sky-500/10 border-sky-500/20 text-sky-400",success:"bg-emerald-500/10 border-emerald-500/20 text-emerald-400",failed:"bg-red-500/10 border-red-500/20 text-red-400",cancelled:"bg-zinc-500/10 border-zinc-500/20 text-zinc-400"},ef={queued:"bg-amber-400",running:"bg-yellow-400",ready:"bg-sky-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"},eg={queued:"text-amber-500",running:"text-yellow-500",ready:"text-sky-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"};function eh({onResize:e}){let s=(0,r.useRef)(!1),a=(0,r.useRef)(0);return(0,r.useEffect)(()=>{if(!s.current)return;let t=t=>{let r=t.clientX-a.current;a.current=t.clientX,e(r)},r=()=>{s.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",r)};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",r),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",r)}}),(0,t.jsx)("div",{className:"group relative z-10 w-0 shrink-0 cursor-col-resize",onMouseDown:e=>{e.preventDefault(),s.current=!0,a.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function eb({label:e,value:r,options:s,activeClasses:a,onChange:n,disabled:i=!1}){let o=r.trim().length>0;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{"aria-label":e,className:`max-w-[160px] appearance-none rounded-full border bg-transparent px-2.5 py-0.5 pr-6 text-[11px] font-medium outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${o?a:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:r,disabled:i,onChange:e=>n(e.target.value),children:s.map(r=>(0,t.jsx)("option",{value:r.value,children:r.label},`${e}-${r.value||"all"}`))}),(0,t.jsx)(W.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function ev({status:e,options:r,onChange:s,disabled:a=!1,updating:n=!1}){return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{"aria-label":"Ticket status",className:"max-w-[160px] appearance-none rounded-md border border-[var(--card-border)] bg-[var(--card-bg)] px-2.5 py-1 pr-8 text-xs font-medium text-[var(--foreground)] outline-none transition-colors hover:border-[var(--muted-foreground)] disabled:cursor-not-allowed disabled:opacity-60",value:e,disabled:a||n,onChange:e=>s(e.target.value),children:r.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},`ticket-status-${e.value}`))}),n?(0,t.jsx)(d.RefreshCw,{size:12,className:"pointer-events-none absolute right-6 top-1/2 -translate-y-1/2 animate-spin text-[var(--muted-foreground)]"}):null,(0,t.jsx)(W.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"})]})}function ej({label:e,values:s,options:a,activeClasses:n,onChange:i,emptyLabel:o}){let[l,d]=(0,r.useState)(!1),c=(0,r.useRef)(null),u=a.filter(e=>e.value&&s.includes(e.value)),p=u.length>0,m=(()=>{if(0===u.length||u.length===a.length)return o??e;if(1===u.length)return u[0]?.label??o??e;let t=e.toLowerCase();return`${u.length} ${t}${t.endsWith("s")?"es":"s"}`})();(0,r.useEffect)(()=>{if(!l)return;let e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[l]);let x=(0,r.useCallback)(e=>{e?i(s.includes(e)?s.filter(t=>t!==e):[...s,e]):i([])},[i,s]);return(0,t.jsxs)("div",{className:"relative",ref:c,children:[(0,t.jsxs)("button",{type:"button","aria-label":e,"aria-haspopup":"listbox","aria-expanded":l,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${p?n:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>d(e=>!e),children:[(0,t.jsx)("span",{className:"max-w-[132px] truncate",children:m}),(0,t.jsx)(W.ChevronDown,{size:12,className:`shrink-0 transition-transform ${l?"rotate-180":""}`})]}),l?(0,t.jsxs)("div",{role:"listbox","aria-label":`${e} options`,"aria-multiselectable":"true",className:"absolute left-0 top-full z-50 mt-1 min-w-[240px] overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-lg backdrop-blur-sm",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":!p,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!p?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>i([]),children:[(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!p?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:p?null:(0,t.jsx)(S.Check,{size:10})}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:o??e})]}),u.length>0?(0,t.jsx)("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Selected"}):null,a.filter(e=>e.value).map(r=>{let a=s.includes(r.value);return(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${a?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>x(r.value),children:[(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${a?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:a?(0,t.jsx)(S.Check,{size:10}):null}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:r.label})]},`${e}-${r.value}`)})]}):null]})}var ey=e.i(245110);let ek=(0,u.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),ew=(0,u.default)("sticky-note",[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]]);var eN=e.i(866389),eS=e.i(494499),eC=e.i(256378),eI=e.i(555841),e$=e.i(583076);function eR({anchorRef:e,value:s,onChange:a,onClose:n,onSave:i}){let o=(0,r.useRef)(null),[l,d]=(0,r.useState)(null);(0,r.useEffect)(()=>{if(!e.current)return;let t=e.current.getBoundingClientRect();d({top:t.bottom+window.scrollY+6,left:t.left+window.scrollX+t.width/2})},[e]);let c=(0,eS.useEditor)({extensions:[eC.default,eI.default.configure({placeholder:"Add a note…",emptyEditorClass:"is-editor-empty before:content-[attr(data-placeholder)] before:text-[var(--muted-foreground)]/50 before:float-left before:pointer-events-none before:h-0"}),e$.Markdown.configure({html:!1,transformPastedText:!0})],immediatelyRender:!1,content:s,editorProps:{attributes:{class:"outline-none min-h-[80px] px-3 py-2 text-xs text-[var(--foreground)] prose prose-sm max-w-none"}},onUpdate:({editor:e})=>{a(e.storage.markdown?.getMarkdown()??s)}});return((0,r.useEffect)(()=>{c&&setTimeout(()=>c.commands.focus("end"),0)},[c]),(0,r.useEffect)(()=>{function t(t){!o.current||o.current.contains(t.target)||e.current?.contains(t.target)||(i(c?c.storage.markdown?.getMarkdown()??s:s),n())}function r(e){"Escape"===e.key&&(i(c?c.storage.markdown?.getMarkdown()??s:s),n())}return document.addEventListener("mousedown",t),document.addEventListener("keydown",r),()=>{document.removeEventListener("mousedown",t),document.removeEventListener("keydown",r)}},[c,s,e,i,n]),l)?(0,eN.createPortal)((0,t.jsxs)("div",{ref:o,style:{position:"absolute",top:l.top,left:l.left,transform:"translateX(-50%)",zIndex:9999,width:288},onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] shadow-xl",children:[(0,t.jsxs)("div",{className:"flex h-6 w-full items-center justify-end gap-0.5 rounded-t-lg bg-[var(--primary)]/40 px-1.5",children:[(0,t.jsx)("button",{type:"button",onMouseDown:e=>{e.preventDefault(),i(c?c.storage.markdown?.getMarkdown()??s:s),n()},className:"flex h-4 w-4 items-center justify-center rounded text-[var(--foreground)]/60 hover:text-emerald-400 transition-colors",title:"Save",children:(0,t.jsx)(S.Check,{size:11})}),(0,t.jsx)("button",{type:"button",onMouseDown:e=>{e.preventDefault(),n()},className:"flex h-4 w-4 items-center justify-center rounded text-[var(--foreground)]/60 hover:text-red-400 transition-colors",title:"Discard",children:(0,t.jsx)(x.X,{size:11})})]}),(0,t.jsx)(eS.EditorContent,{editor:c}),(0,t.jsx)("div",{className:"flex justify-end px-1.5 pb-1.5",children:(0,t.jsx)("button",{type:"button",onMouseDown:e=>{e.preventDefault(),i(""),n()},className:"flex h-4 w-4 items-center justify-center rounded text-[var(--foreground)]/40 hover:text-red-400 transition-colors",title:"Delete note",children:(0,t.jsx)(I.Trash2,{size:11})})})]}),(0,t.jsx)("style",{children:`
24
- .ProseMirror { outline: none !important; }
25
- `})]}),document.body):null}var eA=e.i(477183);function eE(e,t,r=20){let s=t?t.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(e)}&size=${r}&backgroundColor=${s}`}function eT({item:e,selected:s,pinned:a,onSelect:n,onTogglePin:i,activeAgents:o,participants:l,multiSelected:d,draggable:c=!1,treeConnector:u,projectSlug:p}){let[m,x]=(0,r.useState)(!1),f=(0,r.useRef)(null),g=(0,r.useRef)(null),[h,b]=(0,r.useState)(!1),[v,j]=(0,r.useState)(""),[y,k]=(0,r.useState)(!1),[w,N]=(0,r.useState)(!1),C=(0,r.useCallback)(async()=>{if(p&&!y)try{let t=await fetch(`/api/tracker/notes?projectSlug=${encodeURIComponent(p)}&id=${encodeURIComponent(e.identifier)}&type=issue`),r=(await t.json()).content??"";j(r),N(""!==r.trim()),k(!0)}catch{k(!0)}},[p,e.identifier,y]),I=(0,r.useCallback)(async t=>{if(p){N(""!==t.trim());try{await fetch("/api/tracker/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectSlug:p,id:e.identifier,type:"issue",content:t})})}catch{}}},[p,e.identifier]),$=(0,r.useCallback)(e=>{e.stopPropagation(),h||C(),b(e=>!e)},[h,C]);(0,r.useEffect)(()=>()=>{f.current&&window.clearTimeout(f.current)},[]);let R=(0,r.useCallback)(async t=>{if(t.stopPropagation(),e.url)try{await navigator.clipboard.writeText(e.url),x(!0),f.current&&window.clearTimeout(f.current),f.current=window.setTimeout(()=>{x(!1)},1500)}catch(e){console.error("Failed to copy tracker item URL:",e),x(!1)}},[e.url]),A=(0,r.useCallback)(t=>{t.stopPropagation(),e.url&&window.open(e.url,"_blank")},[e.url]),{attributes:E,listeners:T,setNodeRef:z,transform:P,isDragging:M}=(0,eA.useDraggable)({id:e.id,disabled:!c}),{setNodeRef:D,isOver:U}=(0,eA.useDroppable)({id:e.id,disabled:!c}),L=(0,r.useCallback)(e=>{z(e),D(e)},[z,D]),O=em[e.status]??e.status.slice(0,6);return(0,t.jsxs)("div",{ref:c?L:void 0,style:M?{opacity:.3}:void 0,...c?E:{},...c?T:{},className:`group ${u?"pl-7":""} relative flex cursor-pointer items-center gap-3 px-4 py-2.5 text-sm transition-colors ${s?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"} ${d?"ring-1 ring-[var(--primary)]/40 bg-[var(--primary)]/5":""} ${U&&!M?"bg-[var(--primary)]/10 border-l-2 border-l-[var(--primary)]":""}`,onClick:e=>n(e),role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),n())},children:[s&&!U&&(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),c&&(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-all ${d?"border-[var(--primary)] bg-[var(--primary)] text-[var(--primary-foreground)]":"border-[var(--muted-foreground)]/30 opacity-0 group-hover:opacity-100"}`,onClick:e=>{e.stopPropagation(),e.preventDefault(),n(new MouseEvent("click",{metaKey:!0,ctrlKey:!0}))},onPointerDown:e=>e.stopPropagation(),children:d&&(0,t.jsx)(S.Check,{size:10})}),u&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-none text-[var(--muted-foreground)]/40 select-none",children:"last"===u?"└──":"├──"}),(0,t.jsx)("span",{className:`shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)] ${u?"":"w-24"}`,children:e.identifier}),(0,t.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${s?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:e.title}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:O}),o&&o.length>0&&(0,t.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:o.slice(0,3).map(e=>{let r=l?.find(t=>t.id===e.agentId);return(0,t.jsxs)("span",{className:"relative inline-block",title:r?.name??e.agentName,children:[(0,t.jsx)("img",{src:eE(e.agentId,r?.color,16),alt:r?.name??e.agentName,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,t.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},e.agentId)})}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[p&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{ref:g,type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${w?"text-amber-400 opacity-100":"text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100"}`,onClick:$,title:w?"Edit note":"Add note","aria-label":w?"Edit note":"Add note",children:(0,t.jsx)(ew,{size:10,className:w?"fill-current":""})}),h&&(0,t.jsx)(eR,{anchorRef:g,value:v,onChange:j,onClose:()=>b(!1),onSave:I})]}),i&&(0,t.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${a?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${s?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:e=>{e.stopPropagation(),i()},title:a?"Unpin ticket":"Pin to top","aria-label":a?"Unpin ticket":"Pin to top",children:(0,t.jsx)(ek,{size:10,className:a?"fill-current":""})}),(0,t.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${s?"opacity-100":"opacity-0 group-hover:opacity-100"} ${e.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:e=>{R(e)},title:m?"Copied ticket URL":"Copy ticket URL","aria-label":m?"Copied ticket URL":"Copy ticket URL",disabled:!e.url,children:m?(0,t.jsx)(S.Check,{size:10,className:"text-emerald-400"}):(0,t.jsx)(K,{size:10})}),(0,t.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${s?"opacity-100":"opacity-0 group-hover:opacity-100"} ${e.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:A,title:e.url?"Open this ticket in a new tab":"This ticket does not have an external URL","aria-label":e.url?"Open this ticket in a new tab":"This ticket does not have an external URL",disabled:!e.url,children:(0,t.jsx)(ey.ExternalLink,{size:10})})]})]})}var ez=e.i(575479);function eP({issueId:e,trackerType:s,projectId:a}){let[n,i]=(0,r.useState)(null),[o,l]=(0,r.useState)(!1),c=(0,r.useRef)(null),u=(0,r.useCallback)(async()=>{try{let t=a?`?projectId=${encodeURIComponent(a)}`:"",r=await fetch(`/api/trackers/${encodeURIComponent(s)}/items/${encodeURIComponent(e)}/recap${t}`);if(!r.ok)return null;let n=await r.json();return i(n),n}catch{return null}},[e,s,a]),p=(0,r.useCallback)(e=>{c.current&&(clearTimeout(c.current),c.current=null),(e?.status==="queued"||e?.status==="running")&&(c.current=setTimeout(async()=>{p(await u())},3e3))},[u]);(0,r.useEffect)(()=>(i(null),(async()=>{p(await u())})(),()=>{c.current&&clearTimeout(c.current)}),[e,u,p]);let m=(0,r.useCallback)(async()=>{l(!0);try{let t=a?`?projectId=${encodeURIComponent(a)}`:"";await fetch(`/api/trackers/${encodeURIComponent(s)}/items/${encodeURIComponent(e)}/recap${t}`,{method:"POST"});let r=await u();p(r)}finally{l(!1)}},[e,s,a,u,p]),x=n?.status==="queued"||n?.status==="running"||o;return(0,t.jsxs)("section",{className:"border-b border-[var(--card-border)] px-6 py-4",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,t.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Recap"}),(0,t.jsxs)("div",{className:"flex items-center gap-3 text-[11px] text-[var(--muted-foreground)]",children:[x?(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)(en.Loader2,{size:12,className:"animate-spin"}),"Updating…"]}):(0,t.jsxs)("span",{children:["Updated ",function(e){if(!e)return"never";let t=Math.round((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;let r=Math.round(t/60);if(r<24)return`${r}h ago`;let s=Math.round(r/24);return`${s}d ago`}(n?.generatedAt??null)]}),(0,t.jsxs)("button",{type:"button",onClick:m,disabled:x,className:"flex items-center gap-1 rounded border border-[var(--card-border)] px-2 py-1 text-[11px] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:opacity-50",children:[(0,t.jsx)(d.RefreshCw,{size:10}),"Regenerate"]})]})]}),(0,t.jsxs)("div",{className:"text-sm text-[var(--foreground)]",children:[n?.content?(0,t.jsx)(N.Markdown,{content:n.content,isUser:!1}):(0,t.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No recap yet. Click Regenerate to create one."}),n?.error?(0,t.jsxs)("p",{className:"mt-2 text-xs text-red-400",children:["Last run failed: ",n.error]}):null]})]})}var eM=e.i(417442);function eD({runs:e,onSelect:r}){return 0===e.length?(0,t.jsx)("div",{className:"px-4 py-6 text-center text-xs text-[var(--muted-foreground)]",children:"No sessions yet. Start one below."}):(0,t.jsx)("div",{className:"flex flex-col",children:e.map(e=>{let s=eu(e);return(0,t.jsxs)("button",{type:"button",onClick:()=>r(e.id),className:"flex w-full items-start justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3 text-left transition-colors hover:bg-[var(--overlay-panel-soft)]",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:ep(e)}),(0,t.jsxs)("p",{className:"mt-1 flex items-center gap-2 text-[11px] text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:e.agentName}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)(o.Clock,{size:10}),(0,t.jsx)("span",{children:new Date(e.updatedAt).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsxs)("div",{className:`flex items-center gap-1.5 rounded-md border px-2 py-0.5 ${ex[s.tone]}`,children:[(0,t.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ef[s.tone]}`}),(0,t.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wider",children:s.label})]}),(0,t.jsx)(eM.ArrowRight,{className:"mt-0.5 h-4 w-4 text-[var(--muted-foreground)]"})]})]},e.id)})})}function eU(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}let eL=(0,s.default)(()=>e.A(501223).then(e=>e.Composer),{loadableGenerated:{modules:[844118]},ssr:!1});function eO({item:e,trackerType:s,runs:a,participants:n,projectId:i,projectSlug:o,itemStatusOptions:l,itemStatusUpdating:d,onItemStatusChange:c,activeSessionScriptLabel:u,onOpenSessionScripts:p,onStartScriptedSession:m,createRun:x,updateRun:f,onRunCreated:g,onSelectRun:h}){let b=n[0],v=(0,r.useRef)(null);v.current||(v.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:j,setMessages:y,chatRuns:N}=(0,k.useGroupChat)(v.current),{processes:S}=(0,w.useProcessPolling)({workspaceId:v.current},{messages:j,setMessages:y}),C=(0,r.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),I=N.some(e=>C.has(e.status))||S.some(e=>"spawning"===e.state||"running"===e.state)?N.some(e=>"queued"===e.status)?"queued":"working":"ready",$=(0,r.useRef)(!1),R=(0,r.useCallback)(async(t,r,s,a,l,d,c)=>{if($.current)return;$.current=!0;let u=(l?n.find(e=>e.id===l):null)??b;if(!u){$.current=!1;return}try{var p,m,h,v;let r,s,a,n,l,b,j,y,k,w,N,S,C,I,$,R,A,E,T,z,P,M,{run:D,recapContent:U}=await x({projectId:i??null,projectSlug:o??null,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee?.name??null,agentId:u.id,agentName:u.name,mode:"chat"}),{promptPrefix:L}=(a=(h=p={issue:{identifier:e.identifier,title:e.title,status:e.status,assignee:e.assignee?.name??null},project:o?{slug:o}:null,runtime:{recapContent:U}}).issue.identifier.trim()||"TICKET-ID",n=h.issue.title.trim()||"Untitled ticket",l=String(h.issue.status??"").trim()||"Unknown",b=String(h.issue.assignee??"").trim()||"Unassigned",j=function(e){let t=String(e?.slug??"").trim();if(t)return eU(t,"project");let r=String(e?.name??"").trim();return r?eU(r,"project"):"project"}(h.project),y=String(h.project?.name??"").trim()||j,k=String(h.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${j}`,w=String(h.runtime?.issueKnowledgePath??"").trim()||`${k}/issues/${a}/`,N=String(h.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${eU(a,"ticket")}`,C=(S={issue:{identifier:a,title:n,status:l,assignee:b},project:{name:y,slug:j,label:(v=h.project,r=String(v?.name??"").trim(),s=String(v?.slug??"").trim(),r&&s?`${r} (${s})`:r||s||"current project"),repos:h.project?.repos?[...h.project.repos]:[]},runtime:{knowledgeBaseRoot:k,issueKnowledgePath:w,isolatedWorktreePath:N}}).issue.identifier,I=S.issue.title,$=S.issue.status,R=S.issue.assignee,A=S.runtime.knowledgeBaseRoot,E=S.runtime.issueKnowledgePath,T=S.runtime.isolatedWorktreePath,z="",(P=p.runtime?.recapContent?.trim())&&(z=`TICKET RECAP
26
- ${P}`),M=["TICKET EXECUTION","You are an engineer working through a single ticket from the project's issue tracker (Linear, Jira, or whichever tracker is configured). Work like a careful teammate: continue existing work when present, investigate before coding, present a plan before implementation, ask clarifying questions when requirements are ambiguous, and stop cleanly when blocked instead of guessing.",'TERMINOLOGY NOTE\n- "Ticket" / "issue" = the work item you are executing (from Linear, Jira, etc.)\n- "Task" in this project\'s UI = a scheduled or manual background task (cron jobs, automations) — NOT this ticket.\n- Do not confuse scheduled tasks with the ticket you are working on.',`INJECTED CONTEXT
27
- - Ticket: ${C}
28
- - Title: ${I}
29
- - Current status: ${$}
30
- - Current assignee: ${R}
31
- - Project: ${S.project.label}
32
- - Knowledge base root: ${A}
33
- - Issue knowledge path: ${E}
34
- - Suggested isolated worktree: ${T}
35
- - Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.`,`SOURCE REPOSITORIES
36
- ${!(m=S.project.repos)||0===m.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":m.map(e=>{let t=[e.name.trim()||"repository"],r=String(e.path??"").trim(),s=String(e.notes??"").trim();return r&&t.push(`path: ${r}`),s&&t.push(`notes: ${s}`),`- ${t.join(" | ")}`}).join("\n")}`,"WORKFLOW\n1. Read the full issue and comment thread before acting. Use the issue tracker MCP for issue details, comments, state changes, and follow-up.\n2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.\n3. If requirements are unclear, ask specific clarifying questions in the issue tracker and stop.\n4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.\n5. If a reviewed plan already exists or the ticket is explicitly ready for implementation, implement in an isolated worktree or equivalent isolated workspace rather than a shared checkout.\n6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.\n7. Keep the issue tracker accurate: comments, links, statuses, blockers, and PR references should match reality.\n8. Keep the knowledge base current with what you learned, what changed, and what remains.\n9. Work on exactly this ticket during this session.","RULES\n- Use the injected project context instead of hardcoded repo-specific paths or conventions.\n- Use knowledge base terminology; the filesystem path above is the storage location.\n- If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.\n- Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them."],z&&M.splice(3,0,z),{prompt:`Work on this ticket: ${C} - ${I}`,promptPrefix:M.join("\n\n")+"\n\n"}),O=L+(d?`
37
- ${d}`:""),F=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:t,promptPrefix:O,threadId:D.threadId,activeParticipantIds:[u.id],projectSlug:o??void 0,routing:c})}),_=await F.json().catch(()=>({}));if(!F.ok||!_.chatRunId||!_.userMessageId)throw Error(_.error||"Failed to start chat session");await f(D.id,{chatRunId:_.chatRunId,rootMessageId:_.userMessageId}),g(D.id)}catch(e){console.error("Failed to create chat session:",e),$.current=!1,e instanceof Error&&window.alert(e.message)}},[e,n,b,i,o,x,f,g]);return(0,t.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.title})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)(ev,{status:e.status,options:l,disabled:0===l.length,updating:d,onChange:t=>c(e,t)}),(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:p,title:`Session script: ${u}`,children:[(0,t.jsx)(ez.FileText,{size:12}),(0,t.jsx)("span",{className:"max-w-[120px] truncate",children:"AGX default"===u?"Session script":u})]}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600",onClick:m,children:[(0,t.jsx)(H.Play,{size:12}),(0,t.jsx)("span",{children:"Start scripted session"})]})]})]}),(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-64",children:[(0,t.jsx)(eP,{issueId:e.id,trackerType:s,projectId:i}),(0,t.jsx)(eD,{runs:a,onSelect:h})]}),(0,t.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,t.jsx)(eL,{onSend:R,onStop:()=>{},participants:n,projectId:i??void 0,projectSlug:o??void 0,loading:"ready"!==I,commands:[],activityStatus:I,placeholder:`Ask about ${e.identifier}...`,initialPinnedParticipantId:b?.id})})]})}var eF=e.i(538292),e_=e.i(55236);function eq({groupId:e,name:s,count:a,collapsed:n,selected:i,onToggleCollapse:o,onSelect:l,onUngroup:d,projectSlug:c}){let{setNodeRef:u,isOver:p}=(0,eA.useDroppable)({id:e}),m=(0,r.useRef)(null),[f,g]=(0,r.useState)(!1),[h,b]=(0,r.useState)(""),[v,j]=(0,r.useState)(!1),[y,k]=(0,r.useState)(!1),w=(0,r.useCallback)(async()=>{if(c&&!v)try{let t=await fetch(`/api/tracker/notes?projectSlug=${encodeURIComponent(c)}&id=${encodeURIComponent(e)}&type=group`),r=(await t.json()).content??"";b(r),k(""!==r.trim()),j(!0)}catch{j(!0)}},[c,e,v]),N=(0,r.useCallback)(async t=>{if(c){k(""!==t.trim());try{await fetch("/api/tracker/notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectSlug:c,id:e,type:"group",content:t})})}catch{}}},[c,e]),S=(0,r.useCallback)(e=>{e.stopPropagation(),f||w(),g(e=>!e)},[f,w]);return(0,t.jsxs)("div",{ref:u,className:`group relative flex cursor-pointer items-center gap-2 pl-[24px] pr-4 py-2 text-sm transition-colors ${i?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"} ${p?"bg-[var(--primary)]/10 border-l-2 border-l-[var(--primary)]":""}`,onClick:l,role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),l())},children:[i&&(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,t.jsx)("button",{type:"button",className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:e=>{e.stopPropagation(),o()},"aria-label":n?"Expand folder":"Collapse folder",children:n?(0,t.jsx)(X.ChevronRight,{size:14}):(0,t.jsx)(W.ChevronDown,{size:14})}),(0,t.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]",children:n?(0,t.jsx)(e_.Folder,{size:14}):(0,t.jsx)(eF.FolderOpen,{size:14})}),(0,t.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs font-medium ${i?"text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:s}),(0,t.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--secondary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)]",children:a}),c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{ref:m,type:"button",className:`flex h-5 w-5 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 ${y?"text-amber-400 opacity-100":"text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100"}`,onClick:S,title:y?"Edit group note":"Add group note","aria-label":y?"Edit group note":"Add group note",children:(0,t.jsx)(ew,{size:12,className:y?"fill-current":""})}),f&&(0,t.jsx)(eR,{anchorRef:m,value:h,onChange:b,onClose:()=>g(!1),onSave:N})]}),d&&(0,t.jsx)("button",{type:"button",className:"flex h-5 w-5 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 hover:text-red-400 transition-all",onClick:e=>{e.stopPropagation(),d()},title:"Ungroup tickets","aria-label":"Ungroup tickets",children:(0,t.jsx)(x.X,{size:12})})]})}var eG=e.i(640481);let eB=(0,s.default)(()=>e.A(501223).then(e=>e.Composer),{loadableGenerated:{modules:[844118]},ssr:!1});function eK({group:e,items:s,trackerType:a,participants:n,projectId:i,projectSlug:o,onUpdateName:l,onDelete:d,onSelectItem:c,onRunCreated:u,onSelectRun:p}){let[m,x]=(0,r.useState)(!1),[f,g]=(0,r.useState)(e.name),b=(0,r.useCallback)(()=>{let t=f.trim();t&&t!==e.name&&l(t),x(!1)},[f,e.name,l]),v=s.filter(t=>e.task_ids.includes(t.id)),{runs:j,createRun:y,updateRun:N}=h(a,e.id,i??null),S=n[0],C=(0,r.useRef)(null);C.current||(C.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:$,setMessages:R,chatRuns:A}=(0,k.useGroupChat)(C.current),{processes:E}=(0,w.useProcessPolling)({workspaceId:C.current},{messages:$,setMessages:R}),T=(0,r.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),z=A.some(e=>T.has(e.status))||E.some(e=>"spawning"===e.state||"running"===e.state)?A.some(e=>"queued"===e.status)?"queued":"working":"ready",P=(0,r.useRef)(!1),M=(0,r.useCallback)(async(t,r,s,a,l,d,c)=>{if(P.current)return;P.current=!0;let p=(l?n.find(e=>e.id===l):null)??S;if(!p){P.current=!1;return}try{let{run:r}=await y({projectId:i??null,projectSlug:o??null,issueId:e.id,issueIdentifier:e.name,issueTitle:e.name,issueStatus:"active",issueAssignee:null,agentId:p.id,agentName:p.name,mode:"chat"}),s=v.length>0?v.map(e=>`- ${e.identifier}: ${e.title} (${e.status})`).join("\n"):"- (no tickets assigned to this group)",a=`GROUP SESSION
38
-
39
- You are working on a group of related tickets named "${e.name}".
40
-
41
- TICKETS IN THIS GROUP:
42
- ${s}
43
-
44
- Work through these tickets as a coherent unit of work.
45
-
46
- `+(d??""),n=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:t,promptPrefix:a,threadId:r.threadId,activeParticipantIds:[p.id],projectSlug:o??void 0,routing:c})}),l=await n.json().catch(()=>({}));if(!n.ok||!l.chatRunId||!l.userMessageId)throw Error(l.error||"Failed to start chat session");await N(r.id,{chatRunId:l.chatRunId,rootMessageId:l.userMessageId}),u(r.id)}catch(e){console.error("Failed to create group chat session:",e),P.current=!1,e instanceof Error&&window.alert(e.message)}},[e,v,n,S,i,o,y,N,u]);return(0,t.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex h-12 shrink-0 items-center gap-2 border-b border-[var(--card-border)] px-4",children:[(0,t.jsx)(eF.FolderOpen,{size:16,className:"shrink-0 text-[var(--muted-foreground)]"}),m?(0,t.jsx)("input",{type:"text",value:f,onChange:e=>g(e.target.value),onBlur:b,onKeyDown:t=>{"Enter"===t.key&&b(),"Escape"===t.key&&(g(e.name),x(!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,t.jsx)("h3",{className:"min-w-0 flex-1 truncate text-sm font-medium text-[var(--foreground)]",children:e.name}),(0,t.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:()=>{g(e.name),x(!0)},title:"Rename group",children:(0,t.jsx)(eG.Pencil,{size:12})}),(0,t.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:d,title:"Delete group (ungroups tickets)",children:(0,t.jsx)(I.Trash2,{size:12})})]}),(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-64",children:[(0,t.jsxs)("section",{className:"border-b border-[var(--card-border)]",children:[(0,t.jsxs)("div",{className:"px-4 py-2 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:["Tickets (",v.length,")"]}),0===v.length?(0,t.jsx)("div",{className:"px-4 pb-4 text-center text-xs text-[var(--muted-foreground)]",children:"No tickets in this group."}):v.map(e=>(0,t.jsx)(eT,{item:e,selected:!1,onSelect:()=>c(e.id)},e.id))]}),(0,t.jsx)(eP,{issueId:e.id,trackerType:a,projectId:i}),(0,t.jsx)(eD,{runs:j,onSelect:p})]}),n.length>0&&(0,t.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,t.jsx)(eB,{onSend:M,onStop:()=>{},participants:n,projectId:i??void 0,projectSlug:o??void 0,loading:"ready"!==z,commands:[],activityStatus:z,placeholder:`Work on tickets in "${e.name}"...`,initialPinnedParticipantId:S?.id})})]})}let eJ="__pending-group__";function eW({ticket:e,isLast:r}){let{attributes:s,listeners:a,setNodeRef:n,transform:i,isDragging:o}=(0,eA.useDraggable)({id:e.id}),l=i?{transform:`translate3d(${i.x}px, ${i.y}px, 0)`,opacity:o?.3:1,position:"relative",zIndex:o?50:void 0}:void 0;return(0,t.jsxs)("div",{ref:n,style:l,...s,...a,className:"flex items-center gap-3 pl-[48px] pr-4 py-2 text-sm cursor-grab active:cursor-grabbing",children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] leading-none text-[var(--muted-foreground)]/40 select-none",children:r?"└──":"├──"}),(0,t.jsx)("span",{className:"shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs text-[var(--muted-foreground)]",children:e.title}),e.status&&(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:e.status})]})}function eX({tickets:e,onConfirm:s,onCancel:a}){let[n,i]=(0,r.useState)(""),o=(0,r.useRef)(null),{setNodeRef:l,isOver:d}=(0,eA.useDroppable)({id:eJ});(0,r.useEffect)(()=>{o.current?.focus()},[]);let c=(0,r.useCallback)(()=>{let t=n.trim(),r=e.map(e=>e.identifier).join(", ");s(t||r||"Untitled")},[n,s,e]);return(0,t.jsxs)("div",{ref:l,className:`mx-0 my-0 transition-colors ${d?"bg-[var(--primary)]/5":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 pl-[24px] pr-4 py-2 bg-[var(--card-bg)]/50",children:[(0,t.jsx)(W.ChevronDown,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)(eF.FolderOpen,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{ref:o,type:"text",value:n,onChange:e=>i(e.target.value),onKeyDown:e=>{"Enter"===e.key&&c(),"Escape"===e.key&&a()},placeholder:e.map(e=>e.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,t.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:c,children:"Create"}),(0,t.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:a,children:"Cancel"})]}),e.map((r,s)=>(0,t.jsx)(eW,{ticket:r,isLast:s===e.length-1},r.id))]})}var eH=e.i(459073);function eY({count:e,onGroup:r,onClear:s}){return e<2?null:(0,t.jsxs)("div",{className:"absolute bottom-4 left-1/2 z-30 -translate-x-1/2 flex items-center gap-3 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-2 shadow-2xl",children:[(0,t.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[e," selected"]}),(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-1.5 rounded-lg bg-[var(--primary)] px-3 py-1.5 text-[11px] font-medium text-[var(--primary-foreground)] hover:opacity-90 transition-opacity",onClick:r,children:[(0,t.jsx)(eH.FolderPlus,{size:12}),"Group"]}),(0,t.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:s,"aria-label":"Clear selection",children:(0,t.jsx)(x.X,{size:14})})]})}let eV=(0,s.default)(()=>e.A(501223).then(e=>e.Composer),{loadableGenerated:{modules:[844118]},ssr:!1});function eQ({item:e,run:s,participants:a,itemStatusOptions:n,itemStatusUpdating:l,onItemStatusChange:d,onBack:c}){let{messages:u,setMessages:p,sendMessage:x,loadHistory:f,stop:g}=(0,k.useGroupChat)(s.threadId),{processes:h,streaming:b,chatRuns:v}=(0,w.useProcessPolling)(s.rootMessageId?{workspaceId:s.threadId,threadId:s.rootMessageId}:{workspaceId:s.threadId},{messages:u,setMessages:p}),j=(0,r.useMemo)(()=>{let e=v[0];if(!e)return eu(s);let t={queued:"queued",running:"running",awaiting_user:"running",blocked:"running",completed:"success",failed:"failed",cancelled:"cancelled"}[e.status]??s.status;return eu({...s,status:t})},[v,s]);(0,r.useEffect)(()=>{f()},[f,s.threadId]);let y=(0,r.useMemo)(()=>new Map(a.map(e=>[e.id,e])),[a]),S=new Set(["queued","running","awaiting_user","blocked"]),C=v.some(e=>S.has(e.status))||h.some(e=>"spawning"===e.state||"running"===e.state)?v.some(e=>"queued"===e.status)?"queued":"working":"ready",I=(0,r.useCallback)((e,t,r,n,i,o,l)=>{s.rootMessageId&&x(e,t,void 0,s.rootMessageId,r,void 0,(0,q.orderParticipantIds)(a.map(e=>e.id),i),s.projectSlug??void 0,o,l)},[a,s.projectSlug,s.rootMessageId,x]);return(0,t.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[c&&(0,t.jsx)("button",{type:"button",onClick:c,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,t.jsx)(i.ChevronLeft,{size:16})}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:ep(s)})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsx)(ev,{status:e.status,options:n,disabled:0===n.length,updating:l,onChange:t=>d(e,t)}),(0,t.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${ex[j.tone]}`,children:[(0,t.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ef[j.tone]}`}),(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:j.label})]}),null!=s.durationMs&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)(o.Clock,{size:14}),(0,t.jsxs)("span",{children:[(s.durationMs/1e3).toFixed(1),"s"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-2 py-1",children:[(0,t.jsx)("img",{src:eE(s.agentId,y.get(s.agentId)?.color),alt:s.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,t.jsx)("span",{className:"pr-1 text-xs font-medium",children:s.agentName})]})]})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===u.length?(0,t.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===s.status||"running"===s.status?"Starting session...":"No thread messages yet."}):(0,t.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[u.map(e=>{let r=e.participantId?y.get(e.participantId):null,a=(0,E.stripMarkers)(e.content);if(!a.trim())return null;let n=e.participantId??s.agentId;return(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===e.role?(0,t.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,t.jsx)(m.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,t.jsx)("img",{src:eE(n,r?.color),alt:r?.name??s.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:"user"===e.role?(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-sm font-semibold",style:{color:r?.color??"var(--foreground)"},children:r?.name??s.agentName}),(0,t.jsx)("span",{className:"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"})]})}),(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(e.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===e.role?(0,t.jsx)("div",{className:"w-fit max-w-[85%] rounded-xl rounded-tl-sm border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,t.jsx)(N.Markdown,{content:a,isUser:!0})}):(0,t.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,t.jsx)(N.Markdown,{content:a,isUser:!1})})]})]},e.id)}),Object.entries(b).filter(([,e])=>!s.rootMessageId||e.rootMessageId===s.rootMessageId).map(([e])=>{let r=y.get(e);return(0,t.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("img",{src:eE(e,r?.color),alt:r?.name??s.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),r?.name??s.agentName," is thinking..."]},`stream-${e}`)})]})}),(0,t.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:s.rootMessageId?(0,t.jsx)(eV,{onSend:I,onStop:g,participants:a,projectId:s.projectId??void 0,projectSlug:s.projectSlug??void 0,loading:"ready"!==C,commands:[],activityStatus:C,placeholder:"Continue this session...",initialPinnedParticipantId:s.agentId}):(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the session to start..."})})]})}function eZ({trackerType:e,projectId:s,projectSlug:i,initialShowSettings:o}){let u,{isTouchLayout:m}=(0,T.useInputCapabilities)(),{connected:k,loading:w,user:N,clis:S,mcpConfigured:C,connect:I,connectWithKey:$,disconnect:R,configureMcp:E}=(0,g.useTrackerConnection)(e,s??""),q=(0,r.useRef)(null),[B,K]=(0,r.useState)(o??!1),[J,W]=(0,r.useState)(!1),[X,H]=(0,r.useState)(()=>(0,F.loadLinearTicketPanelWidth)()||576),[Y,V]=(0,r.useState)(""),[Q,Z]=(0,r.useState)(""),[ee,et]=(0,r.useState)(!1),[er,es]=(0,r.useState)([]),[ea,en]=(0,r.useState)([]),[ei,eo]=(0,r.useState)([]),[el,ed]=(0,r.useState)([]),[ex,ef]=(0,r.useState)([]),[ev,ey]=(0,r.useState)([]),[ek,ew]=(0,r.useState)(""),[eN,eS]=(0,r.useState)(""),[eC,eI]=(0,r.useState)("activity"),[e$,eR]=(0,r.useState)("desc"),[ez,eP]=(0,r.useState)(!1),[eM,eD]=(0,r.useState)(()=>O(e,i)),[eU,eL]=(0,r.useState)(null),[eF,e_]=(0,r.useState)(null),{participants:eG}=function(e,t){let[s,a]=(0,r.useState)([]),[n,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let r=!1;return async function(){try{let s=await fetch("/api/participants"),n=s.ok?await s.json():[];if(!t){r||(a(n),i(!0));return}let o=new URLSearchParams;o.set("projectId",t);let l=await fetch(`/api/trackers/${encodeURIComponent(e)}/worker?${o}`).catch(()=>null),d=l?.ok?await l.json().catch(()=>null):null,c=d?.job?.teamId||void 0;if(c){let e=await fetch(`/api/projects/${encodeURIComponent(t)}/teams/${encodeURIComponent(c)}/agents`);if(e.ok){let t=await e.json(),s=Array.isArray(t.agents)?t.agents.sort((e,t)=>(e.routing_order??0)-(t.routing_order??0)).map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[];if(s.length>0){let e=new Map(s.map((e,t)=>[e,t])),t=n.filter(t=>e.has(t.id)).sort((t,r)=>(e.get(t.id)??Number.MAX_SAFE_INTEGER)-(e.get(r.id)??Number.MAX_SAFE_INTEGER));if(!r&&t.length>0){a(t),i(!0);return}}}}let u=await fetch(`/api/projects/${encodeURIComponent(t)}/agents`);if(!u.ok){r||(a(n),i(!0));return}let p=await u.json(),m=Array.isArray(p.agents)?p.agents.map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[],x=new Map(m.map((e,t)=>[e,t])),f=n.filter(e=>x.has(e.id)).sort((e,t)=>(x.get(e.id)??Number.MAX_SAFE_INTEGER)-(x.get(t.id)??Number.MAX_SAFE_INTEGER));r||(a(f),i(!0))}catch{r||(a([]),i(!0))}}(),()=>{r=!0}},[e,t]),{participants:s,participantsLoaded:n}}(e,s),{issueActiveAgents:eB}=function(e,t){let[s,a]=(0,r.useState)(new Map);return(0,r.useEffect)(()=>{let r=!1;async function s(){try{let s=new URLSearchParams;t&&s.set("projectId",t);let n=await fetch(`/api/trackers/${e}/active-agents?${s}`);if(!n.ok||r)return;let i=await n.json(),o=new Map;for(let e of i.agents??[]){let t=o.get(e.issueId)??[];t.push({agentId:e.agentId,agentName:e.agentName}),o.set(e.issueId,t)}r||a(o)}catch{}}s();let n=setInterval(()=>void s(),5e3);return()=>{r=!0,clearInterval(n)}},[e,t]),{issueActiveAgents:s}}(e,s),[eW,eH]=(0,r.useState)(null),[eV,eZ]=(0,r.useState)(null),[e0,e1]=(0,r.useState)("runs"),e2=(0,r.useRef)(null),e4=(0,r.useRef)(!0),e5=(0,r.useRef)(null),e3=(0,r.useRef)(null),{getSelection:e6,pushSelection:e7,replaceSelection:e8}=(0,f.useUrlSelection)(),e9=e6("issue"),te=e6("run"),tt=e6("group"),{groups:tr,createGroup:ts,updateGroup:ta,deleteGroup:tn,addTasksToGroup:ti,removeTaskFromGroup:to,refetch:tl}=function(e){let[t,s]=(0,r.useState)([]),[a,n]=(0,r.useState)(!1),i=(0,r.useCallback)(async()=>{if(e){n(!0);try{let t=await fetch(`/api/task-groups?project_id=${encodeURIComponent(e)}`);if(!t.ok)throw Error("Failed to fetch groups");let r=await t.json();s(r.groups??[])}catch(e){console.error("useTaskGroups fetch error:",e)}finally{n(!1)}}},[e]);(0,r.useEffect)(()=>{i()},[i]);let o=(0,r.useCallback)(async(t,r)=>{if(!e)return null;try{let s=await fetch("/api/task-groups",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:e,name:t,task_ids:r})});if(!s.ok)throw Error("Failed to create group");let a=await s.json();return await i(),a.group}catch(e){return console.error("createGroup error:",e),null}},[e,i]),l=(0,r.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/task-groups/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).ok)throw Error("Failed to update group");await i()}catch(e){console.error("updateGroup error:",e)}},[i]),d=(0,r.useCallback)(async e=>{try{if(!(await fetch(`/api/task-groups/${e}`,{method:"DELETE"})).ok)throw Error("Failed to delete group");await i()}catch(e){console.error("deleteGroup error:",e)}},[i]),c=(0,r.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/task-groups/${e}/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({task_ids:t})})).ok)throw Error("Failed to assign tasks");await i()}catch(e){console.error("addTasksToGroup error:",e)}},[i]),u=(0,r.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/task-groups/${e}/tasks?task_id=${encodeURIComponent(t)}`,{method:"DELETE"})).ok)throw Error("Failed to remove task");await i()}catch(e){console.error("removeTaskFromGroup error:",e)}},[i]);return{groups:t,isLoading:a,refetch:i,createGroup:o,updateGroup:l,deleteGroup:d,addTasksToGroup:c,removeTaskFromGroup:u}}(s),[td,tc]=(0,r.useState)(new Set),[tu,tp]=(0,r.useState)(!1),[tm,tx]=(0,r.useState)([]),[tf,tg]=(0,r.useState)(null),th=(0,eA.useSensors)((0,eA.useSensor)(eA.PointerSensor,{activationConstraint:{distance:8}})),[tb,tv]=(0,r.useState)(null),tj=(0,r.useCallback)(e=>{tc(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]),ty=(0,r.useCallback)(async e=>{tm.length<2||(await ts(e,tm),tx([]),tp(!1),tg(null),tc(new Set))},[tm,ts]),tk=(0,r.useRef)([]),tw=(0,r.useCallback)(()=>{let e=Array.from(td),t=tk.current.find(e=>td.has(e.id));tx(e),tg(t?.id??e[0]??null),tp(!0)},[td]),tN=tr.find(e=>e.id===tt),tS=(0,r.useMemo)(()=>new Set(tr.flatMap(e=>e.task_ids)),[tr]),tC=(0,r.useCallback)(e=>{tv(e.active.id)},[]),tI=(0,r.useCallback)(async e=>{tv(null);let{active:t,over:r}=e,s=t.id;if(tu){let e=tm.includes(s);if(!r||t.id===r.id){e&&tx(e=>{let t=e.filter(e=>e!==s);return t.length<2?(tp(!1),tg(null),[]):t});return}let a=r.id,n=a===eJ||tm.includes(a);e&&!n?tx(e=>{let t=e.filter(e=>e!==s);return t.length<2?(tp(!1),tg(null),[]):t}):e||tx(e=>[...e,s]);return}if(!r||t.id===r.id)return;let a=r.id,n=tr.find(e=>e.id===a);if(n)return void await ti(n.id,[s]);let i=!tS.has(a);if(!tS.has(s)&&i){tx([s,a]),tg(a),tp(!0);return}let o=tr.find(e=>e.task_ids.includes(s));o&&i&&await to(o.id,s)},[tr,tS,ti,to,tu,tm]),t$=(0,r.useCallback)(e=>{V(e),e2.current&&clearTimeout(e2.current),e2.current=setTimeout(()=>Z(e),300)},[]),tR=(0,r.useCallback)(t=>{eD(r=>{let s=new Set(r);s.has(t)?s.delete(t):s.add(t);if(U())try{window.localStorage.setItem(L(e,i),JSON.stringify([...s]))}catch{}return s})},[e,i]);(0,r.useEffect)(()=>()=>{e2.current&&clearTimeout(e2.current)},[]),(0,r.useEffect)(()=>{let t=function(e,t){if(!P())return{...z};let r=window.localStorage.getItem(D(e,t));if(!r)return{...z};try{let e=JSON.parse(r);return{search:"string"==typeof e.search?e.search:z.search,assigneeIds:M(e.assigneeIds),statusCategories:M(e.statusCategories),groupIds:M(e.groupIds),sortBy:["activity","identifier","status","created"].includes(e.sortBy)?e.sortBy:z.sortBy,sortDir:["asc","desc"].includes(e.sortDir)?e.sortDir:z.sortDir,hasActivity:"boolean"==typeof e.hasActivity?e.hasActivity:z.hasActivity}}catch{return{...z}}}(e,i);e4.current=!0,V(t.search),Z(t.search),ed(t.assigneeIds),ef(t.statusCategories),eS(t.groupIds?.[0]??""),ew(t.groupIds?.[0]??""),eI(t.sortBy),eR(t.sortDir),eP(t.hasActivity),eD(O(e,i))},[e,i]),(0,r.useEffect)(()=>{if(e4.current){e4.current=!1;return}var t={search:Y,assigneeIds:el,statusCategories:ex,groupIds:ek?[ek]:[],sortBy:eC,sortDir:e$,hasActivity:ez};if(P())try{window.localStorage.setItem(D(e,i),JSON.stringify({search:t.search,assigneeIds:M(t.assigneeIds),statusCategories:M(t.statusCategories),groupIds:M(t.groupIds),sortBy:t.sortBy||"activity",sortDir:t.sortDir||"desc",hasActivity:!!t.hasActivity}))}catch{}},[e,i,Y,el,ex,eN,ek,eC,e$,ez]),(0,r.useEffect)(()=>{if(!k||!s)return;let t=!1;et(!1);let r=new URLSearchParams;return r.set("projectId",s),i&&r.set("projectSlug",i),fetch(`/api/trackers/${e}/options?${r.toString()}`).then(e=>e.json()).then(e=>{t||(es(Array.isArray(e.assignees)?e.assignees:[]),en(Array.isArray(e.statuses)?e.statuses.map(e=>({value:e.name,label:e.name})):[]),eo(Array.isArray(e.teams)?e.teams:[]),ey(Array.isArray(e.cycles)?e.cycles:[]),et(!0))}).catch(()=>{t||(es([]),en([]),eo([]),ey([]),et(!0))}),()=>{t=!0}},[k,e,s,i]),(0,r.useEffect)(()=>{if(!ee)return;let e=el.filter(e=>er.some(t=>t.id===e));e.length!==el.length&&ed(e)},[er,ee,el]),(0,r.useEffect)(()=>{if(!ee)return;let e=ea.map(e=>e.value),t=ex.filter(t=>e.includes(t));t.length!==ex.length&&ef(t)},[ee,ex,ea]),(0,r.useEffect)(()=>{if(ee){if(ei.length<=1&&eN)return void eS("");eN&&!ei.some(e=>e.id===eN)&&eS("")}},[ee,eN,ei]),(0,r.useEffect)(()=>{ee&&ek&&!ev.some(e=>e.id===ek)&&ew("")},[ev,ee,ek]);let{items:tA,loading:tE,hasMore:tT,loadMore:tz,refresh:tP,updateItem:tM}=function(e,t,s,a){let[n,i]=(0,r.useState)([]),[o,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(null),[u,p]=(0,r.useState)(!1),m=(0,r.useRef)(d),x=(0,r.useRef)(!1);m.current=d;let f=`/api/trackers/${encodeURIComponent(e)}/items`,g=(0,r.useCallback)(async e=>{if(s&&a.projectId){l(!0);try{let r=new URLSearchParams;if(r.set("projectId",a.projectId),t.statuses?.length)for(let e of t.statuses)r.append("status",e);if(t.statusCategories?.length)for(let e of t.statusCategories)r.append("statusCategory",e);if(t.search&&r.set("search",t.search),t.assigneeIds?.length)for(let e of t.assigneeIds)r.append("assigneeId",e);if(t.groupIds?.length)for(let e of t.groupIds)r.append("groupId",e);t.sortBy&&r.set("sortBy",t.sortBy),t.sortDir&&r.set("sortDir",t.sortDir),t.hasActivity&&r.set("hasActivity","true"),e&&m.current&&r.set("cursor",m.current),a.limit&&r.set("limit",String(a.limit));let s=await fetch(`${f}?${r.toString()}`),n=await s.json(),o=n.items??[];i(t=>e?[...t,...o]:o),c(n.pageInfo?.endCursor??null),p(n.pageInfo?.hasNextPage??!1),x.current=!0}catch{e||i([])}finally{l(!1)}}},[f,t.statuses,t.statusCategories,t.search,t.assigneeIds,t.groupIds,t.sortBy,t.sortDir,t.hasActivity,s,a.projectId,a.limit]);(0,r.useEffect)(()=>{c(null),g(!1)},[g]);let h=(0,r.useCallback)(()=>g(!0),[g]);return{items:n,loading:o,hasMore:u,loadMore:h,refresh:(0,r.useCallback)(()=>(c(null),g(!1)),[g]),updateItem:(0,r.useCallback)(e=>{i(t=>t.map(t=>t.id===e.id?e:t))},[])}}(e,(0,r.useMemo)(()=>({search:Q||void 0,statuses:ex.length>0&&ex.length<ea.length?ex:void 0,assigneeIds:el.length>0?el:void 0,groupIds:ek?[ek]:void 0,sortBy:eC,sortDir:e$,hasActivity:ez||void 0}),[Q,el,ek,ex,ea.length,eC,e$,ez]),k&&ee&&!!s,{projectId:s??""}),tD=(0,r.useMemo)(()=>e9?tA.find(e=>e.id===e9)??null:null,[tA,e9]),tU=tD??(eU?.id===e9?eU:null),tL=(0,r.useMemo)(()=>{if(0===eM.size)return tA;let e=[],t=[];for(let r of tA)eM.has(r.id)?e.push(r):t.push(r);return[...e,...t]},[tA,eM]);tk.current=tL;let{runs:tO,loading:tF,createRun:t_,updateRun:tq}=h(e,tU?.id??null,s??null),{scripts:tG,activeScriptId:tB,activeScript:tK,setActiveScriptId:tJ,saveScript:tW,deleteScript:tX}=function(e,t){let[s,a]=(0,r.useState)([]),[n,i]=(0,r.useState)(null);(0,r.useEffect)(()=>{let r=function(e,t){if(!v())return{...b};let r=window.localStorage.getItem(y(e,t));if(!r)return{...b};try{return j(JSON.parse(r))}catch{return{...b}}}(e,t);a(r.scripts),i(r.activeScriptId)},[e,t]);let o=(0,r.useCallback)((r,s)=>{a(r),i(s);if(v())try{let a=j({scripts:r,activeScriptId:s});window.localStorage.setItem(y(e,t),JSON.stringify(a))}catch{}},[e,t]),l=(0,r.useCallback)(e=>{let t=e&&s.some(t=>t.id===e)?e:null;o(s,t)},[o,s]),d=(0,r.useCallback)(e=>{let t=new Date().toISOString(),r=e.name.trim(),a=e.prompt.trim();if(!r||!a)throw Error("Run script name and prompt are required.");let n=e.id?s.find(t=>t.id===e.id):null,i=n?{...n,name:r,prompt:a,updatedAt:t}:{id:crypto.randomUUID(),name:r,prompt:a,createdAt:t,updatedAt:t};return o([...n?s.map(e=>e.id===n.id?i:e):[i,...s]].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),i.id),i},[o,s]),c=(0,r.useCallback)(e=>{o(s.filter(t=>t.id!==e),n===e?null:n)},[n,o,s]),u=(0,r.useMemo)(()=>s.find(e=>e.id===n)??null,[n,s]);return{scripts:s,activeScriptId:n,activeScript:u,setActiveScriptId:l,saveScript:d,deleteScript:c}}(e,i),tH=te?tO.find(e=>e.id===te)??null:null,tY=e9&&!te?(0,_.loadLastRunForIssue)(e9):null,tV=!!tY&&q.current!==e9,tQ=(0,r.useMemo)(()=>er.map(e=>({value:e.id,label:e.name})),[er]),tZ=(0,r.useMemo)(()=>ea.map(e=>({value:e.value,label:e.label})),[ea]),t0=(0,r.useMemo)(()=>{let e=ea.map(e=>({value:e.label,label:e.label})),t=new Set(e.map(e=>e.value)),r=tU?.status?.trim();return r&&!t.has(r)&&e.unshift({value:r,label:r}),e},[tU?.status,ea]),t1=(0,r.useMemo)(()=>[{value:"",label:"Workspace"},...ei.map(e=>({value:e.id,label:e.name}))],[ei]),t2=(0,r.useMemo)(()=>[{value:"",label:"Group"},...ev.map(e=>({value:e.id,label:e.name}))],[ev]),t4=tZ.length>0,t5=t2.length>1,t3=t1.length>2,t6=tK?.name??"AGX default",t7=(0,r.useCallback)(async(t,r)=>{let a=r.trim();if(a&&a!==t.status&&s){e_(t.id);try{let r=await fetch(`/api/trackers/${e}/items/${encodeURIComponent(t.id)}?projectId=${encodeURIComponent(s??"")}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:a})}),n=await r.json().catch(()=>({}));if(!r.ok||!n.item)throw Error(n.error||"Failed to update ticket status");let i=n.item;tM(i),e9===i.id&&eL(i),await tP()}catch(e){e instanceof Error&&window.alert(e.message)}finally{e_(e=>e===t.id?null:e)}}},[tP,e9,tM,e,s]);(0,r.useEffect)(()=>{if(!e9||!s)return void eL(null);if(tD)return void eL(e=>e?.id===e9?tD:null);let t=!1;return(async()=>{try{let r=await fetch(`/api/trackers/${e}/items/${encodeURIComponent(e9)}?projectId=${encodeURIComponent(s??"")}`);if(t)return;if(404===r.status)return void e8({issue:null,run:null});if(!r.ok)throw Error(`Failed to fetch selected tracker ticket: ${r.status}`);let a=await r.json().catch(()=>({}));if(!a.item?.id)return void e8({issue:null,run:null});eL(a.item)}catch(e){t||console.error("Failed to hydrate selected tracker item",e)}})(),()=>{t=!0}},[e8,tD,e9,e,s]),(0,r.useEffect)(()=>{if(!e9){te&&e8({run:null});return}},[e8,e9,te]),(0,r.useEffect)(()=>{tU&&te&&!tF&&(tO.some(e=>e.id===te)||e8({run:null}))},[e8,tO,tF,tU,te]),(0,r.useEffect)(()=>{e9&&te&&(0,_.persistLastRunForIssue)(e9,te)},[e9,te]),(0,r.useEffect)(()=>{tV&&!tF&&0!==tO.length&&(q.current=e9,tY&&tO.some(e=>e.id===tY)&&e8({run:tY}))},[tV,tY,e9,tO,tF,e8]),(0,r.useEffect)(()=>{if(m){if(!tU)return void e1("runs");if(tH||0===tO.length)return void e1("ticket");e1("runs")}},[m,tO.length,tU,tH]),(0,r.useEffect)(()=>{if(!J)return;let e=e=>{let t=e.target;e3.current?.contains(t)||e5.current?.contains(t)||W(!1)},t=e=>{"Escape"===e.key&&W(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[J]);let t8=(0,r.useCallback)(async(t,r)=>{eH(null),eZ(null);try{let a=await fetch(`/api/trackers/${e}/runs/scripted`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:s??void 0,projectSlug:i??void 0,issueId:t.id,issueIdentifier:t.identifier,issueTitle:t.title,issueStatus:t.status,issueAssignee:t.assignee?.name??null,agentId:r.id,scriptName:tK?.name,scriptPrompt:tK?.prompt})}),n=await a.json().catch(()=>({}));if(!a.ok||!n.run||!n.chatRunId||!n.userMessageId)throw Error(n.error||"Failed to start scripted session");e7({issue:t.id,run:n.run.id})}catch(e){console.error("Failed to start scripted tracker session:",e),e instanceof Error&&window.alert(e.message)}},[tK,s,i,e7,e]),t9=(0,r.useCallback)((e,t)=>{if(W(!1),0===eG.length)return void window.alert("Add at least one agent to this project before starting a scripted session.");if(1===eG.length)return void t8(e,eG[0]);let r=t?.currentTarget?.getBoundingClientRect();eH(e),eZ(r?{top:r.bottom+4,left:r.left}:{top:200,left:200})},[t8,eG]),re=(0,r.useRef)(null);return((0,r.useEffect)(()=>{let e=re.current;if(!e||!tT)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&tz()},{threshold:.1});return t.observe(e),()=>t.disconnect()},[tT,tz]),k)?(0,t.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[m?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,t.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]",children:[(0,t.jsx)(c.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:Y,onChange:e=>t$(e.target.value)})]}),(0,t.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 tP(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:tE,children:(0,t.jsx)(d.RefreshCw,{size:16,className:tE?"animate-spin":void 0})}),(0,t.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:()=>{W(!1),K(!0)},title:"Tracker settings",children:(0,t.jsx)(p,{size:16})})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 pb-2",children:[t4?(0,t.jsx)(ej,{label:"Status",values:ex,options:tZ,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:ef,emptyLabel:"All statuses"}):null,(0,t.jsx)(ej,{label:"Assignee",values:el,options:tQ,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ed,emptyLabel:"All assignees"}),t3?(0,t.jsx)(eb,{label:"Workspace",value:eN,options:t1,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:eS}):null,t5?(0,t.jsx)(eb,{label:"Group",value:ek,options:t2,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ew}):null,(0,t.jsx)(eb,{label:"Sort",value:eC,options:[{value:"activity",label:"Activity"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:e=>eI(e)}),(0,t.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"===e$?"Descending":"Ascending",onClick:()=>eR(e=>"desc"===e?"asc":"desc"),children:"desc"===e$?(0,t.jsx)(a.ArrowDown,{size:12}):(0,t.jsx)(n.ArrowUp,{size:12})}),(0,t.jsx)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2.5 py-1 text-[11px] font-medium transition-colors ${ez?"border-orange-500/30 bg-orange-500/10 text-orange-400":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>eP(e=>!e),children:"My activity"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:tE&&0===tA.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===tA.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,t.jsxs)(t.Fragment,{children:[tL.map((e,s)=>(0,t.jsxs)(r.default.Fragment,{children:[eM.size>0&&!eM.has(e.id)&&(0===s||eM.has(tL[s-1].id))&&(0,t.jsx)("div",{className:"mx-4 border-t border-amber-500/20"}),(0,t.jsx)(eT,{item:e,selected:tU?.id===e.id,pinned:eM.has(e.id),activeAgents:eB.get(e.id),participants:eG,projectSlug:i,onSelect:()=>{e1("runs"),e7({issue:e.id,run:null})},onTogglePin:()=>tR(e.id)})]},e.id)),tT?(0,t.jsx)("div",{ref:re,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:tE?"Loading...":"Load more"}):null]})})]}),tU?(0,t.jsxs)("div",{className:"absolute inset-0 z-20 flex flex-col bg-[var(--background)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:tU.identifier}),(0,t.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:tU.title})]}),(0,t.jsx)("button",{type:"button",className:"rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>e8({issue:null,run:null}),"aria-label":"Close ticket panel",children:(0,t.jsx)(x.X,{size:16})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--card-border)] px-3 py-2",children:[(0,t.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"runs"===e0?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>e1("runs"),children:"Runs"}),(0,t.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"ticket"===e0?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>e1("ticket"),children:"Ticket"})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:"runs"===e0?(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,t.jsxs)("div",{className:"relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,t.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Sessions"}),(0,t.jsxs)("button",{ref:e5,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:()=>{W(!1),e1("ticket"),e7({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:!tU,children:[(0,t.jsx)(l.Plus,{size:12}),"New session"]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:tF&&0===tO.length||tV?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===tO.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):tO.map(e=>{let r=eu(e);return(0,t.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${tH?.id===e.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>{e1("ticket"),e7({run:e.id})},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]",children:ep(e)}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(e.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,t.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,t.jsx)("span",{className:`font-medium ${eg[r.tone]}`,children:r.label}),(0,t.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:e.agentName})]}),null!=e.durationMs?(0,t.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(e.durationMs/1e3).toFixed(1),"s"]}):null]},e.id)})})]}):tH?(0,t.jsx)(eQ,{item:tU??{id:tH.issueId,identifier:tH.issueIdentifier,title:tH.issueTitle,status:tH.issueStatus,statusCategory:"todo",labels:[],trackerId:"",trackerType:e,assignee:tH.issueAssignee?{id:"",name:tH.issueAssignee}:void 0,updatedAt:tH.updatedAt,createdAt:tH.updatedAt,url:""},run:tH,participants:eG,itemStatusOptions:t0,itemStatusUpdating:eF===tH.issueId,onItemStatusChange:t7,onBack:()=>e8({run:null})}):tV?null:0===eG.length?(0,t.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,t.jsx)(eO,{item:tU,trackerType:e,runs:tO,participants:eG,projectId:s,projectSlug:i,itemStatusOptions:t0,itemStatusUpdating:eF===tU.id,onItemStatusChange:t7,activeSessionScriptLabel:t6,onOpenSessionScripts:()=>W(!0),onStartScriptedSession:e=>t9(tU,e),createRun:t_,updateRun:tq,onRunCreated:e=>e7({run:e}),onSelectRun:e=>e7({run:e})},tU.id)})]}):null]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:X},children:[(0,t.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,t.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]",children:[(0,t.jsx)(c.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:Y,onChange:e=>t$(e.target.value)})]}),(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void tP(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:tE,children:(0,t.jsx)(d.RefreshCw,{size:16,className:tE?"animate-spin":void 0})}),(0,t.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{W(!1),K(!0)},title:"Tracker settings",children:(0,t.jsx)(p,{size:16})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[t4?(0,t.jsx)(ej,{label:"Status",values:ex,options:tZ,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:ef,emptyLabel:"All statuses"}):null,(0,t.jsx)(ej,{label:"Assignee",values:el,options:tQ,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ed,emptyLabel:"All assignees"}),t3?(0,t.jsx)(eb,{label:"Workspace",value:eN,options:t1,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:eS}):null,t5?(0,t.jsx)(eb,{label:"Group",value:ek,options:t2,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ew}):null,(0,t.jsx)(eb,{label:"Sort",value:eC,options:[{value:"activity",label:"Activity"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:e=>eI(e)}),(0,t.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"===e$?"Descending":"Ascending",onClick:()=>eR(e=>"desc"===e?"asc":"desc"),children:"desc"===e$?(0,t.jsx)(a.ArrowDown,{size:12}):(0,t.jsx)(n.ArrowUp,{size:12})}),(0,t.jsx)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${ez?"border-orange-500/30 bg-orange-500/10 text-orange-400":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>eP(e=>!e),children:"My activity"})]})]}),(0,t.jsxs)(eA.DndContext,{sensors:th,collisionDetection:eA.closestCenter,onDragStart:tC,onDragEnd:tI,children:[(0,t.jsxs)("div",{className:"relative flex-1 overflow-y-auto",children:[tE&&0===tA.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===tA.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,t.jsxs)(t.Fragment,{children:[(()=>{let e=tu?new Set(tm):null,s=new Map;for(let e of tr){let t=tL.find(t=>e.task_ids.includes(t.id));t&&s.set(t.id,e)}let a=tu?tm.map(e=>tL.find(t=>t.id===e)).filter(Boolean).map(e=>({id:e.id,identifier:e.identifier,title:e.title,status:em[e.status]??e.status})):[],n=new Set,o=0;return tL.map(l=>{if(e?.has(l.id))return l.id===tf&&tu?(0,t.jsx)(eX,{tickets:a,onConfirm:ty,onCancel:()=>{tp(!1),tx([]),tg(null)}},"__pending-group__"):null;let d=s.get(l.id);if(d&&!n.has(d.id)){n.add(d.id);let e=d.task_ids.map(e=>tL.find(t=>t.id===e)).filter(Boolean);return(0,t.jsxs)(r.default.Fragment,{children:[(0,t.jsx)(eq,{groupId:d.id,name:d.name,count:e.length,collapsed:!!d.collapsed,selected:tt===d.id,projectSlug:i,onToggleCollapse:()=>ta(d.id,{collapsed:!d.collapsed}),onSelect:()=>e7({group:d.id,issue:null,run:null}),onUngroup:()=>{tn(d.id),tt===d.id&&e8({group:null})}}),!d.collapsed&&e.map((r,s)=>(0,t.jsx)(eT,{item:r,selected:tU?.id===r.id,pinned:eM.has(r.id),activeAgents:eB.get(r.id),participants:eG,draggable:!0,multiSelected:td.has(r.id),treeConnector:s===e.length-1?"last":"mid",projectSlug:i,onSelect:e=>{e&&(e.metaKey||e.ctrlKey)?tj(r.id):e7({issue:r.id,run:null,group:null})},onTogglePin:()=>tR(r.id)},r.id))]},`group-${d.id}`)}if(tS.has(l.id))return null;let c=o++,u=c>0?tL.filter(t=>!tS.has(t.id)&&(!e||!e.has(t.id)))[c-1]:null;return(0,t.jsxs)(r.default.Fragment,{children:[eM.size>0&&!eM.has(l.id)&&(0===c||u&&eM.has(u.id))&&(0,t.jsx)("div",{className:"mx-4 border-t border-amber-500/20"}),(0,t.jsx)(eT,{item:l,selected:tU?.id===l.id,pinned:eM.has(l.id),activeAgents:eB.get(l.id),participants:eG,draggable:!0,multiSelected:td.has(l.id),projectSlug:i,onSelect:e=>{e&&(e.metaKey||e.ctrlKey)?tj(l.id):e7({issue:l.id,run:null,group:null})},onTogglePin:()=>tR(l.id)})]},l.id)})})(),tT?(0,t.jsx)("div",{ref:re,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:tE?"Loading...":"Load more"}):null]}),(0,t.jsx)(eY,{count:td.size,onGroup:tw,onClear:()=>tc(new Set)})]}),(0,t.jsx)(eA.DragOverlay,{dropAnimation:null,children:tb&&((u=tL.find(e=>e.id===tb))?(0,t.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,t.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:u.identifier}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-xs font-medium text-[var(--foreground)]",children:u.title})]}):null)})]})]}),(0,t.jsx)(eh,{onResize:e=>H(t=>{let r=Math.max(180,Math.min(600,t+e));return(0,F.persistLinearTicketPanelWidth)(r),r})}),J?(0,t.jsx)("div",{ref:e3,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,t.jsx)(A,{projectSlug:i,scripts:tG,activeScriptId:tB,onSetActiveScriptId:tJ,onSaveScript:tW,onDeleteScript:tX})}):null,(0,t.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:tH?(0,t.jsx)(eQ,{item:tU??{id:tH.issueId,identifier:tH.issueIdentifier,title:tH.issueTitle,status:tH.issueStatus,statusCategory:"todo",labels:[],trackerId:"",trackerType:e,assignee:tH.issueAssignee?{id:"",name:tH.issueAssignee}:void 0,updatedAt:tH.updatedAt,createdAt:tH.updatedAt,url:""},run:tH,participants:eG,itemStatusOptions:t0,itemStatusUpdating:eF===tH.issueId,onItemStatusChange:t7,onBack:()=>e8({run:null})}):tN&&!tU?(0,t.jsx)(eK,{group:tN,items:tA,trackerType:e,participants:eG,projectId:s,projectSlug:i,onUpdateName:e=>ta(tN.id,{name:e}),onDelete:async()=>{await tn(tN.id),e8({group:null})},onSelectItem:e=>e7({issue:e,group:null,run:null}),onRunCreated:e=>e7({run:e}),onSelectRun:e=>e7({run:e})}):tU?tV?null:0===eG.length?(0,t.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,t.jsx)(eO,{item:tU,trackerType:e,runs:tO,participants:eG,projectId:s,projectSlug:i,itemStatusOptions:t0,itemStatusUpdating:eF===tU.id,onItemStatusChange:t7,activeSessionScriptLabel:t6,onOpenSessionScripts:()=>W(!0),onStartScriptedSession:e=>t9(tU,e),createRun:t_,updateRun:tq,onRunCreated:e=>e7({run:e}),onSelectRun:e=>e7({run:e})},tU.id):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Select a ticket from the list."})})]}),B&&(0,t.jsx)(ec,{trackerType:e,connected:k,user:N,clis:S,mcpConfigured:C,onConnect:I,onConnectWithKey:$,onDisconnect:R,onConfigureMcp:E,onClose:()=>K(!1),projectId:s}),J&&m?(0,t.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50 p-4",children:(0,t.jsx)("div",{ref:e3,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,t.jsx)(A,{projectSlug:i,scripts:tG,activeScriptId:tB,onSetActiveScriptId:tJ,onSaveScript:tW,onDeleteScript:tX})})}):null,eW&&eV&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{eH(null),eZ(null)}}),(0,t.jsxs)("div",{className:"fixed z-50 min-w-[180px] rounded border border-[var(--card-border)] bg-[var(--card-bg)] py-1 shadow-lg",style:{top:eV.top,left:eV.left},children:[(0,t.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Pick an agent"}),eG.map(e=>(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--card-bg)]",onClick:()=>void t8(eW,e),children:[(0,t.jsx)("img",{src:eE(e.id,e.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,t.jsxs)("span",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),e.role?(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.role}):null]})]},e.id))]})]})]}):(0,t.jsx)(G.default,{trackerType:e,projectId:s??"",connected:k,onConnect:I,onConnectWithKey:$})}e.s(["default",()=>eZ],471387)}]);
@@ -1,5 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,629155,e=>{"use strict";let t=(0,e.i(363732).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",()=>t],629155)},80673,e=>{"use strict";let t=(0,e.i(363732).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",()=>t],80673)},506420,(e,t,r)=>{t.exports=e.r(27944)},363732,e=>{"use strict";var t=e.i(935851);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let o=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:s="",children:c,iconNode:l,...u},d)=>(0,t.createElement)("svg",{ref:d,...n,width:a,height:a,stroke:e,strokeWidth:i?24*Number(o)/Number(a):o,className:r("lucide",s),...!c&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...l.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(c)?c:[c]])),i=(e,n)=>{let i=(0,t.forwardRef)(({className:i,...s},c)=>(0,t.createElement)(o,{ref:c,iconNode:n,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...s}));return i.displayName=a(e),i};e.s(["default",()=>i],363732)},524123,e=>{"use strict";var t=e.i(935851);function r(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!1),[o,i]=(0,t.useState)(null),s=(0,t.useCallback)(async()=>{n(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),i(null)}catch(e){i(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[]);(0,t.useEffect)(()=>{s()},[s]);let c=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:o,refetch:s,createProject:c,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?n:t)),n},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}}function a(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!0),o=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,n]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),n.ok&&(r=((await n.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{n(!1)}},[]);(0,t.useEffect)(()=>{o()},[o]);let i=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,n=a.name.trim(),o=(a.slug||n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),i=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:n,slug:o})});if(!i.ok)return null;let{project:s}=await i.json(),c=Array.isArray(t)?t:t?[t]:[];for(let e of c)await fetch(`/api/projects/${s.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(e=>console.warn("[useProjects] link thread failed:",e));let l={...s,repos:s.repos??[],agents:[],thread_ids:c,workspace_ids:c};return r(e=>[...e,l].sort((e,t)=>e.name.localeCompare(t.name))),l}catch{return null}},[]),s=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),c=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),l=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...n,repos:n.repos??t.repos}:t)),n}catch{return null}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:i,updateProject:l,renameProject:s,deleteProject:c,addAgent:u,removeAgent:d,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await o()}catch{}},[o]),refresh:o}}e.s(["useProjects",()=>r,"useProjectsWithAgents",()=>a])},797167,e=>{"use strict";let t=(0,e.i(363732).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],797167)},929870,e=>{"use strict";let t=(0,e.i(363732).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],929870)},8707,e=>{"use strict";let t=(0,e.i(363732).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],8707)},498027,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],498027)},529471,e=>{"use strict";let t=(0,e.i(363732).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],529471)},44054,e=>{"use strict";var t=e.i(935851);let r="(pointer: coarse)",a="(hover: hover)",n="(max-width: 767px)",o="(min-width: 768px)";function i(){if("function"!=typeof window.matchMedia)return{isCoarsePointer:!1,canHover:!0,isPhone:!1,isTablet:!1,isTouchLayout:!1};let e=window.matchMedia(r).matches,t=window.matchMedia(a).matches,i=window.matchMedia(n).matches,s=!i&&window.matchMedia(o).matches,c=e||!t;return{isCoarsePointer:e,canHover:t,isPhone:c&&i,isTablet:c&&s,isTouchLayout:c}}function s(){let[e,s]=(0,t.useState)(i);return(0,t.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let e=[window.matchMedia(r),window.matchMedia(a),window.matchMedia(n),window.matchMedia(o)],t=()=>{s(i())};return e.forEach(e=>e.addEventListener("change",t)),window.addEventListener("resize",t),t(),()=>{e.forEach(e=>e.removeEventListener("change",t)),window.removeEventListener("resize",t)}},[]),e}e.s(["useInputCapabilities",()=>s])},169610,e=>{"use strict";let t=(0,e.i(363732).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",()=>t],169610)},755838,(e,t,r)=>{"use strict";var a=e.r(935851),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=a.useState,i=a.useEffect,s=a.useLayoutEffect,c=a.useDebugValue;function l(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}var u="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=o({inst:{value:r,getSnapshot:t}}),n=a[0].inst,u=a[1];return s(function(){n.value=r,n.getSnapshot=t,l(n)&&u({inst:n})},[e,r,t]),i(function(){return l(n)&&u({inst:n}),e(function(){l(n)&&u({inst:n})})},[e]),c(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:u},802239,(e,t,r)=>{"use strict";t.exports=e.r(755838)},752822,(e,t,r)=>{"use strict";var a=e.r(935851),n=e.r(802239),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=n.useSyncExternalStore,s=a.useRef,c=a.useEffect,l=a.useMemo,u=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,n){var d=s(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var p=i(e,(d=l(function(){function e(e){if(!c){if(c=!0,i=e,e=a(e),void 0!==n&&f.hasValue){var t=f.value;if(n(t,e))return s=t}return s=e}if(t=s,o(i,e))return t;var r=a(e);return void 0!==n&&n(t,r)?(i=e,t):(i=e,s=r)}var i,s,c=!1,l=void 0===r?null:r;return[function(){return e(t())},null===l?void 0:function(){return e(l())}]},[t,r,a,n]))[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}},430224,(e,t,r)=>{"use strict";t.exports=e.r(752822)},538292,e=>{"use strict";let t=(0,e.i(363732).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],538292)},19035,e=>{"use strict";let t=(0,e.i(363732).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],19035)},519132,e=>{"use strict";let t=(0,e.i(363732).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",()=>t],519132)},572665,e=>{"use strict";let t=(0,e.i(363732).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],572665)},378764,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(498027),n=e.i(8707),o=e.i(529471),i=e.i(797167);function s({options:e,value:s,onChange:c,placeholder:l,disabled:u}){let[d,f]=(0,r.useState)(!1),[p,h]=(0,r.useState)(""),y=(0,r.useRef)(null),m=(0,r.useRef)(null),g=(0,r.useMemo)(()=>{if(!p)return e;let t=p.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||e.meta?.toLowerCase().includes(t))},[e,p]),v=(0,r.useMemo)(()=>e.find(e=>e.id===s),[e,s]),w=(0,r.useCallback)(e=>{y.current&&!y.current.contains(e.target)&&f(!1)},[]);return(0,r.useEffect)(()=>(document.addEventListener("pointerdown",w),()=>document.removeEventListener("pointerdown",w)),[w]),(0,t.jsxs)("div",{ref:y,className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{u||(f(!d),h(""),setTimeout(()=>m.current?.focus(),0))},disabled:u,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[v?(0,t.jsx)("span",{className:"truncate",children:v.label}):(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] truncate",children:l}),(0,t.jsx)(a.ChevronDown,{className:`w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0 transition-transform ${d?"rotate-180":""}`})]}),d&&(0,t.jsxs)("div",{className:"absolute z-50 mt-2 min-w-full w-max max-w-[28rem] rounded-2xl overflow-hidden right-0",style:{background:"var(--card-bg)",border:"1px solid var(--border)",boxShadow:"0 8px 30px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05)"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,t.jsx)(n.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,t.jsx)("input",{ref:m,value:p,onChange:e=>h(e.target.value),placeholder:"Search...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"}),p&&(0,t.jsx)("button",{onClick:()=>h(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,t.jsx)(i.X,{className:"w-3.5 h-3.5"})})]}),(0,t.jsxs)("div",{className:"max-h-72 overflow-y-auto py-1",children:[0===g.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"No matches"}),g.map(e=>{let r=e.id===s;return(0,t.jsxs)("button",{onClick:()=>{e.disabled||(c(e.id),f(!1),h(""))},disabled:e.disabled,className:`
2
- w-full text-left px-3.5 py-2.5 flex items-center gap-3 transition-colors
3
- ${e.disabled?"opacity-35 cursor-not-allowed":""}
4
- ${r?"bg-[var(--primary)]/10":"hover:bg-[var(--muted)]/40"}
5
- `,children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 border ${r?"bg-[var(--primary)] border-[var(--primary)]":"border-[var(--border)]"}`,children:r&&(0,t.jsx)(o.Check,{className:"w-3 h-3 text-white"})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.label}),e.meta&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-[var(--muted)]/50 text-[var(--muted-foreground)]",children:e.meta})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 line-clamp-1",children:e.description})]})]},e.id)})]})]})]})}e.s(["default",()=>s])},571278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return c},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return s}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function o(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,i(e));else t.set(r,i(a));return t}function c(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},13168,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return s},formatWithValidation:function(){return l},urlObjectKeys:function(){return c}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(190809)._(e.r(571278)),i=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",s=e.hash||"",c=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),c&&"object"==typeof c&&(c=String(o.urlQueryToSearchParams(c)));let u=e.search||c&&`?${c}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||i.test(a))&&!1!==l?(l="//"+(l||""),n&&"/"!==n[0]&&(n="/"+n)):l||(l=""),s&&"#"!==s[0]&&(s="#"+s),u&&"?"!==u[0]&&(u="?"+u),n=n.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${a}${l}${n}${u}${s}`}let c=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return s(e)}},950581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(935851);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=o(e,a)),t&&(n.current=o(t,a))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},692942,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return j},NormalizeError:function(){return v},PageNotFoundError:function(){return w},SP:function(){return y},ST:function(){return m},WEB_VITALS:function(){return o},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return l},getURL:function(){return u},isAbsoluteUrl:function(){return c},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return k}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,c=e=>s.test(e);function l(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function u(){let{href:e}=window.location,t=l();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&f(r))return a;if(!a)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let y="u">typeof performance,m=y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class v extends Error{}class w extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function k(e){return JSON.stringify({message:e.message,stack:e.stack})}},299242,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let a=e.r(692942),n=e.r(756972);function o(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},405374,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},307241,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return g},useLinkStatus:function(){return w}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let o=e.r(190809),i=e.r(762281),s=o._(e.r(935851)),c=e.r(13168),l=e.r(543665),u=e.r(950581),d=e.r(692942),f=e.r(212591);e.r(292135);let p=e.r(53101),h=e.r(299242),y=e.r(979945);function m(e){return"string"==typeof e?e:(0,c.formatUrl)(e)}function g(t){var r;let a,n,o,[c,g]=(0,s.useOptimistic)(p.IDLE_LINK_STATUS),w=(0,s.useRef)(null),{href:j,as:b,children:k,prefetch:x=null,passHref:C,replace:E,shallow:S,scroll:_,onClick:P,onMouseEnter:M,onTouchStart:N,legacyBehavior:O=!1,onNavigate:T,ref:L,unstable_dynamicOnHover:$,...A}=t;a=k,O&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let R=s.default.useContext(l.AppRouterContext),U=!1!==x,z=!1!==x?null===(r=x)||"auto"===r?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,{href:I,as:D}=s.default.useMemo(()=>{let e=m(j);return{href:e,as:b?m(b):e}},[j,b]);if(O){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=s.default.Children.only(a)}let F=O?n&&"object"==typeof n&&n.ref:L,H=s.default.useCallback(e=>(null!==R&&(w.current=(0,p.mountLinkInstance)(e,I,R,z,U,g)),()=>{w.current&&((0,p.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,p.unmountPrefetchableInstance)(e)}),[U,I,R,z,g]),V={ref:(0,u.useMergedRef)(H,F),onClick(t){O||"function"!=typeof P||P(t),O&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!R||t.defaultPrevented||function(t,r,a,n,o,i,c){if("u">typeof window){let l,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((l=t.currentTarget.getAttribute("target"))&&"_self"!==l||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),c){let e=!1;if(c({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(977803);s.default.startTransition(()=>{d(a||r,o?"replace":"push",i??!0,n.current)})}}(t,I,D,w,E,_,T)},onMouseEnter(e){O||"function"!=typeof M||M(e),O&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),R&&U&&(0,p.onNavigationIntent)(e.currentTarget,!0===$)},onTouchStart:function(e){O||"function"!=typeof N||N(e),O&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),R&&U&&(0,p.onNavigationIntent)(e.currentTarget,!0===$)}};return(0,d.isAbsoluteUrl)(D)?V.href=D:O&&!C&&("a"!==n.type||"href"in n.props)||(V.href=(0,f.addBasePath)(D)),o=O?s.default.cloneElement(n,V):(0,i.jsx)("a",{...A,...V,children:a}),(0,i.jsx)(v.Provider,{value:c,children:o})}e.r(405374);let v=(0,s.createContext)(p.IDLE_LINK_STATUS),w=()=>(0,s.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},597628,e=>{"use strict";let t=(0,e.i(363732).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",()=>t],597628)},997626,e=>{"use strict";let t=(0,e.i(363732).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],997626)},938201,e=>{"use strict";let t=(0,e.i(363732).default)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);e.s(["Target",()=>t],938201)},564957,e=>{"use strict";let t=(0,e.i(363732).default)("brain-circuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);e.s(["BrainCircuit",()=>t],564957)},906772,e=>{"use strict";let t=(0,e.i(363732).default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",()=>t],906772)},791210,e=>{"use strict";let t=(0,e.i(363732).default)("corner-down-right",[["path",{d:"m15 10 5 5-5 5",key:"qqa56n"}],["path",{d:"M4 4v7a4 4 0 0 0 4 4h12",key:"z08zvw"}]]);e.s(["CornerDownRight",()=>t],791210)}]);
@@ -1,16 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],640481)},367859,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],367859)},741746,e=>{"use strict";let t=(0,e.i(363732).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],741746)},417442,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],417442)},437307,e=>{"use strict";let t=(0,e.i(363732).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],437307)},558201,e=>{"use strict";let t=(0,e.i(363732).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],558201)},794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],794731)},66386,e=>{"use strict";var t=e.i(935851),r=e.i(506420);function a(e){return"string"!=typeof e?null:e.trim()||null}function n(e,t){return(e.get(t)?.trim()??"")||null}function s(){let e=(0,r.useRouter)(),s=(0,r.usePathname)(),i=(0,r.useSearchParams)(),l=(0,t.useCallback)(e=>n(i,e),[i]),c=(0,t.useCallback)((e,t)=>(function(e,t,r){let s=function(e,t){let r={...t},s=e=>Object.prototype.hasOwnProperty.call(t,e);if(s("issue")&&!s("run")){let s=n(e,"issue");a(t.issue)!==s&&(r.run=null)}if(s("job")&&!s("run")){let s=n(e,"job");a(t.job)!==s&&(r.run=null)}if(s("open")&&!s("message")){let s=n(e,"open");a(t.open)!==s&&(r.message=null)}if(s("group")&&!s("issue")){let s=n(e,"group");a(t.group)!==s&&(r.issue=null,r.run=null)}if(s("issue")&&!s("group")){let s=n(e,"issue");a(t.issue)!==s&&(r.group=null)}return r}(t,r),i=new URLSearchParams(t.toString());for(let[e,t]of Object.entries(s)){let r=a(t);r?i.set(e,r):i.delete(e)}let l=i.toString();return l?`${e}?${l}`:e})(t??s,i,e),[s,i]),o=(0,t.useCallback)((t,r)=>{e.push(c(t,r))},[c,e]),u=(0,t.useCallback)((t,r)=>{e.replace(c(t,r))},[c,e]);return{pathname:s,searchParams:i,getSelection:l,buildHref:c,pushSelection:o,replaceSelection:u}}e.s(["useUrlSelection",()=>s])},580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},203096,e=>{"use strict";let t=(0,e.i(363732).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],203096)},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function r(e,r){let a=new Set,n=new Set;!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",s="string"==typeof t.kind?t.kind:"agent";r&&"agent"===s&&(a.add(r),"parallel"===t.mode&&n.add(r))});let s=t(r);return{...s?{pinnedParticipantId:s}:{},mentionedParticipantIds:Array.from(a),parallelParticipantIds:Array.from(n)}}function a(e,r){let a=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),n=t(r);return n&&a.includes(n)?[n,...a.filter(e=>e!==n)]:a}e.s(["extractComposerRouting",()=>r,"orderParticipantIds",()=>a])},945028,490011,352687,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}function n(e){let[n,s]=(0,t.useState)([]),[i,l]=(0,t.useState)([]),[c,o]=(0,t.useState)([]),u=(0,t.useRef)(e),d=(0,t.useRef)(e);u.current=e,d.current!==e&&(d.current=e,s([]),l([]),o([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),l([]);return}let n=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${n}`),fetch(`/api/logs?${a(t)}`)]);if(u.current!==t)return;e.ok&&s(await e.json()),r.ok&&l(await r.json())}catch{}},[]),h=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),l([]);return}let n=r(t);await Promise.all([fetch(`/api/history?${n}`,{method:"DELETE"}),fetch(`/api/logs?${a(t)}`,{method:"DELETE"})]),u.current===t&&(s([]),l([]))},[]),f=(0,t.useCallback)(async(e,t=10,r,a,n,i,l,c,d,p)=>{let h=r?.trim()||u.current?.trim();if(!h)return;let f=Date.now(),m=crypto.randomUUID(),g={id:m,role:"user",participantId:null,content:e,timestamp:f,rootMessageId:a||null,parentMessageId:a||null,depth:+!!a,...i&&i.length>0?{attachments:i}:{}};s(e=>[...e,g]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,prompt:e,promptPrefix:d||void 0,maxRounds:t,userMessageId:m,rootMessageId:a||void 0,attachmentIds:n?.length?n:void 0,activeParticipantIds:Array.isArray(l)?l:void 0,projectSlug:c?.trim()||void 0,routing:p})}),i=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&i?.chatRunId?o(e=>[{chatRunId:i.chatRunId,threadId:h,rootMessageId:a||m,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==i.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,i?.error||r.statusText),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e))}return m},[]),m=(0,t.useCallback)(async()=>{let e=u.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),g=(0,t.useCallback)(async e=>{let t=u.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:n,setMessages:s,logs:i,sendMessage:f,loadHistory:p,clearHistory:h,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();t?(await fetch(`/api/logs?${a(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),u.current===t&&l([])):l([])},[]),chatRuns:c,setChatRuns:o,stop:m,stopThread:g}}e.s(["useGroupChat",()=>n],945028);let s=new Set(["spawning","running"]);function i(e,r){let a=r?.intervalMs??1500,n=r?.idleIntervalMs??1e4,[i,l]=(0,t.useState)(new Set),[c,o]=(0,t.useState)([]),[u,d]=(0,t.useState)({}),[p,h]=(0,t.useState)([]),f=(0,t.useRef)(e);f.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let m=(0,t.useRef)(r?.setMessages);m.current=r?.setMessages;let g=(0,t.useRef)(0),y=(0,t.useRef)(new Map),I=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of y.current.values())e.close();y.current.clear()},[]);let k=(0,t.useCallback)(async()=>{let e=f.current;if(!e){l(new Set),o([]),d({}),h([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){l(new Set),o([]),d({}),h([]);return}try{let a=e.workspaceId||e.threadId,n=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${g.current}`:null,i=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,c=[fetch(t)];n&&c.push(fetch(n)),i&&c.push(fetch(i));let[u,d,p]=await Promise.all(c),y=f.current;if(y?.threadId!==e.threadId||y?.workspaceId!==e.workspaceId)return;if(u.ok){let e=await u.json();o(e);let t=new Set(e.filter(e=>s.has(e.state)).map(e=>e.agentId));l(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,n="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:n,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);h(e)}if(d?.ok&&m.current){let e=await d.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t),m.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),n=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?n:[...n,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of y.current.entries())t.has(e)||(r.close(),y.current.delete(e),I.current.delete(e));for(let t of e){if(y.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);y.current.set(t.chatRunId,e);let r=new Map;I.current.set(t.chatRunId,r);let a=new Set;e.addEventListener("chat",n=>{let s;try{s=JSON.parse(n.data)}catch{return}switch(s.type){case"participant-start":case"participant-thinking":a.add(s.participantId),r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]}),d(e=>e[s.participantId]?e:{...e,[s.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]});let e=r.get(s.participantId);e&&(e.text+=s.delta,d(r=>{let a={...r},n=t.rootMessageId??null;return a[s.participantId]={content:e.text,rootMessageId:n},a}));break}case"participant-thought":{let e=r.get(s.participantId);e&&(e.thoughts.push(s.content),d(t=>{let r=t[s.participantId];return r?{...t,[s.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":a.delete(s.participantId),k().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"participant-error":a.delete(s.participantId),k().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"done":e.close(),y.current.delete(t.chatRunId),I.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),y.current.delete(t.chatRunId),I.current.delete(t.chatRunId)}}},[p]);let x=e?.threadId||e?.workspaceId||null,v=p.some(e=>"queued"===e.status||"running"===e.status),w=c.some(e=>s.has(e.state)),b=v||w?a:n;return(0,t.useEffect)(()=>{if(!x){l(new Set),o([]),d({}),h([]);return}k();let e=setInterval(k,b);return()=>clearInterval(e)},[x,b,k]),{activeAgents:i,processes:c,streaming:u,chatRuns:p,poll:k}}e.s(["useProcessPolling",()=>i],490011);var l=e.i(762281);function c({isOpen:e,title:r,message:a,preview:n,confirmLabel:s="Confirm",cancelLabel:i="Cancel",variant:c="default",onConfirm:o,onCancel:u}){let d=(0,t.useRef)(null),p=(0,t.useRef)(null);(0,t.useEffect)(()=>{if(e){let e=setTimeout(()=>d.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let h=(0,t.useCallback)(e=>{"Escape"===e.key&&u()},[u]);if(!e)return null;let f="danger"===c;return(0,l.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&u(),onKeyDown:h,children:[(0,l.jsxs)("div",{ref:p,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,l.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,l.jsxs)("div",{className:"flex items-start gap-4",children:[f&&(0,l.jsx)("div",{className:"flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,l.jsx)("svg",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})})}),(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:r}),(0,l.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:a})]})]})}),n&&(0,l.jsx)("div",{className:"mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,l.jsxs)("p",{className:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",n,"”"]})}),(0,l.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,l.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,l.jsx)("button",{onClick:u,className:"px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:i}),(0,l.jsx)("button",{ref:d,onClick:o,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${f?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:s})]})]}),(0,l.jsx)("style",{children:`
2
- @keyframes confirm-overlay-in {
3
- from { opacity: 0; }
4
- to { opacity: 1; }
5
- }
6
- @keyframes confirm-dialog-in {
7
- from {
8
- opacity: 0;
9
- transform: scale(0.9) translateY(10px);
10
- }
11
- to {
12
- opacity: 1;
13
- transform: scale(1) translateY(0);
14
- }
15
- }
16
- `})]})}e.s(["default",()=>c],352687)},982141,e=>{"use strict";let t="agx:lastRun",r="agx:lastSession";function a(){return void 0!==window.localStorage}function n(e){if(!a())return{};try{let t=window.localStorage.getItem(e);if(!t)return{};return JSON.parse(t)}catch{return{}}}function s(e,t){if(a())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function i(e){return n(t)[e]??null}function l(e,r){let a=n(t);a[e]=r,s(t,a)}function c(e){return n(r)[e]??null}function o(e,t){let a=n(r);a[e]=t,s(r,a)}e.s(["loadLastRunForIssue",()=>i,"loadLastSessionForEntity",()=>c,"persistLastRunForIssue",()=>l,"persistLastSessionForEntity",()=>o])},790034,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(568656);function n({params:e}){let{slug:n,objectiveId:s}=(0,r.use)(e);return(0,t.jsx)(a.ProjectObjectivesOverview,{projectSlug:n,initialObjectiveId:s})}e.s(["default",()=>n])},501223,e=>{e.v(t=>Promise.all(["static/chunks/5591af73db0a3aee.js"].map(t=>e.l(t))).then(()=>t(844118)))},469612,e=>{e.v(t=>Promise.all(["static/chunks/256961ed1522219b.js"].map(t=>e.l(t))).then(()=>t(668610)))}]);
@@ -1,16 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],640481)},367859,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],367859)},741746,e=>{"use strict";let t=(0,e.i(363732).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],741746)},417442,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],417442)},437307,e=>{"use strict";let t=(0,e.i(363732).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],437307)},558201,e=>{"use strict";let t=(0,e.i(363732).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],558201)},794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],794731)},66386,e=>{"use strict";var t=e.i(935851),r=e.i(506420);function a(e){return"string"!=typeof e?null:e.trim()||null}function n(e,t){return(e.get(t)?.trim()??"")||null}function s(){let e=(0,r.useRouter)(),s=(0,r.usePathname)(),i=(0,r.useSearchParams)(),l=(0,t.useCallback)(e=>n(i,e),[i]),c=(0,t.useCallback)((e,t)=>(function(e,t,r){let s=function(e,t){let r={...t},s=e=>Object.prototype.hasOwnProperty.call(t,e);if(s("issue")&&!s("run")){let s=n(e,"issue");a(t.issue)!==s&&(r.run=null)}if(s("job")&&!s("run")){let s=n(e,"job");a(t.job)!==s&&(r.run=null)}if(s("open")&&!s("message")){let s=n(e,"open");a(t.open)!==s&&(r.message=null)}if(s("group")&&!s("issue")){let s=n(e,"group");a(t.group)!==s&&(r.issue=null,r.run=null)}if(s("issue")&&!s("group")){let s=n(e,"issue");a(t.issue)!==s&&(r.group=null)}return r}(t,r),i=new URLSearchParams(t.toString());for(let[e,t]of Object.entries(s)){let r=a(t);r?i.set(e,r):i.delete(e)}let l=i.toString();return l?`${e}?${l}`:e})(t??s,i,e),[s,i]),o=(0,t.useCallback)((t,r)=>{e.push(c(t,r))},[c,e]),u=(0,t.useCallback)((t,r)=>{e.replace(c(t,r))},[c,e]);return{pathname:s,searchParams:i,getSelection:l,buildHref:c,pushSelection:o,replaceSelection:u}}e.s(["useUrlSelection",()=>s])},580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},203096,e=>{"use strict";let t=(0,e.i(363732).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],203096)},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function r(e,r){let a=new Set,n=new Set;!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",s="string"==typeof t.kind?t.kind:"agent";r&&"agent"===s&&(a.add(r),"parallel"===t.mode&&n.add(r))});let s=t(r);return{...s?{pinnedParticipantId:s}:{},mentionedParticipantIds:Array.from(a),parallelParticipantIds:Array.from(n)}}function a(e,r){let a=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),n=t(r);return n&&a.includes(n)?[n,...a.filter(e=>e!==n)]:a}e.s(["extractComposerRouting",()=>r,"orderParticipantIds",()=>a])},945028,490011,352687,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}function n(e){let[n,s]=(0,t.useState)([]),[i,l]=(0,t.useState)([]),[c,o]=(0,t.useState)([]),u=(0,t.useRef)(e),d=(0,t.useRef)(e);u.current=e,d.current!==e&&(d.current=e,s([]),l([]),o([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),l([]);return}let n=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${n}`),fetch(`/api/logs?${a(t)}`)]);if(u.current!==t)return;e.ok&&s(await e.json()),r.ok&&l(await r.json())}catch{}},[]),h=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),l([]);return}let n=r(t);await Promise.all([fetch(`/api/history?${n}`,{method:"DELETE"}),fetch(`/api/logs?${a(t)}`,{method:"DELETE"})]),u.current===t&&(s([]),l([]))},[]),f=(0,t.useCallback)(async(e,t=10,r,a,n,i,l,c,d,p)=>{let h=r?.trim()||u.current?.trim();if(!h)return;let f=Date.now(),m=crypto.randomUUID(),g={id:m,role:"user",participantId:null,content:e,timestamp:f,rootMessageId:a||null,parentMessageId:a||null,depth:+!!a,...i&&i.length>0?{attachments:i}:{}};s(e=>[...e,g]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:h,prompt:e,promptPrefix:d||void 0,maxRounds:t,userMessageId:m,rootMessageId:a||void 0,attachmentIds:n?.length?n:void 0,activeParticipantIds:Array.isArray(l)?l:void 0,projectSlug:c?.trim()||void 0,routing:p})}),i=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&i?.chatRunId?o(e=>[{chatRunId:i.chatRunId,threadId:h,rootMessageId:a||m,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==i.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,i?.error||r.statusText),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===m?{...e,sendFailed:!0}:e))}return m},[]),m=(0,t.useCallback)(async()=>{let e=u.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),g=(0,t.useCallback)(async e=>{let t=u.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:n,setMessages:s,logs:i,sendMessage:f,loadHistory:p,clearHistory:h,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();t?(await fetch(`/api/logs?${a(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),u.current===t&&l([])):l([])},[]),chatRuns:c,setChatRuns:o,stop:m,stopThread:g}}e.s(["useGroupChat",()=>n],945028);let s=new Set(["spawning","running"]);function i(e,r){let a=r?.intervalMs??1500,n=r?.idleIntervalMs??1e4,[i,l]=(0,t.useState)(new Set),[c,o]=(0,t.useState)([]),[u,d]=(0,t.useState)({}),[p,h]=(0,t.useState)([]),f=(0,t.useRef)(e);f.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let m=(0,t.useRef)(r?.setMessages);m.current=r?.setMessages;let g=(0,t.useRef)(0),y=(0,t.useRef)(new Map),I=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of y.current.values())e.close();y.current.clear()},[]);let k=(0,t.useCallback)(async()=>{let e=f.current;if(!e){l(new Set),o([]),d({}),h([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){l(new Set),o([]),d({}),h([]);return}try{let a=e.workspaceId||e.threadId,n=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${g.current}`:null,i=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,c=[fetch(t)];n&&c.push(fetch(n)),i&&c.push(fetch(i));let[u,d,p]=await Promise.all(c),y=f.current;if(y?.threadId!==e.threadId||y?.workspaceId!==e.workspaceId)return;if(u.ok){let e=await u.json();o(e);let t=new Set(e.filter(e=>s.has(e.state)).map(e=>e.agentId));l(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,n="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:n,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);h(e)}if(d?.ok&&m.current){let e=await d.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t),m.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),n=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?n:[...n,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of y.current.entries())t.has(e)||(r.close(),y.current.delete(e),I.current.delete(e));for(let t of e){if(y.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);y.current.set(t.chatRunId,e);let r=new Map;I.current.set(t.chatRunId,r);let a=new Set;e.addEventListener("chat",n=>{let s;try{s=JSON.parse(n.data)}catch{return}switch(s.type){case"participant-start":case"participant-thinking":a.add(s.participantId),r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]}),d(e=>e[s.participantId]?e:{...e,[s.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]});let e=r.get(s.participantId);e&&(e.text+=s.delta,d(r=>{let a={...r},n=t.rootMessageId??null;return a[s.participantId]={content:e.text,rootMessageId:n},a}));break}case"participant-thought":{let e=r.get(s.participantId);e&&(e.thoughts.push(s.content),d(t=>{let r=t[s.participantId];return r?{...t,[s.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":a.delete(s.participantId),k().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"participant-error":a.delete(s.participantId),k().then(()=>{d(e=>{let t={...e};return delete t[s.participantId],t})});break;case"done":e.close(),y.current.delete(t.chatRunId),I.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),y.current.delete(t.chatRunId),I.current.delete(t.chatRunId)}}},[p]);let x=e?.threadId||e?.workspaceId||null,v=p.some(e=>"queued"===e.status||"running"===e.status),w=c.some(e=>s.has(e.state)),b=v||w?a:n;return(0,t.useEffect)(()=>{if(!x){l(new Set),o([]),d({}),h([]);return}k();let e=setInterval(k,b);return()=>clearInterval(e)},[x,b,k]),{activeAgents:i,processes:c,streaming:u,chatRuns:p,poll:k}}e.s(["useProcessPolling",()=>i],490011);var l=e.i(762281);function c({isOpen:e,title:r,message:a,preview:n,confirmLabel:s="Confirm",cancelLabel:i="Cancel",variant:c="default",onConfirm:o,onCancel:u}){let d=(0,t.useRef)(null),p=(0,t.useRef)(null);(0,t.useEffect)(()=>{if(e){let e=setTimeout(()=>d.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let h=(0,t.useCallback)(e=>{"Escape"===e.key&&u()},[u]);if(!e)return null;let f="danger"===c;return(0,l.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&u(),onKeyDown:h,children:[(0,l.jsxs)("div",{ref:p,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,l.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,l.jsxs)("div",{className:"flex items-start gap-4",children:[f&&(0,l.jsx)("div",{className:"flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,l.jsx)("svg",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})})}),(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:r}),(0,l.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:a})]})]})}),n&&(0,l.jsx)("div",{className:"mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,l.jsxs)("p",{className:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",n,"”"]})}),(0,l.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,l.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,l.jsx)("button",{onClick:u,className:"px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:i}),(0,l.jsx)("button",{ref:d,onClick:o,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${f?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:s})]})]}),(0,l.jsx)("style",{children:`
2
- @keyframes confirm-overlay-in {
3
- from { opacity: 0; }
4
- to { opacity: 1; }
5
- }
6
- @keyframes confirm-dialog-in {
7
- from {
8
- opacity: 0;
9
- transform: scale(0.9) translateY(10px);
10
- }
11
- to {
12
- opacity: 1;
13
- transform: scale(1) translateY(0);
14
- }
15
- }
16
- `})]})}e.s(["default",()=>c],352687)},982141,e=>{"use strict";let t="agx:lastRun",r="agx:lastSession";function a(){return void 0!==window.localStorage}function n(e){if(!a())return{};try{let t=window.localStorage.getItem(e);if(!t)return{};return JSON.parse(t)}catch{return{}}}function s(e,t){if(a())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function i(e){return n(t)[e]??null}function l(e,r){let a=n(t);a[e]=r,s(t,a)}function c(e){return n(r)[e]??null}function o(e,t){let a=n(r);a[e]=t,s(r,a)}e.s(["loadLastRunForIssue",()=>i,"loadLastSessionForEntity",()=>c,"persistLastRunForIssue",()=>l,"persistLastSessionForEntity",()=>o])},74636,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(568656);function n({params:e}){let{slug:n}=(0,r.use)(e);return(0,t.jsx)(a.ProjectObjectivesOverview,{projectSlug:n})}e.s(["default",()=>n])},501223,e=>{e.v(t=>Promise.all(["static/chunks/5591af73db0a3aee.js"].map(t=>e.l(t))).then(()=>t(844118)))},469612,e=>{e.v(t=>Promise.all(["static/chunks/256961ed1522219b.js"].map(t=>e.l(t))).then(()=>t(668610)))}]);