@mndrk/agx 2.0.56 โ†’ 2.1.0

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 (600) 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 +2 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +15 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js +4 -3
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +2 -2
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +2 -2
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -3
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js +5 -4
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/app-paths-manifest.json +3 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/build-manifest.json +9 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/server-reference-manifest.json +4 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js +13 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.map +5 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.nft.json +1 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route_client-reference-manifest.js +3 -0
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +4 -4
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js +4 -4
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js +2 -2
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +2 -2
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +14 -13
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js +3 -3
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/app-paths-manifest.json +3 -0
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/build-manifest.json +9 -0
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/server-reference-manifest.json +4 -0
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +28 -0
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.map +5 -0
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -0
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route_client-reference-manifest.js +3 -0
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +9 -5
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +1 -1
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +4 -4
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +16 -15
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js +5 -5
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +2 -2
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +5 -4
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +14 -14
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +14 -14
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js +1 -1
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js.nft.json +1 -1
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +2 -2
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +2 -2
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  226. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
  227. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  228. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js +1 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +6 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js +1 -1
  234. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  235. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  236. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
  237. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  238. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  239. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  242. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
  243. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  244. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  245. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js +1 -1
  246. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  248. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  254. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
  255. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  257. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  271. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js +1 -1
  273. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  274. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  275. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +3 -3
  277. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  278. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  279. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  280. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  281. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  282. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  283. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  287. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  288. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +2 -2
  289. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  290. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  292. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  293. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js.nft.json +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  299. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  300. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  301. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  302. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  303. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  304. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
  307. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  310. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  311. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  313. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  314. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  315. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  316. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js +1 -1
  318. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js.nft.json +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  321. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  322. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  323. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  324. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  325. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  326. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  327. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
  329. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  330. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  331. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  332. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
  333. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
  334. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  335. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  336. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  337. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  338. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  339. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js +1 -1
  340. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  341. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  342. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +2 -0
  343. package/cloud-runtime/standalone/apps/local/.next/server/chunks/0jps_app_api_projects_[id]_objectives_[objectiveId]_worker_route_actions_0v8q3zz.js +3 -0
  344. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__0_au5u1._.js +3 -0
  345. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__13x93ar._.js +3 -0
  346. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0_10qfd._.js โ†’ [root-of-the-server]__0.6yz1u._.js} +2 -2
  347. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01lsgl~._.js +4 -0
  348. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0205scg._.js โ†’ [root-of-the-server]__03.9arn._.js} +2 -2
  349. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__03h0gqp._.js +3 -0
  350. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08jo91s._.js +9 -0
  351. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0o315az._.js โ†’ [root-of-the-server]__09j9jpf._.js} +2 -2
  352. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-nye63._.js โ†’ [root-of-the-server]__09jghbu._.js} +2 -2
  353. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0_7hiof._.js +43 -0
  354. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0.jam.l._.js โ†’ [root-of-the-server]__0a0cq38._.js} +2 -2
  355. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +54 -0
  356. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0c86535._.js +3 -0
  357. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0cj1krd._.js +3 -0
  358. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0aa-88e._.js โ†’ [root-of-the-server]__0dy3h2i._.js} +2 -2
  359. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0touqng._.js โ†’ [root-of-the-server]__0e8-2k_._.js} +2 -2
  360. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0enhv5p._.js +3 -0
  361. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f9byr.._.js +1 -1
  362. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0t2jk2r._.js โ†’ [root-of-the-server]__0g7hc1-._.js} +2 -2
  363. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +55 -0
  364. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__019q25b._.js โ†’ [root-of-the-server]__0gj~dap._.js} +7 -7
  365. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0e6cj2y._.js โ†’ [root-of-the-server]__0hc45jw._.js} +2 -2
  366. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +49 -0
  367. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hmw36u._.js +1 -1
  368. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +54 -0
  369. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0n.momw._.js +8 -0
  370. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tjo9we._.js +7 -0
  371. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-~t2br._.js โ†’ [root-of-the-server]__0v7jjvl._.js} +2 -2
  372. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +3 -0
  373. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__11nke7t._.js โ†’ [root-of-the-server]__0y3qxv1._.js} +2 -2
  374. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__10z8f9h._.js โ†’ [root-of-the-server]__0ygidxe._.js} +2 -2
  375. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +49 -0
  376. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zsv-tb._.js +8 -0
  377. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~nnfjr._.js +3 -0
  378. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~x4jbk._.js +3 -0
  379. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +229 -0
  380. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12qy318._.js +3 -0
  381. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_039.xxy._.js +1 -1
  382. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_06oeti1._.js +49 -0
  383. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0dyy7h.._.js +3 -0
  384. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gi7c9x._.js +2 -2
  385. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gr.psg._.js +1 -1
  386. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0sd8z0i._.js +21 -0
  387. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
  388. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~ah49q._.js +1 -1
  389. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_01kqgle._.js +11 -0
  390. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +36 -0
  391. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +397 -0
  392. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_a~bj0._.js +25 -0
  393. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +397 -0
  394. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0bjdpen._.js +29 -0
  395. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  396. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +41 -0
  397. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0h7wd0e._.js +29 -0
  398. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +397 -0
  399. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0ipg-p6._.js +3 -0
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0npxy21._.js +11 -0
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0uhfa93._.js +21 -0
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_12wpldq._.js +25 -0
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_worker_route_actions_116303i.js +3 -0
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01hd2_5._.js +3 -0
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +34 -0
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0ik933l._.js +55 -0
  407. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0o1v.j4._.js +79 -0
  408. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0pxj122._.js +55 -0
  409. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_0_8ch28._.js +10 -0
  410. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +41 -0
  411. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0.xgxyl._.js +4 -0
  412. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0yu3--n._.js +4 -0
  413. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0ze8hzc._.js +4 -0
  414. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_0p0aod1._.js +5 -5
  415. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_linear-worker_ts_0ycjwem._.js +5 -0
  416. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  417. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  418. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +3 -0
  419. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0hvpc.y._.js +3 -0
  420. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +3 -0
  421. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +18 -0
  422. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0j9m72.._.js +18 -0
  423. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__02.r909._.js โ†’ [root-of-the-server]__0n5g8ml._.js} +2 -2
  424. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w.zmt6._.js +3 -0
  425. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w1mm2j._.js +3 -0
  426. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +3 -0
  427. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__10h_7t0._.js +3 -0
  428. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13h-0om._.js +3 -0
  429. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +3 -0
  430. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +1 -1
  431. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0wk3skw._.js +1 -1
  432. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +25 -0
  433. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_075cq2j._.js โ†’ apps_local_0k4~c1x._.js} +2 -2
  434. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +3 -0
  435. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0_4hk8x._.js โ†’ apps_local_0v~bvwg._.js} +2 -2
  436. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  437. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_graph_[taskId]_page_tsx_0bctfd-._.js +1 -1
  438. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +2 -2
  439. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  440. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +3 -0
  441. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_06czvz-._.js +1 -1
  442. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +12 -12
  443. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_orphans_page_tsx_0sdv.11._.js +1 -1
  444. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  445. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +8 -0
  446. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +6 -6
  447. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +2 -0
  448. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  449. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  450. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  451. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  452. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  453. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  454. package/cloud-runtime/standalone/apps/local/.next/static/chunks/003q-y3exxalk.js +1 -0
  455. package/cloud-runtime/standalone/apps/local/.next/static/chunks/00po4v2x~0x_z.js +1 -0
  456. package/cloud-runtime/standalone/apps/local/.next/static/chunks/013gtut17~fne.js +23 -0
  457. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +1 -0
  458. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +1 -0
  459. package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +16 -0
  460. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +1 -0
  461. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{11-u35xqxu~i-.js โ†’ 0aewbg0i704w7.js} +1 -1
  462. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{08~pgzjb13k_v.js โ†’ 0dnw31436wd~..js} +2 -2
  463. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jonp-o8lh-4j.js โ†’ 0e307b-0c2jbx.js} +1 -1
  464. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +1 -0
  465. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0o9cxba_5mv2c.js โ†’ 0fonouj2i9qnb.js} +1 -1
  466. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gj98094p~zn4.js +1 -0
  467. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +37 -0
  468. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{02zcxdul-1jaf.js โ†’ 0mig99af4~uos.js} +3 -3
  469. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +5 -0
  470. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +1 -0
  471. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0stvi5btlxl4m.js +20 -0
  472. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rey9zfvm3yhd.js โ†’ 0tt1oh112yv-l.js} +1 -1
  473. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +1 -0
  474. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0mvqoz13v0o2a.js โ†’ 0wh6p5~ft5rma.js} +2 -2
  475. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +1 -0
  476. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00lise4d-u8d1.js โ†’ 1011~1x9nj4ny.js} +1 -1
  477. package/cloud-runtime/standalone/apps/local/.next/static/chunks/119v0-idpg-cv.js +16 -0
  478. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +20 -0
  479. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +6 -0
  480. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +40 -5
  481. package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +10 -0
  482. package/cloud-runtime/standalone/apps/local/app/api/linear/worker/route.ts +151 -0
  483. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +0 -8
  484. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +6 -27
  485. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +89 -0
  486. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +13 -0
  487. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +4 -4
  488. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +5 -3
  489. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +7 -4
  490. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +236 -10
  491. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +9 -1
  492. package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +36 -8
  493. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +53 -24
  494. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +73 -0
  495. package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +17 -12
  496. package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +105 -0
  497. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +367 -0
  498. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +215 -0
  499. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +170 -46
  500. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +8 -2
  501. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +211 -368
  502. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +213 -0
  503. package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +121 -6
  504. package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +1 -1
  505. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +242 -0
  506. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +2 -2
  507. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +1 -1
  508. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +288 -15
  509. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +24 -14
  510. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +16 -2
  511. package/cloud-runtime/standalone/apps/local/lib/objective-health-history.ts +198 -0
  512. package/cloud-runtime/standalone/apps/local/lib/project-objective-context.ts +10 -0
  513. package/cloud-runtime/standalone/apps/local/lib/project-objectives.ts +0 -9
  514. package/cloud-runtime/standalone/apps/local/skills-lock.json +20 -0
  515. package/cloud-runtime/standalone/apps/local/src/automations/adapters.ts +5 -0
  516. package/cloud-runtime/standalone/apps/local/src/automations/types.ts +5 -0
  517. package/cloud-runtime/standalone/apps/local/src/automations/validation.ts +12 -5
  518. package/cloud-runtime/standalone/apps/local/src/objectives/parser.ts +0 -2
  519. package/cloud-runtime/standalone/apps/local/src/objectives/serializer.ts +0 -2
  520. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-constants.ts +38 -0
  521. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-job.ts +47 -0
  522. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker.ts +482 -0
  523. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker-job.ts +47 -0
  524. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +511 -0
  525. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +51 -417
  526. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +19 -4
  527. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +12 -8
  528. package/cloud-runtime/standalone/apps/local/state/terminalTabs.ts +182 -106
  529. package/cloud-runtime/standalone/apps/local/worker/index.js +12 -13
  530. package/package.json +1 -1
  531. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-0479y._.js +0 -54
  532. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08oj_ky._.js +0 -49
  533. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08y2lkj._.js +0 -3
  534. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +0 -3
  535. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g50c6p._.js +0 -237
  536. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gtv0rq._.js +0 -8
  537. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ksbs9p._.js +0 -3
  538. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0pz~m67._.js +0 -3
  539. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q93mk3._.js +0 -7
  540. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tdixb0._.js +0 -49
  541. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vhcrdv._.js +0 -229
  542. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0xdp_8-._.js +0 -237
  543. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11s20j6._.js +0 -3
  544. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12xhcor._.js +0 -54
  545. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_01rag2f._.js +0 -49
  546. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_03y4xss._.js +0 -21
  547. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0cm4i3i._.js +0 -3
  548. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0ijzgnb._.js +0 -3
  549. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~fjhfa._.js +0 -3
  550. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_12yasaj._.js +0 -9
  551. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_03q7_.q._.js +0 -21
  552. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0m3e2d~._.js +0 -30
  553. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0r-oiga._.js +0 -30
  554. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_00cwfvi._.js +0 -34
  555. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0hx7xyz._.js +0 -34
  556. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0rqcat4._.js +0 -55
  557. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0sc_lek._.js +0 -79
  558. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_135ddsu._.js +0 -55
  559. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_store_ts_0h.2qy9._.js +0 -43
  560. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_022nz2u._.js +0 -3
  561. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +0 -475
  562. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yvelwy.js +0 -3
  563. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0qzjdog._.js +0 -3
  564. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0a-mbbj._.js +0 -3
  565. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__07johgg._.js +0 -3
  566. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0bf346q._.js +0 -3
  567. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r3w68h._.js +0 -18
  568. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0x7k~pk._.js +0 -3
  569. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0y8j6el._.js +0 -18
  570. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0yme9fy._.js +0 -3
  571. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~7q5sw._.js +0 -3
  572. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13eqcxp._.js +0 -3
  573. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_09~glsn._.js +0 -3
  574. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0n80y4_._.js +0 -3
  575. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ndrb_0._.js +0 -8
  576. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ut3k~7._.js +0 -3
  577. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0vibfch._.js +0 -3
  578. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +0 -8
  579. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_04hvzn_._.js +0 -3
  580. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.4d8rshxivwh.js +0 -20
  581. package/cloud-runtime/standalone/apps/local/.next/static/chunks/02p3n7faotpr9.js +0 -16
  582. package/cloud-runtime/standalone/apps/local/.next/static/chunks/051-7k0nnm-vm.js +0 -1
  583. package/cloud-runtime/standalone/apps/local/.next/static/chunks/055bzj5jfgzr0.js +0 -1
  584. package/cloud-runtime/standalone/apps/local/.next/static/chunks/05c-~4v_jrblf.css +0 -1
  585. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09wzd7y~tk-3~.js +0 -1
  586. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0brmd4~76pthy.js +0 -20
  587. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0hudzktaaxr4g.js +0 -6
  588. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0hzq698w6f4m6.js +0 -1
  589. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0i.su2yr26wb6.js +0 -37
  590. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jsbvcyub73d9.js +0 -1
  591. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l2pt2td_87wr.js +0 -5
  592. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p7s38p3bcffh.js +0 -1
  593. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0q2dgbluvgxf2.js +0 -16
  594. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ucg8e2wkd8gf.js +0 -1
  595. package/cloud-runtime/standalone/apps/local/.next/static/chunks/104xjvrf6y-zq.js +0 -1
  596. package/cloud-runtime/standalone/apps/local/.next/static/chunks/15jlly_p-g4c8.js +0 -6
  597. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16nozeadjid9-.js +0 -5
  598. /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW โ†’ RnYHmEXBwXJjVrVVx2CuP}/_buildManifest.js +0 -0
  599. /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW โ†’ RnYHmEXBwXJjVrVVx2CuP}/_clientMiddlewareManifest.js +0 -0
  600. /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW โ†’ RnYHmEXBwXJjVrVVx2CuP}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
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",0,t],640481)},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",0,t],794731)},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",0,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",0,t],203096)},423709,e=>{"use strict";e.s(["stripMarkers",0,function(e){return e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim()}])},66386,e=>{"use strict";var t=e.i(271645),r=e.i(618566);function a(e){return"string"!=typeof e?null:e.trim()||null}function n(e,t){return(e.get(t)?.trim()??"")||null}e.s(["useUrlSelection",0,function(){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)}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}}])},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}e.s(["extractComposerRouting",0,function(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)}},"orderParticipantIds",0,function(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}])},945028,490011,e=>{"use strict";var t=e.i(271645);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}e.s(["useGroupChat",0,function(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}}],945028);let n=new Set(["spawning","running"]);e.s(["useProcessPolling",0,function(e,r){let a=r?.intervalMs??1500,s=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;let m=(0,t.useRef)(r?.messages??[]);m.current=r?.messages??[];let g=(0,t.useRef)(r?.setMessages);g.current=r?.setMessages;let y=(0,t.useRef)(0);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>y.current&&(y.current=t)}},[r?.messages]);let I=(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,s=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${y.current}`:null,i=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,c=[fetch(t)];s&&c.push(fetch(s)),i&&c.push(fetch(i));let[u,p,I]=await Promise.all(c),k=f.current;if(k?.threadId!==e.threadId||k?.workspaceId!==e.workspaceId)return;if(u.ok){let e=await u.json();o(e);let t=new Set(e.filter(e=>n.has(e.state)).map(e=>e.agentId));l(t);let r={};for(let t of e){if(!n.has(t.state))continue;let e=m.current.find(e=>e.id===t.sinceMessageId),a=e?.rootMessageId??t.sinceMessageId;r[t.agentId]={content:"",rootMessageId:a}}d(r)}if(I?.ok){var r;let e=(r=await I.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(p?.ok&&g.current){let e=await p.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>y.current&&(y.current=t),g.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{}},[]),k=e?.threadId||e?.workspaceId||null,w=p.some(e=>"queued"===e.status||"running"===e.status),v=c.some(e=>n.has(e.state)),M=w||v?a:s;return(0,t.useEffect)(()=>{if(!k){l(new Set),o([]),d({}),h([]);return}I();let e=setInterval(I,M);return()=>clearInterval(e)},[k,M,I]),{activeAgents:i,processes:c,streaming:u,chatRuns:p,poll:I}}],490011)},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",0,t],558201)},245900,e=>{"use strict";let t=(0,e.i(363732).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",0,t],245900)},248004,e=>{"use strict";let t=(0,e.i(363732).default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);e.s(["Settings2",0,t],248004)},544832,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(524123),n=e.i(827430);e.s(["default",0,function({params:e}){let{slug:s}=(0,r.use)(e),{projects:i,isLoading:l}=(0,a.useProjects)(),c=i.find(e=>e.slug===s);return l?(0,t.jsx)("div",{className:"px-6 py-6 text-sm text-[var(--muted-foreground)]",children:"Loading automations..."}):c?(0,t.jsx)(n.default,{projectId:c.id,requireProjectId:!0}):(0,t.jsx)("div",{className:"px-6 py-6 text-sm text-[var(--muted-foreground)]",children:"Project not found."})}])},501223,e=>{e.v(t=>Promise.all(["static/chunks/177-q0wwdi0qe.js","static/chunks/1503vb7lb6.g1.js","static/chunks/02tungbq2jlgh.css"].map(t=>e.l(t))).then(()=>t(844118)))},469612,e=>{e.v(t=>Promise.all(["static/chunks/0il_ov6232avr.js"].map(t=>e.l(t))).then(()=>t(668610)))}]);
@@ -0,0 +1,37 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,628822,e=>{"use strict";var t=e.i(843476),r=e.i(271645),s=e.i(618566),a=e.i(524123),n=e.i(770703),i=e.i(363732);let o=(0,i.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),l=(0,i.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var d=e.i(529471),c=e.i(498027),u=e.i(580873),x=e.i(245110),m=e.i(575479);let p=(0,i.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var f=e.i(245900),g=e.i(929870),h=e.i(203096),b=e.i(8707),v=e.i(257587),j=e.i(169610),y=e.i(797167),w=e.i(66386),N=e.i(33887);let k="agx-linear:runScripts",S={activeScriptId:null,scripts:[]};function C(){return void 0!==window.localStorage}function I(e){if(!e||"object"!=typeof e)return{...S};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 A(e){let t=String(e??"").trim().toLowerCase();return t?`${k}:${t}`:`${k}:global`}var R=e.i(945028),L=e.i(490011),$=e.i(208343),E=e.i(693646),M=e.i(794731),P=e.i(352687),T=e.i(40527);function z({projectSlug:e,scripts:s,activeScriptId:a,onSetActiveScriptId:n,onSaveScript:i,onDeleteScript:o}){let l=(0,r.useMemo)(()=>s.find(e=>e.id===a)??null,[a,s]),[c,u]=(0,r.useState)(()=>a?{type:"edit",scriptId:a}:{type:"new"}),[x,m]=(0,r.useState)(""),[p,f]=(0,r.useState)(""),[h,b]=(0,r.useState)(null),[v,j]=(0,r.useState)(null),y="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(l&&"new"!==c.type){("edit"!==c.type||c.scriptId!==l.id)&&u({type:"edit",scriptId:l.id}),m(l.name),f(l.prompt);return}0===s.length&&"new"!==c.type&&(u({type:"new"}),m(""),f(""))},[l,y,c,s]);let w=()=>{u({type:"new"}),m(""),f(""),b(null)},N=()=>{try{let e=i({name:x,prompt:p});u({type:"edit",scriptId:e.id}),b(null)}catch(e){b(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 Linear 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:w,children:[(0,t.jsx)(g.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)(d.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),b(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)(d.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}}"}),"."]})]}),l?(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: ",l.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:x,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)(T.default,{content:p,onChange:f,placeholder:"Read {{ticket.identifier}} and the full comment thread in Linear before changing code.\nWrite your investigation to {{knowledge_base.issue_path}} and stop after posting a plan unless the issue is already approved for implementation."})})]}),h?(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:h}):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:N,children:[(0,t.jsx)(E.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 N();try{let e=i({id:c.scriptId,name:x,prompt:p});u({type:"edit",scriptId:e.id}),b(null)}catch(e){b(e instanceof Error?e.message:"Failed to update session script.")}},children:[(0,t.jsx)(E.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:()=>{j(s.find(e=>e.id===c.scriptId)??null)},children:[(0,t.jsx)(M.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:w,children:[(0,t.jsx)(g.Plus,{size:14}),"Clear editor"]})]})]})]})]}),(0,t.jsx)(P.default,{isOpen:!!v,title:"Delete session script?",message:"This removes the saved script from this device for the current project.",preview:v?.name,confirmLabel:"Delete",variant:"danger",onConfirm:()=>{v&&(o(v.id),"edit"===c.type&&c.scriptId===v.id&&(u({type:"new"}),m(""),f("")),j(null),b(null))},onCancel:()=>j(null)})]})}var O=e.i(423709),U=e.i(44054);let D="agx-linear:boardFilters",F={search:"",assigneeIds:[],statuses:[],teamId:"",cycleId:"",sortBy:"activity",sortDir:"desc",hasActivity:!1};function _(){return void 0!==window.localStorage}function W(e){return Array.isArray(e)?Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[]}function q(e){let t=String(e??"").trim().toLowerCase();return t?`${D}:${t}`:`${D}:global`}var B=e.i(169433),K=e.i(990933);function X(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}var G=e.i(906724);let J=[{id:"claude",label:"Claude Code",icon:"๐ŸŸฃ"},{id:"codex",label:"Codex",icon:"โšซ"},{id:"gemini",label:"Gemini CLI",icon:"๐Ÿ”ต"}];function H({connected:e,user:s,clis:a,mcpConfigured:n,onConnect:i,onConnectWithKey:o,onDisconnect:l,onConfigureMcp:c,onContinue:u}){let[m,p]=(0,r.useState)(""),[f,g]=(0,r.useState)(null),[h,b]=(0,r.useState)(!1),[v,j]=(0,r.useState)(null),[y,w]=(0,r.useState)(null),N=async()=>{if(!m.trim())return;b(!0),g(null);let e=await o(m.trim());b(!1),e.ok||g(e.error||"Failed to connect")},k=async e=>{j(e),w(null);let t=await c(e);j(null),t.ok||w(t.error||"Failed to configure")},S=J.filter(e=>a[e.id]).some(e=>n[e.id]);return(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsxs)("div",{className:"w-full max-w-md space-y-6 px-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[e&&(0,t.jsx)("div",{className:"flex h-4 w-4 items-center justify-center rounded-full bg-green-500/20",children:(0,t.jsx)(d.Check,{size:10,className:"text-green-500"})}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Connect to Linear"})]}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Connect your workspace to browse tickets and execute them with agents."}),(0,t.jsx)("div",{className:"mt-3 space-y-3",children:e?(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2",children:[(0,t.jsxs)("div",{className:"text-xs text-[var(--foreground)]",children:["Connected as"," ",(0,t.jsx)("span",{className:"font-medium",children:s?.name})]}),(0,t.jsx)("button",{type:"button",onClick:l,className:"text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Disconnect"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:i,className:"w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:"Connect with Linear"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"}),"or",(0,t.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)] block mb-1",children:"Personal API key"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{type:"password",value:m,onChange:e=>{p(e.target.value),g(null)},onKeyDown:e=>{"Enter"===e.key&&N()},placeholder:"lin_api_...",className:"flex-1 rounded-md border border-[var(--card-border)] bg-transparent px-3 py-1.5 text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 focus:ring-[var(--foreground)]"}),(0,t.jsx)("button",{type:"button",onClick:N,disabled:!m.trim()||h,className:"rounded-md border border-[var(--card-border)] px-3 py-1.5 text-xs text-[var(--foreground)] transition-colors hover:bg-[var(--card-border)] disabled:opacity-40",children:h?"...":"Save"})]}),f&&(0,t.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:f}),(0,t.jsxs)("a",{href:"https://linear.app/settings/api",target:"_blank",rel:"noopener noreferrer",className:"mt-1 inline-flex items-center gap-1 text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:["Generate at linear.app/settings/api",(0,t.jsx)(x.ExternalLink,{size:8})]})]})]})})]}),e&&(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Configure MCP"}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Add the Linear MCP server to your AI tools so agents can read and update tickets during execution."}),(0,t.jsxs)("div",{className:"mt-3 space-y-1",children:[J.map(e=>{let r=a[e.id],s=n[e.id],i=v===e.id;return(0,t.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2 ${!r?"opacity-40":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)("span",{children:e.icon}),(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:e.label})]}),r?s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-green-500",children:[(0,t.jsx)(d.Check,{size:10}),"Configured"]}):(0,t.jsx)("button",{type:"button",onClick:()=>k(e.id),disabled:i,className:"flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-[var(--foreground)] border border-[var(--card-border)] hover:bg-[var(--card-border)] transition-colors disabled:opacity-50",children:i?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(G.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},e.id)}),y&&(0,t.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:y})]}),(0,t.jsx)("button",{type:"button",onClick:u,className:"mt-4 w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:S?"Continue":"Skip for now"})]})]})})}var Y=e.i(51297),V=e.i(367859),Q=e.i(524507),Z=e.i(667480),ee=e.i(154248);let et=(0,n.default)(()=>e.A(469612),{loadableGenerated:{modules:[668610]},ssr:!1});function er({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 es({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)(c.ChevronDown,{size:12}):(0,t.jsx)(V.ChevronRight,{size:12}),e]}),r&&(0,t.jsx)("div",{className:"border-t border-[var(--card-border)]",children:a})]})}function ea({projectId:e}){let[s,a]=(0,r.useState)(null),[n,i]=(0,r.useState)([]),[o,l]=(0,r.useState)(!0),[d,c]=(0,r.useState)(!1),[u,x]=(0,r.useState)(ee.LINEAR_WORKER_DEFAULT_PROMPT),[m,p]=(0,r.useState)(ee.LINEAR_WORKER_DEFAULT_SCRIPT_PROMPT),[g,b]=(0,r.useState)("*/30 * * * *"),[v,j]=(0,r.useState)(""),[y,w]=(0,r.useState)(""),[N,k]=(0,r.useState)(!1),[S,C]=(0,r.useState)(!0),I=(0,r.useRef)(!1),A=(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 s=await r.json();s.job&&(a(s.job),x(s.job.prompt||ee.LINEAR_WORKER_DEFAULT_PROMPT),p(s.job.scriptPrompt||ee.LINEAR_WORKER_DEFAULT_SCRIPT_PROMPT),b(s.job.cronExpr||s.job.cadence||"*/30 * * * *"),j(s.job.condition||""),w(s.job.teamId||""))}catch{}finally{l(!1)}},[e]),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}));i(r)}catch{}},[e]);(0,r.useEffect)(()=>{I.current||(I.current=!0,A(),R())},[A,R]),(0,r.useEffect)(()=>{let e=setInterval(A,15e3);return()=>clearInterval(e)},[A]);let L=(0,r.useCallback)(async()=>{c(!0);try{let t={prompt:u,scriptPrompt:m,cadence:g,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();a(e.job)}}catch{}finally{c(!1)}},[u,m,g,v,y,e]),$=(0,r.useCallback)(async()=>{if(!s)return void await L();c(!0);try{let t="active"===s.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();a(e.job)}}catch{}finally{c(!1)}},[s,e,L]);if(o)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)(h.RefreshCw,{size:14,className:"animate-spin"}),"Loading Linear Worker..."]});let E=s?.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:s&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] ${E?"border-emerald-500/30 bg-emerald-500/10 text-emerald-400":"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"}`,children:s.state}),(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`}(s.nextRunAt,s.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`}(s.lastRunAt)})]}),s.lastOutcome&&(0,t.jsxs)("span",{children:["Outcome:"," ",(0,t.jsx)("span",{className:"success"===s.lastOutcome?"text-emerald-400":"failed"===s.lastOutcome?"text-red-400":"text-[var(--foreground)]",children:s.lastOutcome})]})]})}),(0,t.jsx)("button",{type:"button",disabled:d,onClick:$,className:`flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors ${E?"border-yellow-500/30 bg-yellow-500/10 text-yellow-400 hover:bg-yellow-500/20":"border-emerald-500/30 bg-emerald-500/10 text-emerald-400 hover:bg-emerald-500/20"}`,children:E?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Q.Pause,{size:12})," Pause"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.Play,{size:12})," ",s?"Resume":"Enable"]})})]}),(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)(es,{title:"How to pick a ticket",expanded:N,onToggle:()=>k(!N),children:(0,t.jsx)("div",{className:"min-h-[120px] overflow-y-auto resize-y",style:{height:320},children:(0,t.jsx)(et,{content:u,onChange:e=>x(e),placeholder:"Describe how to pick which ticket to work on..."})})}),(0,t.jsx)(es,{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)(et,{content:m,onChange:e=>p(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:[n.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(er,{children:"Team"}),(0,t.jsx)(Z.SimpleDropdown,{value:y||"",options:[{value:"",label:"Select a team"},...n.map(e=>({value:e.id,label:e.name}))],onChange:e=>w(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 linear chat."})]}),(0,t.jsx)(Z.ScheduleConditionPicker,{value:{cadence:g,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:d,onClick:L,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:d?"Saving...":"Save configuration"})})]})}function en({connected:e,user:s,clis:a,mcpConfigured:n,onConnect:i,onConnectWithKey:o,onDisconnect:l,onConfigureMcp:d,onClose:c,projectId:u}){let[x,m]=(0,r.useState)(e?"worker":"connection"),f=[{id:"connection",label:"Connection",icon:(0,t.jsx)(p,{size:14})},{id:"worker",label:"Linear Worker",icon:(0,t.jsx)(Y.Bot,{size:14}),disabled:!e}];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:f.map(e=>{let r=x===e.id;return(0,t.jsxs)("button",{onClick:()=>!e.disabled&&m(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:c,children:(0,t.jsx)(y.X,{size:18})})]}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 max-h-[80vh] overflow-y-auto p-6",children:["connection"===x&&(0,t.jsx)(H,{connected:e,user:s,clis:a,mcpConfigured:n,onConnect:i,onConnectWithKey:o,onDisconnect:l,onConfigureMcp:d,onContinue:c}),"worker"===x&&e&&(0,t.jsx)(ea,{projectId:u})]})]})})}let ei=(0,n.default)(()=>e.A(501223).then(e=>e.Composer),{loadableGenerated:{modules:[844118]},ssr:!1});function eo({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 el(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 ed(e){return new Date(e).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function ec(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 eu(e){let t=e.sessionTitle?.trim();return t||("scripted"===e.mode?"Scripted session":"Chat session")}let ex={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},em={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"},ep={queued:"bg-amber-400",running:"bg-yellow-400",ready:"bg-sky-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"},ef={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 eg({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)(c.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function eh({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)(h.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)(c.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"})]})}function eb({label:e,values:s,options:a,activeClasses:n,onChange:i,emptyLabel:o}){let[l,u]=(0,r.useState)(!1),x=(0,r.useRef)(null),m=a.filter(e=>e.value&&s.includes(e.value)),p=m.length>0,f=(()=>{if(0===m.length||m.length===a.length)return o??e;if(1===m.length)return m[0]?.label??o??e;let t=e.toLowerCase();return`${m.length} ${t}${t.endsWith("s")?"es":"s"}`})();(0,r.useEffect)(()=>{if(!l)return;let e=e=>{x.current&&!x.current.contains(e.target)&&u(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[l]);let g=(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:x,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:()=>u(e=>!e),children:[(0,t.jsx)("span",{className:"max-w-[132px] truncate",children:f}),(0,t.jsx)(c.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)(d.Check,{size:10})}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:o??e})]}),m.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:()=>g(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)(d.Check,{size:10}):null}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:r.label})]},`${e}-${r.value}`)})]}):null]})}function ev({issue:e,participants:s,projectId:a,projectSlug:n,issueStatusOptions:i,issueStatusUpdating:o,onIssueStatusChange:l,activeSessionScriptLabel:d,onOpenSessionScripts:c,onStartScriptedSession:u,createRun:x,updateRun:p,onRunCreated:g}){let h=s[0],b=(0,r.useRef)(null);b.current||(b.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:v,setMessages:y,sendMessage:w,chatRuns:N}=(0,R.useGroupChat)(b.current),{processes:k,streaming:S}=(0,L.useProcessPolling)({workspaceId:b.current},{messages:v,setMessages:y}),C=new Set(["queued","running","awaiting_user","blocked"]),I=N.some(e=>C.has(e.status))||k.some(e=>"spawning"===e.state||"running"===e.state)?N.some(e=>"queued"===e.status)?"queued":"working":"ready",A=(0,r.useMemo)(()=>new Map(s.map(e=>[e.id,e])),[s]),E=(0,r.useRef)(!1),M=(0,r.useCallback)(async(t,r,i,o,l,d,c)=>{if(E.current)return;E.current=!0;let u=(l?s.find(e=>e.id===l):null)??h;if(u)try{var m,f,b;let r,s,i,o,l,h,v,j,y,w,N,k,S,C,I,A,R,L,$,E,{promptPrefix:M}=(i=(f={issue:{identifier:e.identifier,title:e.title,status:e.status,assignee:e.assignee},project:n?{slug:n}:null}).issue.identifier.trim()||"TICKET-ID",o=f.issue.title.trim()||"Untitled ticket",l=String(f.issue.status??"").trim()||"Unknown",h=String(f.issue.assignee??"").trim()||"Unassigned",v=function(e){let t=String(e?.slug??"").trim();if(t)return X(t,"project");let r=String(e?.name??"").trim();return r?X(r,"project"):"project"}(f.project),j=String(f.project?.name??"").trim()||v,y=String(f.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${v}`,w=String(f.runtime?.issueKnowledgePath??"").trim()||`${y}/issues/${i}/`,N=String(f.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${X(i,"ticket")}`,S=(k={issue:{identifier:i,title:o,status:l,assignee:h},project:{name:j,slug:v,label:(b=f.project,r=String(b?.name??"").trim(),s=String(b?.slug??"").trim(),r&&s?`${r} (${s})`:r||s||"current project"),repos:f.project?.repos?[...f.project.repos]:[]},runtime:{knowledgeBaseRoot:y,issueKnowledgePath:w,isolatedWorktreePath:N}}).issue.identifier,C=k.issue.title,I=k.issue.status,A=k.issue.assignee,R=k.runtime.knowledgeBaseRoot,L=k.runtime.issueKnowledgePath,$=k.runtime.isolatedWorktreePath,E=`LINEAR TASK EXECUTION
2
+
3
+ You are an engineer working through a single Linear ticket. Work like a careful teammate: continue existing work when present, investigate before coding, present a plan before implementation, ask clarifying questions when requirements are ambiguous, and stop cleanly when blocked instead of guessing.
4
+
5
+ INJECTED CONTEXT
6
+ - Ticket: ${S}
7
+ - Title: ${C}
8
+ - Current status: ${I}
9
+ - Current assignee: ${A}
10
+ - Project: ${k.project.label}
11
+ - Knowledge base root: ${R}
12
+ - Issue knowledge path: ${L}
13
+ - Suggested isolated worktree: ${$}
14
+ - Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.
15
+
16
+ SOURCE REPOSITORIES
17
+ ${!(m=k.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")}
18
+
19
+ WORKFLOW
20
+ 1. Read the full Linear issue and comment thread before acting. Use Linear MCP for issue details, comments, state changes, and follow-up.
21
+ 2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.
22
+ 3. If requirements are unclear, ask specific clarifying questions in Linear and stop.
23
+ 4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.
24
+ 5. If a reviewed plan already exists or the ticket is explicitly ready for implementation, implement in an isolated worktree or equivalent isolated workspace rather than a shared checkout.
25
+ 6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.
26
+ 7. Keep Linear accurate: comments, links, statuses, blockers, and PR references should match reality.
27
+ 8. Keep the knowledge base current with what you learned, what changed, and what remains.
28
+ 9. Work on exactly this ticket during this session.
29
+
30
+ RULES
31
+ - Use the injected project context instead of hardcoded repo-specific paths or conventions.
32
+ - Use knowledge base terminology; the filesystem path above is the storage location.
33
+ - If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.
34
+ - Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them.
35
+
36
+ `,{prompt:`Work on this Linear ticket: ${S} - ${C}`,promptPrefix:E}),P=M+(d?`
37
+ ${d}`:""),T=await x({projectId:a??null,projectSlug:n??null,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee??null,agentId:u.id,agentName:u.name,mode:"chat"}),z=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:t,promptPrefix:P,threadId:T.threadId,activeParticipantIds:[u.id],projectSlug:n??void 0,routing:c})}),O=await z.json().catch(()=>({}));if(!z.ok||!O.chatRunId||!O.userMessageId)throw Error(O.error||"Failed to start chat session");await p(T.id,{chatRunId:O.chatRunId,rootMessageId:O.userMessageId}),g(T.id)}catch(e){console.error("Failed to create chat session:",e),E.current=!1,e instanceof Error&&window.alert(e.message)}},[e,s,h,a,n,x,p,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)(eh,{status:e.status,options:i,disabled:0===i.length,updating:o,onChange:t=>l(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:c,title:`Session script: ${d}. Choose or edit the kickoff prompt for this ticket.`,children:[(0,t.jsx)(m.FileText,{size:12}),(0,t.jsx)("span",{className:"max-w-[120px] truncate",children:"AGX default"===d?"Session script":d})]}),(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:u,children:[(0,t.jsx)(f.Play,{size:12}),(0,t.jsx)("span",{children:"Start scripted session"})]})]})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===v.length?(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{className:"text-sm",children:"Start a new session for this ticket"}),(0,t.jsx)("span",{className:"text-xs",children:"Type a message to open a chat, or launch the active session script."})]}):(0,t.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[v.map(e=>{let r=e.participantId?A.get(e.participantId):null,s=(0,O.stripMarkers)(e.content);return s.trim()?(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===e.role?(0,t.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,t.jsx)(j.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,t.jsx)("img",{src:el(e.participantId??"",r?.color),alt:r?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"user"===e.role?"You":r?.name??"Agent"}),(0,t.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,t.jsx)($.Markdown,{content:s,isUser:"user"===e.role})})]})]},e.id):null}),Object.entries(S).map(([e])=>{let r=A.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:el(e,r?.color),alt:r?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),r?.name??"Agent"," is thinking..."]},`stream-${e}`)})]})}),(0,t.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,t.jsx)(ei,{onSend:M,onStop:()=>{},participants:s,projectSlug:n??void 0,loading:"ready"!==I,commands:[],activityStatus:I,placeholder:`Ask about ${e.identifier}...`,initialPinnedParticipantId:h?.id})})]})}function ej({issue:e,run:s,participants:a,issueStatusOptions:n,issueStatusUpdating:i,onIssueStatusChange:o}){let{messages:l,setMessages:d,sendMessage:c,loadHistory:x,stop:m}=(0,R.useGroupChat)(s.threadId),{processes:p,streaming:f,chatRuns:g}=(0,L.useProcessPolling)(s.rootMessageId?{workspaceId:s.threadId,threadId:s.rootMessageId}:{workspaceId:s.threadId},{messages:l,setMessages:d}),h=(0,r.useMemo)(()=>{let e=g[0];if(!e)return ec(s);let t={queued:"queued",running:"running",awaiting_user:"running",blocked:"running",completed:"success",failed:"failed",cancelled:"cancelled"}[e.status]??s.status;return ec({...s,status:t})},[g,s]);(0,r.useEffect)(()=>{x()},[x,s.threadId]);let b=(0,r.useMemo)(()=>new Map(a.map(e=>[e.id,e])),[a]),v=new Set(["queued","running","awaiting_user","blocked"]),y=g.some(e=>v.has(e.status))||p.some(e=>"spawning"===e.state||"running"===e.state)?g.some(e=>"queued"===e.status)?"queued":"working":"ready",w=(0,r.useCallback)((e,t,r,n,i,o,l)=>{s.rootMessageId&&c(e,t,void 0,s.rootMessageId,r,void 0,(0,K.orderParticipantIds)(a.map(e=>e.id),i),s.projectSlug??void 0,o,l)},[a,s.projectSlug,s.rootMessageId,c]);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:eu(s)})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsx)(eh,{status:e.status,options:n,disabled:0===n.length,updating:i,onChange:t=>o(e,t)}),(0,t.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${em[h.tone]}`,children:[(0,t.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ep[h.tone]}`}),(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:h.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)(u.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:el(s.agentId,b.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===l.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:[l.map(e=>{let r=e.participantId?b.get(e.participantId):null,a=(0,O.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)(j.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,t.jsx)("img",{src:el(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)($.Markdown,{content:a,isUser:!0})}):(0,t.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,t.jsx)($.Markdown,{content:a,isUser:!1})})]})]},e.id)}),Object.entries(f).filter(([,e])=>!s.rootMessageId||e.rootMessageId===s.rootMessageId).map(([e])=>{let r=b.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:el(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)(ei,{onSend:w,onStop:m,participants:a,projectSlug:s.projectSlug??void 0,loading:"ready"!==y,commands:[],activityStatus:y,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 ey({issue:e,selected:s,onSelect:a,activeAgents:n,participants:i}){let[o,l]=(0,r.useState)(!1),c=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{c.current&&window.clearTimeout(c.current)},[]);let u=(0,r.useCallback)(async t=>{if(t.stopPropagation(),e.url)try{await navigator.clipboard.writeText(e.url),l(!0),c.current&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>{l(!1)},1500)}catch(e){console.error("Failed to copy Linear issue URL:",e),l(!1)}},[e.url]),m=(0,r.useCallback)(t=>{if(t.stopPropagation(),e.url){var r;let t;r=e.url,t=window.open(r,"_blank","noopener,noreferrer"),t?.focus()}},[e.url]),f=ex[e.status]??e.status.slice(0,6);return(0,t.jsxs)("div",{className:`group 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"}`,onClick:a,role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a())},children:[s&&(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,t.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${s?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:e.title}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:f}),n&&n.length>0&&(0,t.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:n.slice(0,3).map(e=>{let r=i?.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:el(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:[(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=>{u(e)},title:o?"Copied ticket URL":"Copy ticket URL","aria-label":o?"Copied ticket URL":"Copy ticket URL",disabled:!e.url,children:o?(0,t.jsx)(d.Check,{size:10,className:"text-emerald-400"}):(0,t.jsx)(p,{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:m,title:e.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL","aria-label":e.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL",disabled:!e.url,children:(0,t.jsx)(x.ExternalLink,{size:10})})]})]})}function ew({projectId:e,projectSlug:s,initialShowSettings:a}){let{isTouchLayout:n}=(0,U.useInputCapabilities)(),{connected:i,loading:d,user:c,clis:u,mcpConfigured:x,connect:m,connectWithKey:p,disconnect:f,configureMcp:j}=(0,N.useLinearConnection)(),[k,R]=(0,r.useState)(!1),[L,$]=(0,r.useState)(a??!1),[E,M]=(0,r.useState)(!1),[P,T]=(0,r.useState)(()=>(0,B.loadLinearTicketPanelWidth)()||576),[O,D]=(0,r.useState)(()=>(0,B.loadLinearRunsPanelWidth)()||224),[K,X]=(0,r.useState)(""),[G,J]=(0,r.useState)(""),[Y,V]=(0,r.useState)(!1),[Q,Z]=(0,r.useState)([]),[ee,et]=(0,r.useState)([]),[er,es]=(0,r.useState)([]),[ea,ei]=(0,r.useState)([]),[ex,em]=(0,r.useState)([]),[ep,eh]=(0,r.useState)([]),[eN,ek]=(0,r.useState)(""),[eS,eC]=(0,r.useState)(""),[eI,eA]=(0,r.useState)("activity"),[eR,eL]=(0,r.useState)("desc"),[e$,eE]=(0,r.useState)(!1),[eM,eP]=(0,r.useState)(null),[eT,ez]=(0,r.useState)(null),[eO,eU]=(0,r.useState)([]),[eD,eF]=(0,r.useState)(new Map),[e_,eW]=(0,r.useState)(null),[eq,eB]=(0,r.useState)(null),[eK,eX]=(0,r.useState)("runs"),eG=(0,r.useRef)(null),eJ=(0,r.useRef)(!0),eH=(0,r.useRef)(null),eY=(0,r.useRef)(null),{getSelection:eV,pushSelection:eQ,replaceSelection:eZ}=(0,w.useUrlSelection)(),e0=eV("issue"),e1=eV("run"),e5=(0,r.useCallback)(e=>{X(e),eG.current&&clearTimeout(eG.current),eG.current=setTimeout(()=>J(e),300)},[]);(0,r.useEffect)(()=>()=>{eG.current&&clearTimeout(eG.current)},[]),(0,r.useEffect)(()=>{let e=function(e){if(!_())return{...F};let t=window.localStorage.getItem(q(e));if(!t)return{...F};try{let e=JSON.parse(t);return{search:"string"==typeof e.search?e.search:F.search,assigneeIds:W(e.assigneeIds),statuses:W(e.statuses),teamId:"string"==typeof e.teamId?e.teamId:F.teamId,cycleId:"string"==typeof e.cycleId?e.cycleId:F.cycleId,sortBy:["activity","identifier","status","created"].includes(e.sortBy)?e.sortBy:F.sortBy,sortDir:["asc","desc"].includes(e.sortDir)?e.sortDir:F.sortDir,hasActivity:"boolean"==typeof e.hasActivity?e.hasActivity:F.hasActivity}}catch{return{...F}}}(s);eJ.current=!0,X(e.search),J(e.search),ei(e.assigneeIds),em(e.statuses),eC(e.teamId),ek(e.cycleId),eA(e.sortBy),eL(e.sortDir),eE(e.hasActivity)},[s]),(0,r.useEffect)(()=>{if(eJ.current){eJ.current=!1;return}var e=K,t=ea,r=ex,a=eS,n=eN,i=eI,o=eR,l=e$;if(_())try{window.localStorage.setItem(q(s),JSON.stringify({search:e,assigneeIds:W(t),statuses:W(r),teamId:String(a||""),cycleId:String(n||""),sortBy:i||"activity",sortDir:o||"desc",hasActivity:!!l}))}catch{}},[s,K,ea,ex,eS,eN,eI,eR,e$]),(0,r.useEffect)(()=>{if(!i)return;let e=!1;V(!1);let t=new URLSearchParams;s&&t.set("projectSlug",s);let r=t.toString();return fetch(r?`/api/linear/options?${r}`:"/api/linear/options").then(e=>e.json()).then(t=>{e||(Z(Array.isArray(t.assignees)?t.assignees:[]),et(Array.isArray(t.statuses)?t.statuses:[]),es(Array.isArray(t.teams)?t.teams:[]),eh(Array.isArray(t.cycles)?t.cycles:[]),V(!0))}).catch(()=>{e||(Z([]),et([]),es([]),eh([]),V(!0))}),()=>{e=!0}},[i,s]),(0,r.useEffect)(()=>{if(!Y)return;let e=ea.filter(e=>Q.some(t=>t.id===e));e.length!==ea.length&&ei(e)},[Q,Y,ea]),(0,r.useEffect)(()=>{if(!Y)return;let e=ex.filter(e=>ee.includes(e));e.length!==ex.length&&em(e)},[Y,ex,ee]),(0,r.useEffect)(()=>{if(Y){if(er.length<=1&&eS)return void eC("");eS&&!er.some(e=>e.id===eS)&&eC("")}},[Y,eS,er]),(0,r.useEffect)(()=>{Y&&eN&&!ep.some(e=>e.id===eN)&&ek("")},[ep,Y,eN]);let{issues:e2,loading:e3,hasMore:e4,loadMore:e6,refresh:e7,updateIssue:e8}=function(e,t=!0,s={}){let[a,n]=(0,r.useState)([]),[i,o]=(0,r.useState)(!0),[l,d]=(0,r.useState)(null),[c,u]=(0,r.useState)(!1),x=(0,r.useRef)(l),m=(0,r.useRef)(!1);x.current=l,(0,r.useEffect)(()=>{m.current=!1},[s.projectSlug]);let p=(0,r.useCallback)(async(r,a=!1)=>{if(t){o(!0);try{let t=new URLSearchParams;if(e.teamId&&t.set("teamId",e.teamId),e.statuses?.length)for(let r of e.statuses)t.append("status",r);if(e.search&&t.set("search",e.search),e.assigneeIds?.length)for(let r of e.assigneeIds)t.append("assigneeId",r);else e.assignedToMe&&t.set("assignedToMe","true");e.cycleId&&t.set("cycleId",e.cycleId),e.sortBy&&t.set("sortBy",e.sortBy),e.sortDir&&t.set("sortDir",e.sortDir),e.hasActivity&&t.set("hasActivity","true"),r&&x.current&&t.set("cursor",x.current),s.projectSlug&&t.set("projectSlug",s.projectSlug),s.limit&&t.set("limit",String(s.limit)),a&&t.set("refresh","true");let i=await fetch(`/api/linear/issues?${t.toString()}`),o=await i.json(),l=o.issues??[];n(e=>r?[...e,...l]:l),d(o.pageInfo?.endCursor??null),u(o.pageInfo?.hasNextPage??!1),m.current=!0}catch{r||n([])}finally{o(!1)}}},[e.teamId,e.statuses,e.search,e.assigneeIds,e.assignedToMe,e.cycleId,e.sortBy,e.sortDir,e.hasActivity,t,s.projectSlug,s.limit]);(0,r.useEffect)(()=>{d(null),p(!1,!m.current)},[p]);let f=(0,r.useCallback)(()=>p(!0),[p]);return{issues:a,loading:i,hasMore:c,loadMore:f,refresh:(0,r.useCallback)(()=>(d(null),p(!1,!0)),[p]),updateIssue:(0,r.useCallback)(e=>{n(t=>t.map(t=>t.id===e.id?e:t))},[])}}((0,r.useMemo)(()=>({search:G||void 0,statuses:ex.length>0&&ex.length<ee.length?ex:void 0,assigneeIds:ea.length>0?ea:void 0,teamId:eS||void 0,cycleId:eN||void 0,sortBy:eI,sortDir:eR,hasActivity:e$||void 0}),[G,ea,eN,ex,eS,ee.length,eI,eR,e$]),i,{projectSlug:s}),e9=(0,r.useMemo)(()=>e0?e2.find(e=>e.id===e0)??null:null,[e2,e0]),te=e9??(eM?.id===e0?eM:null),{runs:tt,loading:tr,createRun:ts,updateRun:ta}=function(e,t){let[s,a]=(0,r.useState)([]),[n,i]=(0,r.useState)(!1),o=(0,r.useRef)(e??null);o.current=e??null;let l=(0,r.useCallback)(async()=>{let e=o.current?.trim();if(!e)return a([]),[];i(!0);try{let r=new URLSearchParams({issueId:e});t&&r.set("projectId",t);let s=await fetch(`/api/linear/runs?${r.toString()}`);if(!s.ok)throw Error(`Failed to fetch Linear runs: ${s.status}`);let n=await s.json(),i=Array.isArray(n.runs)?n.runs:[];return a(i),i}finally{i(!1)}},[t]);return(0,r.useEffect)(()=>{a([]),l()},[l,e]),(0,r.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>{l()},3e3);return()=>window.clearInterval(t)},[e,l]),{runs:s,loading:n,refresh:l,createRun:(0,r.useCallback)(async e=>{let t=await fetch("/api/linear/runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||`Failed to create Linear run: ${t.status}`);let r=(await t.json()).run;return a(e=>[r,...e.filter(e=>e.id!==r.id)]),r},[]),updateRun:(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/linear/runs/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error||`Failed to update Linear run: ${r.status}`);let s=(await r.json()).run;return a(e=>e.map(e=>e.id===s.id?s:e)),s},[])}}(te?.id,e??null),{scripts:tn,activeScriptId:ti,activeScript:to,setActiveScriptId:tl,saveScript:td,deleteScript:tc}=function(e){let[t,s]=(0,r.useState)([]),[a,n]=(0,r.useState)(null);(0,r.useEffect)(()=>{let t=function(e){if(!C())return{...S};let t=window.localStorage.getItem(A(e));if(!t)return{...S};try{return I(JSON.parse(t))}catch{return{...S}}}(e);s(t.scripts),n(t.activeScriptId)},[e]);let i=(0,r.useCallback)((t,r)=>{s(t),n(r);if(C())try{let s=I({scripts:t,activeScriptId:r});window.localStorage.setItem(A(e),JSON.stringify(s))}catch{}},[e]),o=(0,r.useCallback)(e=>{let r=e&&t.some(t=>t.id===e)?e:null;i(t,r)},[i,t]),l=(0,r.useCallback)(e=>{let r=new Date().toISOString(),s=e.name.trim(),a=e.prompt.trim();if(!s||!a)throw Error("Run script name and prompt are required.");let n=e.id?t.find(t=>t.id===e.id):null,o=n?{...n,name:s,prompt:a,updatedAt:r}:{id:crypto.randomUUID(),name:s,prompt:a,createdAt:r,updatedAt:r};return i([...n?t.map(e=>e.id===n.id?o:e):[o,...t]].sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),o.id),o},[i,t]),d=(0,r.useCallback)(e=>{i(t.filter(t=>t.id!==e),a===e?null:a)},[a,i,t]),c=(0,r.useMemo)(()=>t.find(e=>e.id===a)??null,[a,t]);return{scripts:t,activeScriptId:a,activeScript:c,setActiveScriptId:o,saveScript:l,deleteScript:d}}(s),tu=e1&&"new"!==e1?tt.find(e=>e.id===e1)??null:null,tx=(0,r.useMemo)(()=>Q.map(e=>({value:e.id,label:e.name})),[Q]),tm=(0,r.useMemo)(()=>ee.map(e=>({value:e,label:e})),[ee]),tp=(0,r.useMemo)(()=>Array.from(new Set([te?.status??"",...ee].map(e=>e.trim()).filter(Boolean))).map(e=>({value:e,label:e})),[te?.status,ee]),tf=(0,r.useMemo)(()=>[{value:"",label:"Workspace"},...er.map(e=>({value:e.id,label:e.name}))],[er]),tg=(0,r.useMemo)(()=>[{value:"",label:"Cycle"},...ep.map(e=>({value:e.id,label:e.name||`Cycle ${e.number}`}))],[ep]),th=tm.length>0,tb=tg.length>1,tv=tf.length>2,tj=to?.name??"AGX default",ty=(0,r.useCallback)(async(e,t)=>{let r=t.trim();if(r&&r!==e.status){ez(e.id);try{let t=await fetch(`/api/linear/issues/${encodeURIComponent(e.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:r})}),s=await t.json().catch(()=>({}));if(!t.ok||!s.issue)throw Error(s.error||"Failed to update ticket status");let a=s.issue;e8(a),e0===a.id&&eP(a),await e7()}catch(e){e instanceof Error&&window.alert(e.message)}finally{ez(t=>t===e.id?null:t)}}},[e7,e0,e8]);(0,r.useEffect)(()=>{if(!e0)return void eP(null);if(e9)return void eP(e=>e?.id===e0?e9:null);let e=!1;return(async()=>{try{let t=await fetch(`/api/linear/issues/${encodeURIComponent(e0)}`);if(e)return;if(404===t.status)return void eZ({issue:null,run:null});if(!t.ok)throw Error(`Failed to fetch selected Linear ticket: ${t.status}`);let r=await t.json().catch(()=>({}));if(!r.issue?.id)return void eZ({issue:null,run:null});eP(r.issue)}catch(t){e||console.error("Failed to hydrate selected Linear issue",t)}})(),()=>{e=!0}},[eZ,e9,e0]),(0,r.useEffect)(()=>{if(!e0){e1&&eZ({run:null});return}},[eZ,e0,e1]),(0,r.useEffect)(()=>{te&&e1&&"new"!==e1&&!tr&&(tt.some(e=>e.id===e1)||eZ({run:null}))},[eZ,tt,tr,te,e1]),(0,r.useEffect)(()=>{if(n){if(!te)return void eX("runs");if("new"===e1||tu||0===tt.length)return void eX("ticket");eX("runs")}},[n,tt.length,te,tu,e1]),(0,r.useEffect)(()=>{let t=!1;return async function(){try{let r=await fetch("/api/participants"),s=r.ok?await r.json():[];if(!e){t||eU(s);return}let a=new URLSearchParams;a.set("projectId",e);let n=await fetch(`/api/linear/worker?${a}`).catch(()=>null),i=n?.ok?await n.json().catch(()=>null):null,o=i?.job?.teamId||void 0;if(o){let r=await fetch(`/api/projects/${encodeURIComponent(e)}/teams/${encodeURIComponent(o)}/agents`);if(r.ok){let e=await r.json(),a=Array.isArray(e.agents)?e.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(a.length>0){let e=new Map(a.map((e,t)=>[e,t])),r=s.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(!t&&r.length>0)return void eU(r)}}}let l=await fetch(`/api/projects/${encodeURIComponent(e)}/agents`);if(!l.ok){t||eU(s);return}let d=await l.json(),c=Array.isArray(d.agents)?d.agents.map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[],u=new Map(c.map((e,t)=>[e,t])),x=s.filter(e=>u.has(e.id)).sort((e,t)=>(u.get(e.id)??Number.MAX_SAFE_INTEGER)-(u.get(t.id)??Number.MAX_SAFE_INTEGER));t||eU(x)}catch{t||eU([])}}(),()=>{t=!0}},[e]),(0,r.useEffect)(()=>{let t=!1;async function r(){try{let r=new URLSearchParams;e&&r.set("projectId",e);let s=await fetch(`/api/linear/issues/active-agents?${r}`);if(!s.ok||t)return;let a=await s.json(),n=new Map;for(let e of a.agents??[]){let t=n.get(e.issueId)??[];t.push({agentId:e.agentId,agentName:e.agentName}),n.set(e.issueId,t)}t||eF(n)}catch{}}r();let s=setInterval(()=>void r(),5e3);return()=>{t=!0,clearInterval(s)}},[e]),(0,r.useEffect)(()=>{if(!E)return;let e=e=>{let t=e.target;eY.current?.contains(t)||eH.current?.contains(t)||M(!1)},t=e=>{"Escape"===e.key&&M(!1)};return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)}},[E]);let tw=(0,r.useCallback)(async(t,r)=>{eW(null),eB(null);try{let a=await fetch("/api/linear/runs/scripted",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e??void 0,projectSlug:s??void 0,issueId:t.id,issueIdentifier:t.identifier,issueTitle:t.title,issueStatus:t.status,issueAssignee:t.assignee,agentId:r.id,scriptName:to?.name,scriptPrompt:to?.prompt})}),n=await a.json().catch(()=>({}));if(!a.ok||!n.run||!n.chatRunId||!n.userMessageId)throw Error(n.error||"Failed to start scripted session");eQ({issue:t.id,run:n.run.id})}catch(e){console.error("Failed to start scripted Linear session:",e),e instanceof Error&&window.alert(e.message)}},[to,e,s,eQ]),tN=(0,r.useCallback)((e,t)=>{if(M(!1),0===eO.length)return void window.alert("Add at least one agent to this project before starting a scripted session.");if(1===eO.length)return void tw(e,eO[0]);let r=t?.currentTarget?.getBoundingClientRect();eW(e),eB(r?{top:r.bottom+4,left:r.left}:{top:200,left:200})},[tw,eO]),tk=(0,r.useRef)(null);if((0,r.useEffect)(()=>{let e=tk.current;if(!e||!e4)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&e6()},{threshold:.1});return t.observe(e),()=>t.disconnect()},[e4,e6]),d)return(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let tS=i&&!k&&!Object.values(x).some(Boolean);return!i||tS?(0,t.jsx)(H,{connected:i,user:c,clis:u,mcpConfigured:x,onConnect:m,onConnectWithKey:p,onDisconnect:f,onConfigureMcp:j,onContinue:()=>R(!0)}):(0,t.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[n?(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)(b.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:K,onChange:e=>e5(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 e7(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:e3,children:(0,t.jsx)(h.RefreshCw,{size:16,className:e3?"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:()=>{M(!1),$(!0)},title:"Linear settings",children:(0,t.jsx)(v.Settings,{size:16})})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 pb-2",children:[th?(0,t.jsx)(eb,{label:"Status",values:ex,options:tm,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:em,emptyLabel:"All statuses"}):null,(0,t.jsx)(eb,{label:"Assignee",values:ea,options:tx,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ei,emptyLabel:"All assignees"}),tv?(0,t.jsx)(eg,{label:"Workspace",value:eS,options:tf,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:eC}):null,tb?(0,t.jsx)(eg,{label:"Cycle",value:eN,options:tg,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ek}):null,(0,t.jsx)(eg,{label:"Sort",value:eI,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=>eA(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"===eR?"Descending":"Ascending",onClick:()=>eL(e=>"desc"===e?"asc":"desc"),children:"desc"===eR?(0,t.jsx)(o,{size:12}):(0,t.jsx)(l,{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 ${e$?"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:()=>eE(e=>!e),children:"My activity"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:e3&&0===e2.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===e2.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:[e2.map(e=>(0,t.jsx)(ey,{issue:e,selected:te?.id===e.id,activeAgents:eD.get(e.id),participants:eO,onSelect:()=>{eX("runs"),eQ({issue:e.id,run:null})}},e.id)),e4?(0,t.jsx)("div",{ref:tk,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:e3?"Loading...":"Load more"}):null]})})]}),te?(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:te.identifier}),(0,t.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:te.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:()=>eZ({issue:null,run:null}),"aria-label":"Close ticket panel",children:(0,t.jsx)(y.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"===eK?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>eX("runs"),children:"Runs"}),(0,t.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"ticket"===eK?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>eX("ticket"),children:"Ticket"})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:"runs"===eK?(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:eH,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:()=>{M(!1),eX("ticket"),eQ({run:"new"})},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:!te,children:[(0,t.jsx)(g.Plus,{size:12}),"New session"]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:tr&&0===tt.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===tt.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):tt.map(e=>{let r=ec(e);return(0,t.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${tu?.id===e.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>{eX("ticket"),eQ({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:eu(e)}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:ed(e.startedAt)})]}),(0,t.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,t.jsx)("span",{className:`font-medium ${ef[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)})})]}):tu?(0,t.jsx)(ej,{issue:te??{id:tu.issueId,identifier:tu.issueIdentifier,title:tu.issueTitle,url:null,status:tu.issueStatus,assignee:tu.issueAssignee,updatedAt:tu.updatedAt},run:tu,participants:eO,issueStatusOptions:tp,issueStatusUpdating:eT===tu.issueId,onIssueStatusChange:ty}):0===eO.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."}):"new"===e1||0===tt.length?(0,t.jsx)(ev,{issue:te,participants:eO,projectId:e,projectSlug:s,issueStatusOptions:tp,issueStatusUpdating:eT===te.id,onIssueStatusChange:ty,activeSessionScriptLabel:tj,onOpenSessionScripts:()=>M(!0),onStartScriptedSession:e=>tN(te,e),createRun:ts,updateRun:ta,onRunCreated:e=>eQ({run:e})},te.id):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:tr?"Loading sessions...":"Select a session to continue."})})]}):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:P},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)(b.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:K,onChange:e=>e5(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 e7(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:e3,children:(0,t.jsx)(h.RefreshCw,{size:16,className:e3?"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:()=>{M(!1),$(!0)},title:"Linear settings",children:(0,t.jsx)(v.Settings,{size:16})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[th?(0,t.jsx)(eb,{label:"Status",values:ex,options:tm,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:em,emptyLabel:"All statuses"}):null,(0,t.jsx)(eb,{label:"Assignee",values:ea,options:tx,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ei,emptyLabel:"All assignees"}),tv?(0,t.jsx)(eg,{label:"Workspace",value:eS,options:tf,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:eC}):null,tb?(0,t.jsx)(eg,{label:"Cycle",value:eN,options:tg,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ek}):null,(0,t.jsx)(eg,{label:"Sort",value:eI,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=>eA(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"===eR?"Descending":"Ascending",onClick:()=>eL(e=>"desc"===e?"asc":"desc"),children:"desc"===eR?(0,t.jsx)(o,{size:12}):(0,t.jsx)(l,{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 ${e$?"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:()=>eE(e=>!e),children:"My activity"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:e3&&0===e2.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===e2.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:[e2.map(e=>(0,t.jsx)(ey,{issue:e,selected:te?.id===e.id,activeAgents:eD.get(e.id),participants:eO,onSelect:()=>eQ({issue:e.id,run:null})},e.id)),e4?(0,t.jsx)("div",{ref:tk,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:e3?"Loading...":"Load more"}):null]})})]}),(0,t.jsx)(eo,{onResize:e=>T(t=>{let r=Math.max(180,Math.min(600,t+e));return(0,B.persistLinearTicketPanelWidth)(r),r})}),(0,t.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:O},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:eH,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:()=>{M(!1),eQ({run:"new"})},title:"Open a fresh chat for this ticket. You can choose or edit the session script in the session details pane.","aria-label":"New session",disabled:!te,children:[(0,t.jsx)(g.Plus,{size:12}),"New session"]}),E?(0,t.jsx)("div",{ref:eY,className:"absolute right-3 top-full z-20 mt-2 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)(z,{projectSlug:s,scripts:tn,activeScriptId:ti,onSetActiveScriptId:tl,onSaveScript:td,onDeleteScript:tc})}):null]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:te?(0,t.jsx)(t.Fragment,{children:tr&&0===tt.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===tt.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):tt.map(e=>{let r=ec(e);return(0,t.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${tu?.id===e.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>eQ({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:eu(e)}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:ed(e.startedAt)})]}),(0,t.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,t.jsx)("span",{className:`font-medium ${ef[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)})}):(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Select a ticket to see sessions."})})]}),(0,t.jsx)(eo,{onResize:e=>D(t=>{let r=Math.max(140,Math.min(500,t+e));return(0,B.persistLinearRunsPanelWidth)(r),r})}),(0,t.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:tu?(0,t.jsx)(ej,{issue:te??{id:tu.issueId,identifier:tu.issueIdentifier,title:tu.issueTitle,url:null,status:tu.issueStatus,assignee:tu.issueAssignee,updatedAt:tu.updatedAt},run:tu,participants:eO,issueStatusOptions:tp,issueStatusUpdating:eT===tu.issueId,onIssueStatusChange:ty}):te?0===eO.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."}):"new"===e1||0===tt.length?(0,t.jsx)(ev,{issue:te,participants:eO,projectId:e,projectSlug:s,issueStatusOptions:tp,issueStatusUpdating:eT===te.id,onIssueStatusChange:ty,activeSessionScriptLabel:tj,onOpenSessionScripts:()=>M(!0),onStartScriptedSession:e=>tN(te,e),createRun:ts,updateRun:ta,onRunCreated:e=>eQ({run:e})},te.id):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:tr?"Loading sessions...":"Select a session to continue."}):(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."})})]}),L&&(0,t.jsx)(en,{connected:i,user:c,clis:u,mcpConfigured:x,onConnect:m,onConnectWithKey:p,onDisconnect:f,onConfigureMcp:j,onClose:()=>$(!1),projectId:e}),E&&n?(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:eY,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)(z,{projectSlug:s,scripts:tn,activeScriptId:ti,onSetActiveScriptId:tl,onSaveScript:td,onDeleteScript:tc})})}):null,e_&&eq&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{eW(null),eB(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:eq.top,left:eq.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"}),eO.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 tw(e_,e),children:[(0,t.jsx)("img",{src:el(e.id,e.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,t.jsxs)("span",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),e.title?(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.title}):null]})]},e.id))]})]})]})}e.s(["default",0,function({params:e}){let{slug:n}=(0,r.use)(e),i=(0,s.useSearchParams)(),{projects:o}=(0,a.useProjects)(),l=o.find(e=>e.slug===n),d="true"===i.get("settings");return(0,t.jsx)(ew,{projectId:l?.id,projectSlug:l?.slug??n,initialShowSettings:d})}],628822)}]);
@@ -1,4 +1,4 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,363732,e=>{"use strict";var t=e.i(271645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),n=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 a={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 s=(0,t.forwardRef)(({color:e="currentColor",size:n=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:i="",children:l,iconNode:d,...u},c)=>(0,t.createElement)("svg",{ref:c,...a,width:n,height:n,stroke:e,strokeWidth:o?24*Number(s)/Number(n):s,className:r("lucide",i),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...d.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(l)?l:[l]]));e.s(["default",0,(e,a)=>{let o=(0,t.forwardRef)(({className:o,...i},l)=>(0,t.createElement)(s,{ref:l,iconNode:a,className:r(`lucide-${n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...i}));return o.displayName=n(e),o}],363732)},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",0,t],8707)},44054,e=>{"use strict";var t=e.i(271645);let r="(pointer: coarse)",n="(hover: hover)",a="(max-width: 767px)",s="(min-width: 768px)";function o(){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(n).matches,o=window.matchMedia(a).matches,i=!o&&window.matchMedia(s).matches,l=e||!t;return{isCoarsePointer:e,canHover:t,isPhone:l&&o,isTablet:l&&i,isTouchLayout:l}}e.s(["useInputCapabilities",0,function(){let[e,i]=(0,t.useState)(o);return(0,t.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let e=[window.matchMedia(r),window.matchMedia(n),window.matchMedia(a),window.matchMedia(s)],t=()=>{i(o())};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}])},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(190809)._(e.r(998183)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o.test(n))&&!1!==d?(d="//"+(d||""),a&&"/"!==a[0]&&(a="/"+a)):d||(d=""),i&&"#"!==i[0]&&(i="#"+i),u&&"?"!==u[0]&&(u="?"+u),a=a.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${d}${a}${u}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return i(e)}},818581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(271645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=s(e,n)),t&&(a.current=s(t,n))},[e,t])}function s(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)},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let n=e.r(718967),a=e.r(652817);function s(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return x},useLinkStatus:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(190809),o=e.r(843476),i=s._(e.r(271645)),l=e.r(195057),d=e.r(8372),u=e.r(818581),c=e.r(718967),f=e.r(405550);e.r(233525);let p=e.r(388540),h=e.r(91949),m=e.r(573668),g=e.r(509396);function x(t){var r,n;let a,s,x,[v,y]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),w=(0,i.useRef)(null),{href:k,as:j,children:N,prefetch:S=null,passHref:C,replace:E,shallow:_,scroll:T,onClick:L,onMouseEnter:M,onTouchStart:O,legacyBehavior:A=!1,onNavigate:P,transitionTypes:I,ref:R,unstable_dynamicOnHover:$,...U}=t;a=N,A&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let D=i.default.useContext(d.AppRouterContext),B=!1!==S,F=!1!==S?null===(n=S)||"auto"===n?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,G="string"==typeof(r=j||k)?r:(0,l.formatUrl)(r);if(A){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=i.default.Children.only(a)}let K=A?s&&"object"==typeof s&&s.ref:R,W=i.default.useCallback(e=>(null!==D&&(w.current=(0,h.mountLinkInstance)(e,G,D,F,B,y)),()=>{w.current&&((0,h.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,h.unmountPrefetchableInstance)(e)}),[B,G,D,F,y]),z={ref:(0,u.useMergedRef)(W,K),onClick(t){A||"function"!=typeof L||L(t),A&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!D||t.defaultPrevented||function(t,r,n,a,s,o,l){if("u">typeof window){let d,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:c}=e.r(699781);i.default.startTransition(()=>{c(r,a?"replace":"push",!1===s?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,l)})}}(t,G,w,E,T,P,I)},onMouseEnter(e){A||"function"!=typeof M||M(e),A&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),D&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===$)},onTouchStart:function(e){A||"function"!=typeof O||O(e),A&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),D&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===$)}};return(0,c.isAbsoluteUrl)(G)?z.href=G:A&&!C&&("a"!==s.type||"href"in s.props)||(z.href=(0,f.addBasePath)(G)),x=A?i.default.cloneElement(s,z):(0,o.jsx)("a",{...U,...z,children:a}),(0,o.jsx)(b.Provider,{value:v,children:x})}e.r(284508);let b=(0,i.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,i.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},810605,e=>{"use strict";e.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_TASK_DURATION_MS",0,6e4])},186710,e=>{"use strict";var t=e.i(843476),r=e.i(522016),n=e.i(271645),a=e.i(810605);function s(){let[e,r]=(0,n.useState)(null),[s,o]=(0,n.useState)("loading");(0,n.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch("/api/health");if(!e)return;if(!t.ok)return void o("error");let n=await t.json();r(n),o(n.connected?"connected":"disconnected")}catch{e&&o("error")}}t();let n=setInterval(t,a.UI_POLL_DB_HEALTH_MS);return()=>{e=!1,clearInterval(n)}},[]);let i={loading:"Checking databaseโ€ฆ",connected:`${e?.adapter??"db"} connected (${e?.latencyMs??"?"}ms)`,disconnected:`${e?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":i[s],children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[s]}`}),(0,t.jsx)("span",{className:"hidden sm:inline",children:i[s]})]})}function o({children:e,fullWidth:n=!1,noFooter:a=!1}){return(0,t.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,t.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,t.jsx)("div",{className:"flex items-center gap-8",children:(0,t.jsx)(r.default,{href:"/",className:"flex items-center gap-3 group",children:(0,t.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,t.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,t.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,t.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,t.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,t.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,t.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(r.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Open Chat"}),(0,t.jsx)(r.default,{href:"/automations",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Automations"}),(0,t.jsx)(r.default,{href:"/skills",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Skills"}),(0,t.jsx)(r.default,{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})]})]})})}),(0,t.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${n?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:e}),!a&&(0,t.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"AGX Board โ€ข Autonomous Agent Orchestration"}),(0,t.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,t.jsx)(s,{}),(0,t.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}e.s(["default",0,function(e){return(0,t.jsx)(n.Suspense,{fallback:(0,t.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,t.jsx)(o,{...e})})}],186710)},353662,e=>{"use strict";var t=e.i(810605);t.NODE_TIMEOUT_DEFAULT_MS,t.GRAPH_TIMEOUT_DEFAULT_MS;let r=new Set(["done","passed"]),n=new Set(["pending","running","awaiting_human","blocked"]);function a(e,t){return"root"===t.type?t.title?.trim()||"Task Objective":"work"===t.type||"function"===t.type?t.title?.trim()||e:"gate"===t.type?t.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,e=>e.toUpperCase()):"fork"===t.type?"Fork":"join"===t.type?`Join (${t.joinStrategy})`:"Conditional"}function s(e){for(let[t,r]of Object.entries(e.nodes))if("root"===r.type)return{id:t,node:r};return null}e.s(["buildGraphSummary",0,function(e){let t,o=s(e);return{mode:e.mode,graphVersion:e.graphVersion,nodeCount:Object.keys(e.nodes).length,progress:0===(t=Object.values(e.nodes).filter(e=>"skipped"!==e.status)).length?100:Math.round(t.filter(e=>r.has(e.status)).length/t.length*100),currentBlocker:function(e){let t=function(e){let t=Object.entries(e.nodes),r=t.filter(([,e])=>"gate"===e.type&&e.required),n=r.find(([,e])=>"failed"===e.status);if(n)return n[0];let a=r.find(([,e])=>"awaiting_human"===e.status);if(a)return a[0];let s=r.find(([,e])=>"pending"===e.status||"running"===e.status);if(s)return s[0];let o=t.find(([,e])=>"work"===e.type&&"blocked"===e.status);return o?.[0]??null}(e);if(!t)return null;let r=e.nodes[t];return r?{nodeId:t,label:a(t,r),status:r.status,required:"gate"===r.type&&r.required}:null}(e),derivedStatus:function(e){let t=Object.keys(e.nodes).length;if(0===t)return"INTAKE";if(1===t){let t=Object.values(e.nodes)[0];if("root"===t.type&&!t.graphCreated)return"INTAKE"}return Object.values(e.nodes).some(e=>n.has(e.status))?"PROGRESS":"DONE"}(e),hasRootNode:null!==o,rootNodeId:o?.id??null}},"findRootNode",0,s,"formatNodeStatusLabel",0,function(e){return e.replace(/_/gu," ")},"getNodeLabel",0,a,"toNodeStatusClass",0,function(e){return`node--${e}`}],353662)},865260,745649,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(174080);let a=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"โ—‹"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"โ—‘"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"โŠ˜"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"โ—"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"โœ•"}];function s({status:e,onStatusChange:o}){let[i,l]=(0,r.useState)(!1),[d,u]=(0,r.useState)(null),c=(0,r.useRef)(null),f=(0,r.useRef)(null),p=(0,r.useCallback)(()=>{if(!c.current)return;let e=c.current.getBoundingClientRect();u({top:e.bottom+4,left:e.left})},[]);(0,r.useEffect)(()=>{if(!i)return;p();let e=e=>{c.current&&!c.current.contains(e.target)&&f.current&&!f.current.contains(e.target)&&l(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[i,p]),(0,r.useEffect)(()=>{l(!1)},[e]);let h=a.find(t=>t.value===e)||a[0],m="completed"===e,g="in_progress"===e;return(0,t.jsxs)("div",{className:"relative flex-shrink-0",ref:c,children:[(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),o&&l(!i)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,363732,e=>{"use strict";var t=e.i(271645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),n=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 a={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 s=(0,t.forwardRef)(({color:e="currentColor",size:n=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:i="",children:l,iconNode:d,...u},c)=>(0,t.createElement)("svg",{ref:c,...a,width:n,height:n,stroke:e,strokeWidth:o?24*Number(s)/Number(n):s,className:r("lucide",i),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...d.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(l)?l:[l]]));e.s(["default",0,(e,a)=>{let o=(0,t.forwardRef)(({className:o,...i},l)=>(0,t.createElement)(s,{ref:l,iconNode:a,className:r(`lucide-${n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...i}));return o.displayName=n(e),o}],363732)},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",0,t],8707)},44054,e=>{"use strict";var t=e.i(271645);let r="(pointer: coarse)",n="(hover: hover)",a="(max-width: 767px)",s="(min-width: 768px)";function o(){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(n).matches,o=window.matchMedia(a).matches,i=!o&&window.matchMedia(s).matches,l=e||!t;return{isCoarsePointer:e,canHover:t,isPhone:l&&o,isTablet:l&&i,isTouchLayout:l}}e.s(["useInputCapabilities",0,function(){let[e,i]=(0,t.useState)(o);return(0,t.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let e=[window.matchMedia(r),window.matchMedia(n),window.matchMedia(a),window.matchMedia(s)],t=()=>{i(o())};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}])},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(190809)._(e.r(998183)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",l=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let u=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o.test(n))&&!1!==d?(d="//"+(d||""),a&&"/"!==a[0]&&(a="/"+a)):d||(d=""),i&&"#"!==i[0]&&(i="#"+i),u&&"?"!==u[0]&&(u="?"+u),a=a.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${d}${a}${u}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return i(e)}},818581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(271645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=s(e,n)),t&&(a.current=s(t,n))},[e,t])}function s(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)},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let n=e.r(718967),a=e.r(652817);function s(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return x},useLinkStatus:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let s=e.r(190809),o=e.r(843476),i=s._(e.r(271645)),l=e.r(195057),d=e.r(8372),u=e.r(818581),c=e.r(718967),f=e.r(405550);e.r(233525);let p=e.r(388540),h=e.r(91949),m=e.r(573668),g=e.r(509396);function x(t){var r,n;let a,s,x,[v,y]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),w=(0,i.useRef)(null),{href:k,as:j,children:N,prefetch:S=null,passHref:C,replace:E,shallow:_,scroll:T,onClick:L,onMouseEnter:M,onTouchStart:O,legacyBehavior:A=!1,onNavigate:P,transitionTypes:R,ref:I,unstable_dynamicOnHover:$,...U}=t;a=N,A&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let D=i.default.useContext(d.AppRouterContext),B=!1!==S,F=!1!==S?null===(n=S)||"auto"===n?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,G="string"==typeof(r=j||k)?r:(0,l.formatUrl)(r);if(A){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=i.default.Children.only(a)}let K=A?s&&"object"==typeof s&&s.ref:I,W=i.default.useCallback(e=>(null!==D&&(w.current=(0,h.mountLinkInstance)(e,G,D,F,B,y)),()=>{w.current&&((0,h.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,h.unmountPrefetchableInstance)(e)}),[B,G,D,F,y]),z={ref:(0,u.useMergedRef)(W,K),onClick(t){A||"function"!=typeof L||L(t),A&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!D||t.defaultPrevented||function(t,r,n,a,s,o,l){if("u">typeof window){let d,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:c}=e.r(699781);i.default.startTransition(()=>{c(r,a?"replace":"push",!1===s?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,l)})}}(t,G,w,E,T,P,R)},onMouseEnter(e){A||"function"!=typeof M||M(e),A&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),D&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===$)},onTouchStart:function(e){A||"function"!=typeof O||O(e),A&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),D&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===$)}};return(0,c.isAbsoluteUrl)(G)?z.href=G:A&&!C&&("a"!==s.type||"href"in s.props)||(z.href=(0,f.addBasePath)(G)),x=A?i.default.cloneElement(s,z):(0,o.jsx)("a",{...U,...z,children:a}),(0,o.jsx)(b.Provider,{value:v,children:x})}e.r(284508);let b=(0,i.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,i.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},810605,e=>{"use strict";e.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_TASK_DURATION_MS",0,6e4])},186710,e=>{"use strict";var t=e.i(843476),r=e.i(522016),n=e.i(271645),a=e.i(810605);function s(){let[e,r]=(0,n.useState)(null),[s,o]=(0,n.useState)("loading");(0,n.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch("/api/health");if(!e)return;if(!t.ok)return void o("error");let n=await t.json();r(n),o(n.connected?"connected":"disconnected")}catch{e&&o("error")}}t();let n=setInterval(t,a.UI_POLL_DB_HEALTH_MS);return()=>{e=!1,clearInterval(n)}},[]);let i={loading:"Checking databaseโ€ฆ",connected:`${e?.adapter??"db"} connected (${e?.latencyMs??"?"}ms)`,disconnected:`${e?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":i[s],children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[s]}`}),(0,t.jsx)("span",{className:"hidden sm:inline",children:i[s]})]})}function o({children:e,fullWidth:n=!1,noFooter:a=!1}){return(0,t.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,t.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,t.jsx)("div",{className:"flex items-center gap-8",children:(0,t.jsx)(r.default,{href:"/",className:"flex items-center gap-3 group",children:(0,t.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,t.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,t.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,t.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,t.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,t.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,t.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(r.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Open Chat"}),(0,t.jsx)(r.default,{href:"/automations",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Automations"}),(0,t.jsx)(r.default,{href:"/skills",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Skills"}),(0,t.jsx)(r.default,{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})]})]})})}),(0,t.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${n?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:e}),!a&&(0,t.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"AGX Board โ€ข Autonomous Agent Orchestration"}),(0,t.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,t.jsx)(s,{}),(0,t.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}e.s(["default",0,function(e){return(0,t.jsx)(n.Suspense,{fallback:(0,t.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,t.jsx)(o,{...e})})}],186710)},353662,e=>{"use strict";var t=e.i(810605);t.NODE_TIMEOUT_DEFAULT_MS,t.GRAPH_TIMEOUT_DEFAULT_MS;let r=new Set(["done","passed"]),n=new Set(["pending","running","awaiting_human","blocked"]);function a(e,t){return"root"===t.type?t.title?.trim()||"Task Objective":"work"===t.type||"function"===t.type?t.title?.trim()||e:"gate"===t.type?t.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,e=>e.toUpperCase()):"fork"===t.type?"Fork":"join"===t.type?`Join (${t.joinStrategy})`:"Conditional"}function s(e){for(let[t,r]of Object.entries(e.nodes))if("root"===r.type)return{id:t,node:r};return null}e.s(["buildGraphSummary",0,function(e){let t,o=s(e);return{mode:e.mode,graphVersion:e.graphVersion,nodeCount:Object.keys(e.nodes).length,progress:0===(t=Object.values(e.nodes).filter(e=>"skipped"!==e.status)).length?100:Math.round(t.filter(e=>r.has(e.status)).length/t.length*100),currentBlocker:function(e){let t=function(e){let t=Object.entries(e.nodes),r=t.filter(([,e])=>"gate"===e.type&&e.required),n=r.find(([,e])=>"failed"===e.status);if(n)return n[0];let a=r.find(([,e])=>"awaiting_human"===e.status);if(a)return a[0];let s=r.find(([,e])=>"pending"===e.status||"running"===e.status);if(s)return s[0];let o=t.find(([,e])=>"work"===e.type&&"blocked"===e.status);return o?.[0]??null}(e);if(!t)return null;let r=e.nodes[t];return r?{nodeId:t,label:a(t,r),status:r.status,required:"gate"===r.type&&r.required}:null}(e),derivedStatus:function(e){let t=Object.keys(e.nodes).length;if(0===t)return"INTAKE";if(1===t){let t=Object.values(e.nodes)[0];if("root"===t.type&&!t.graphCreated)return"INTAKE"}return Object.values(e.nodes).some(e=>n.has(e.status))?"PROGRESS":"DONE"}(e),hasRootNode:null!==o,rootNodeId:o?.id??null}},"findRootNode",0,s,"formatNodeStatusLabel",0,function(e){return e.replace(/_/gu," ")},"getNodeLabel",0,a,"toNodeStatusClass",0,function(e){return`node--${e}`}],353662)},865260,745649,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(174080);let a=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"โ—‹"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"โ—‘"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"โŠ˜"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"โ—"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"โœ•"}];function s({status:e,onStatusChange:o}){let[i,l]=(0,r.useState)(!1),[d,u]=(0,r.useState)(null),c=(0,r.useRef)(null),f=(0,r.useRef)(null),p=(0,r.useCallback)(()=>{if(!c.current)return;let e=c.current.getBoundingClientRect();u({top:e.bottom+4,left:e.left})},[]);(0,r.useEffect)(()=>{if(!i)return;p();let e=e=>{c.current&&!c.current.contains(e.target)&&f.current&&!f.current.contains(e.target)&&l(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[i,p]),(0,r.useEffect)(()=>{l(!1)},[e]);let h=a.find(t=>t.value===e)||a[0],m="completed"===e,g="in_progress"===e;return(0,t.jsxs)("div",{className:"relative flex-shrink-0",ref:c,children:[(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),o&&l(!i)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
2
2
  hover:scale-110 focus-visible:outline-2 focus-visible:outline-[var(--ring)]
3
3
  ${o?"cursor-pointer":"cursor-default"}
4
4
  ${g?"animate-pulse":""}
@@ -12,7 +12,7 @@
12
12
  ${"completed"===e.status&&"none"===g?"opacity-75 bg-[var(--secondary)]":""}
13
13
  `,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsx)("h3",{className:`text-sm font-medium text-[var(--foreground)] leading-snug line-clamp-2 sm:line-clamp-3
14
14
  ${"completed"===e.status?"text-[var(--muted-foreground)] line-through":""}
15
- `,children:e.title||"Untitled Task"}),(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)(s,{status:e.status||"queued",onStatusChange:o})})]}),(0,t.jsx)("div",{className:"flex items-center justify-between min-h-[16px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] flex-wrap",children:[void 0!==e.priority&&e.priority>0&&(0,t.jsxs)("span",{className:`px-1.5 py-0.5 rounded font-semibold bg-[var(--secondary)] ${0===e.priority?"text-[var(--primary)]":""}`,children:["P",e.priority]}),l&&("auto"===e.approval_mode?(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 cursor-pointer select-none",title:"Auto-approve enabled. Click to switch to manual.",onClick:e=>{e.stopPropagation(),l("manual")},children:"AUTO"}):(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500 cursor-pointer select-none opacity-0 group-hover:opacity-100 transition-opacity",title:"Manual approval. Click to enable auto-approve.",onClick:e=>{e.stopPropagation(),l("auto")},children:"AUTO"})),"draft"!==e.id&&(0,t.jsx)("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[9px]",children:e.id.slice(0,5)})]})}),f&&v&&(w||k)?(0,t.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[w?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),f(w)},children:["Back to ",w]}):null,k?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),f(k)},children:["Move to ",k]}):null]}):null]})}],865260);var f=e.i(247167);let p={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:f.default.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:f.default.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["useTasks",0,function(e={}){let t="1"===f.default.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,n=e.project,a=e.status,s=e.orphan,o=e.realtime,[i,l]=(0,r.useState)([]),[d,u]=(0,r.useState)(!0),[c,h]=(0,r.useState)(null),[m,g]=(0,r.useState)(null),[x,b]=(0,r.useState)(null),v=(0,r.useCallback)(e=>{if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]},[]),y=(0,r.useCallback)(e=>{let t=String(e||"").match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return[];let r=t[1].split("\n").find(e=>e.trim().toLowerCase().startsWith("depends_on:"));return r?v(r.slice(r.indexOf(":")+1).trim()):[]},[v]),w=(0,r.useCallback)((e,t)=>{let r=v(e.depends_on);if(r.length>0)return{...e,depends_on:r};let n="string"==typeof e?.content?y(e.content):[];if(n.length>0)return{...e,depends_on:n};let a=v(t?.depends_on);return a.length>0?{...e,depends_on:a}:e},[y,v]),k=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;n&&e.set("project",n),a&&e.set("status",a),s&&e.set("orphan","1");let t=await fetch(`/api/tasks?${e.toString()}`);if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json(),o=Array.isArray(r.tasks)?r.tasks.map(e=>w(e)):[];l(o),h(null)}catch(e){h(e instanceof Error?e:Error("Unknown error"))}finally{u(!1)}},[n,a,s]);(0,r.useEffect)(()=>{k()},[k]),(0,r.useEffect)(()=>{if(!t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[t,o,k]),(0,r.useEffect)(()=>{if(t||!o)return;let e={auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:p.id,email:p.email,user_metadata:{name:p.name,full_name:p.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}},r=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?l(t=>{let r=w(e.new);return t.some(e=>e.id===r.id)?t:[r,...t]}):"UPDATE"===e.eventType?l(t=>t.map(t=>t.id===e.new.id?w(e.new,t):t)):"DELETE"===e.eventType&&l(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(r)}},[o,t]),(0,r.useEffect)(()=>{if(t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[o,t,k]);let j=(0,r.useCallback)(async(e,t)=>{let r=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,swarm_models:t})});if(!r.ok)throw Error((await r.json()).error||"Failed to create task");let{task:n}=await r.json(),a=w(n);return l(e=>e.some(e=>e.id===a.id)?e:[a,...e]),a},[e.realtime,w]),N=(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let e=null;throw"function"==typeof r.json&&(e=await r.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null))),Error(e?.error||e?.details||`Failed to update task (${r.status} ${r.statusText||"Error"})`)}let{task:n}=await r.json();return l(t=>t.map(t=>t.id===e?w({...t,...n},t):t)),w(n)},[e.realtime,w]),S=(0,r.useCallback)(async e=>{if(!(await fetch(`/api/tasks/${e}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");l(t=>t.filter(t=>t.id!==e))},[e.realtime]),C=(0,r.useCallback)(async e=>{let t=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:r}=await t.json();return l(t=>t.map(t=>t.id===e.taskId?w({...t,...r},t):t)),w(r)},[e.realtime,w]),E=(0,r.useCallback)(async e=>{g(e.taskId),b(null);try{let t=await fetch(`/api/orchestrator/tasks/${e.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.reason?{reason:e.reason}:{})});if(!t.ok){let e=await t.json().catch(()=>({})),r=e?.error||"Failed to cancel workflow";throw Error(r)}return t.json()}catch(t){let e=t instanceof Error?t:Error("Failed to cancel workflow");throw b(e),e}finally{g(null)}},[]),_=(0,r.useCallback)(async e=>{let t=await fetch(`/api/tasks/${e}`),r=await t.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null));if(!t.ok)throw Error(r?.error||"Failed to fetch task details");return w(r?.task)},[w]),T=(0,r.useCallback)(async e=>{let t=await fetch("/api/tasks/assign-orphans",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:e})}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||"Failed to assign orphan tasks");return await k(),{updatedCount:Number(r?.updatedCount||0),taskIds:Array.isArray(r?.taskIds)?r.taskIds:[]}},[k]);return{tasks:i,isLoading:d,error:c,cancellingTaskId:m,isCancelling:!!m,cancelError:x,refetch:k,createTask:j,updateTask:N,deleteTask:S,completeTaskStage:C,cancelWorkflow:E,fetchTask:_,assignOrphanTasksToProject:T}}],745649)},172695,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(8707),a=e.i(186710),s=e.i(477183),o=e.i(76590),i=e.i(807311),l=e.i(865260);function d({task:e,onClick:r,onStatusChange:n,onApprovalModeChange:a,onStageChange:s,stageOptions:u,currentStage:c,dragDisabled:f=!1,allTasks:p,relationship:h="none"}){let{attributes:m,listeners:g,setNodeRef:x,transform:b,transition:v,isDragging:y}=(0,o.useSortable)({id:e.id,disabled:f}),w={transform:i.CSS.Transform.toString(b),transition:v,opacity:y?.5:1,...y?{zIndex:50,position:"relative"}:{}};return(0,t.jsx)("div",{ref:x,...m,...g,style:w,className:`touch-none ${"none"!==h&&"dimmed"!==h?"z-20 relative":""}`,children:(0,t.jsx)(l.default,{task:e,onClick:r,onStatusChange:n,onApprovalModeChange:a,onStageChange:s,stageOptions:u,currentStage:c,allTasks:p,relationship:h})})}function u({task:e}){return(0,t.jsx)("div",{className:"w-full sm:w-80 cursor-grabbing shadow-lg border border-[var(--primary)] rotate-1 scale-[1.02] rounded-lg bg-[var(--card-bg)]",children:(0,t.jsx)(l.default,{task:e})})}let c=["INTAKE","PROGRESS","DONE"],f={INTAKE:{icon:"๐Ÿ“ฅ",label:"Intake",color:"var(--warning)"},PROGRESS:{icon:"๐Ÿ”„",label:"Progress",color:"var(--primary)"},DONE:{icon:"โœ…",label:"Done",color:"var(--success)"}};var p=e.i(44054);function h({tasks:e,onTasksChange:n,onSelectTask:a,onTaskUpdate:i,onAddTask:l,stages:d,stageConfig:g,isValidTransition:x,isCreatingTask:b,creatingStage:v,graphColumnFn:y}){let{isTouchLayout:w}=(0,p.useInputCapabilities)(),k=d||c,j=g||f,N=x||((e,t)=>{if(e===t)return!0;let r=k.indexOf(e),n=k.indexOf(t);return n<r||n===r+1}),[S,C]=(0,r.useState)(null),[E,_]=(0,r.useState)(e),[T,L]=(0,r.useState)(null),[M,O]=(0,r.useState)([]),A=(0,r.useRef)(null),P=(0,r.useRef)(null),I=(0,r.useCallback)(()=>{if(!T||!A.current)return void O([]);let e=[],t=A.current.getBoundingClientRect(),r=document.getElementById(`task-${T}`);if(!r)return;let n=r.getBoundingClientRect();E.forEach(r=>{if(E.find(e=>e.id===T)?.depends_on?.includes(r.id)){let a=document.getElementById(`task-${r.id}`);if(a){let s=a.getBoundingClientRect();e.push({id:`conn-blocking-${r.id}`,from:{x:s.right-t.left,y:s.top+s.height/2-t.top},to:{x:n.left-t.left,y:n.top+n.height/2-t.top},type:"blocking"})}}if(r.depends_on?.includes(T)){let a=document.getElementById(`task-${r.id}`);if(a){let s=a.getBoundingClientRect();e.push({id:`conn-dependent-${r.id}`,from:{x:n.right-t.left,y:n.top+n.height/2-t.top},to:{x:s.left-t.left,y:s.top+s.height/2-t.top},type:"dependent"})}}}),O(e)},[T,E]);(0,r.useEffect)(()=>(I(),window.addEventListener("resize",I),()=>window.removeEventListener("resize",I)),[I]),(0,r.useEffect)(()=>{S||_(e)},[e]);let R={ideation:"INTAKE",intake:"INTAKE",planning:"PROGRESS",coding:"PROGRESS",execution:"PROGRESS",qa:"PROGRESS",acceptance:"PROGRESS",verification:"PROGRESS",pr:"PROGRESS",smoke_test:"PROGRESS",release:"PROGRESS",done:"DONE"},$=e=>{let t="string"==typeof e.stage?e.stage:"",r="string"==typeof e.status?e.status.trim().toLowerCase():"";if(t&&k.includes(t))return t;if("completed"===r)return"DONE";if("in_progress"===r||"blocked"===r||"failed"===r)return"PROGRESS";let n=R[t.trim().toLowerCase()];return n||(y?y(e):"INTAKE")};(0,r.useMemo)(()=>{let e={},t=new Map(E.map(e=>[e.id,e]));for(let r of E)!function r(n,a){if(void 0!==e[n])return e[n];if(a.has(n))return 0;a.add(n);let s=t.get(n);if(!s?.depends_on?.length)return e[n]=0,0;let o=Math.max(...s.depends_on.map(e=>t.has(e)?r(e,a)+1:0));return e[n]=o,o}(r.id,new Set);return e},[E]);let U=(0,r.useMemo)(()=>{let e={},t=new Map(E.map(e=>[e.id,e]));for(let n of k){let a=E.filter(e=>$(e)===n),s=[],o=new Set;function r(e){if(!o.has(e.id)){for(let a of e.depends_on||[]){let e=t.get(a);e&&$(e)===n&&!o.has(a)&&r(e)}o.add(e.id),s.push(e)}}for(let e of a.filter(e=>!e.depends_on?.some(e=>t.has(e)&&$(t.get(e))===n)).sort((e,t)=>(e.priority||0)-(t.priority||0)))r(e);for(let e of a.sort((e,t)=>(e.priority||0)-(t.priority||0)))r(e);e[n]=s}return e},[E,k,y]),D=(0,s.useSensors)((0,s.useSensor)(s.PointerSensor,{activationConstraint:{distance:8}}));async function B(t){let{active:r,over:a}=t;if(C(null),!a)return void _(e);let s=r.id,l=a.id,d=E.find(e=>e.id===s);if(!d)return;let u=e.find(e=>e.id===s),c=$(d),f=d.priority||0;if(k.includes(l)){let e=U[c=l];f=e.length>0?Math.max(...e.map(e=>e.priority||0))+1:0}else{let e=E.find(e=>e.id===l);if(e){c=$(e);let t=E.filter(e=>$(e)===c),r=t.findIndex(e=>e.id===s),a=t.findIndex(e=>e.id===l);if(-1!==r&&-1!==a&&r!==a){let e=(0,o.arrayMove)(t,r,a),s=E.map(t=>{let r=e.findIndex(e=>e.id===t.id);return -1!==r?{...t,priority:r}:t});_(s),n?.(s)}f=e.priority||0}}let p=u?$(u):d.stage||"";if(u&&!N(p||"",c))return void _(e);if(i&&(p!==c||(u?.priority??d.priority)!==f))try{await i(s,{stage:c,priority:f}),n?.(E)}catch(t){console.error("Failed to update task:",t),_(e)}}let F=(0,r.useCallback)(async(t,r)=>{if(!N($(t)||"",r))return;let a=E.filter(e=>e.id!==t.id&&$(e)===r),s=a.length>0?Math.max(...a.map(e=>e.priority||0))+1:0,o=E.map(e=>e.id===t.id?{...e,stage:r,priority:s}:e);if(_(o),n?.(o),i)try{await i(t.id,{stage:r,priority:s})}catch(t){console.error("Failed to update task:",t),_(e)}},[N,E,i,n,e]);return(0,t.jsxs)(s.DndContext,{sensors:D,collisionDetection:s.closestCorners,onDragStart:function(e){let t=E.find(t=>t.id===e.active.id);t&&C(t)},onDragOver:function(e){let{active:t,over:r}=e;if(!r)return;let n=t.id,a=r.id,s=E.find(e=>e.id===n);if(!s)return;let o=$(s),i=function(e){if(k.includes(e))return e;let t=E.find(t=>t.id===e);return t?$(t):null}(a);if(i&&o!==i){if(!N(o||"",i))return;_(e=>e.map(e=>e.id===n?{...e,stage:i}:e))}},onDragEnd:B,children:[(0,t.jsx)("div",{className:"h-full overflow-hidden relative bg-[var(--background)]",ref:P,onScroll:I,onClick:()=>L(null),children:(0,t.jsxs)("div",{className:"relative min-w-full h-full flex flex-col",ref:A,children:[(0,t.jsxs)("svg",{className:"absolute inset-0 w-full h-full pointer-events-none z-10 hidden xl:block",style:{overflow:"visible"},children:[(0,t.jsx)("style",{children:`
15
+ `,children:e.title||"Untitled Task"}),(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)(s,{status:e.status||"queued",onStatusChange:o})})]}),(0,t.jsx)("div",{className:"flex items-center justify-between min-h-[16px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] flex-wrap",children:[void 0!==e.priority&&e.priority>0&&(0,t.jsxs)("span",{className:`px-1.5 py-0.5 rounded font-semibold bg-[var(--secondary)] ${0===e.priority?"text-[var(--primary)]":""}`,children:["P",e.priority]}),l&&("auto"===e.approval_mode?(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 cursor-pointer select-none",title:"Auto-approve enabled. Click to switch to manual.",onClick:e=>{e.stopPropagation(),l("manual")},children:"AUTO"}):(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500 cursor-pointer select-none opacity-0 group-hover:opacity-100 transition-opacity",title:"Manual approval. Click to enable auto-approve.",onClick:e=>{e.stopPropagation(),l("auto")},children:"AUTO"})),"draft"!==e.id&&(0,t.jsx)("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[9px]",children:e.id.slice(0,5)})]})}),f&&v&&(w||k)?(0,t.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[w?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),f(w)},children:["Back to ",w]}):null,k?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),f(k)},children:["Move to ",k]}):null]}):null]})}],865260);var f=e.i(247167);let p={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:f.default.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:f.default.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["useTasks",0,function(e={}){let t="1"===f.default.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,n=e.project,a=e.status,s=e.orphan,o=e.realtime,[i,l]=(0,r.useState)([]),[d,u]=(0,r.useState)(!0),[c,h]=(0,r.useState)(null),[m,g]=(0,r.useState)(null),[x,b]=(0,r.useState)(null),v=(0,r.useCallback)(e=>{if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]},[]),y=(0,r.useCallback)(e=>{let t=String(e||"").match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return[];let r=t[1].split("\n").find(e=>e.trim().toLowerCase().startsWith("depends_on:"));return r?v(r.slice(r.indexOf(":")+1).trim()):[]},[v]),w=(0,r.useCallback)((e,t)=>{let r=v(e.depends_on);if(r.length>0)return{...e,depends_on:r};let n="string"==typeof e?.content?y(e.content):[];if(n.length>0)return{...e,depends_on:n};let a=v(t?.depends_on);return a.length>0?{...e,depends_on:a}:e},[y,v]),k=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;n&&e.set("project",n),a&&e.set("status",a),s&&e.set("orphan","1");let t=await fetch(`/api/tasks?${e.toString()}`);if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json(),o=Array.isArray(r.tasks)?r.tasks.map(e=>w(e)):[];l(o),h(null)}catch(e){h(e instanceof Error?e:Error("Unknown error"))}finally{u(!1)}},[n,a,s]);(0,r.useEffect)(()=>{k()},[k]),(0,r.useEffect)(()=>{if(!t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[t,o,k]),(0,r.useEffect)(()=>{if(t||!o)return;let e={auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:p.id,email:p.email,user_metadata:{name:p.name,full_name:p.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}},r=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?l(t=>{let r=w(e.new);return t.some(e=>e.id===r.id)?t:[r,...t]}):"UPDATE"===e.eventType?l(t=>t.map(t=>t.id===e.new.id?w(e.new,t):t)):"DELETE"===e.eventType&&l(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(r)}},[o,t]),(0,r.useEffect)(()=>{if(t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[o,t,k]);let j=(0,r.useCallback)(async(e,t)=>{let r=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,swarm_models:t})});if(!r.ok)throw Error((await r.json()).error||"Failed to create task");let{task:n}=await r.json(),a=w(n);return l(e=>e.some(e=>e.id===a.id)?e:[a,...e]),a},[e.realtime,w]),N=(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let e=null;throw"function"==typeof r.json&&(e=await r.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null))),Error(e?.error||e?.details||`Failed to update task (${r.status} ${r.statusText||"Error"})`)}let{task:n}=await r.json();return l(t=>t.map(t=>t.id===e?w({...t,...n},t):t)),w(n)},[e.realtime,w]),S=(0,r.useCallback)(async e=>{if(!(await fetch(`/api/tasks/${e}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");l(t=>t.filter(t=>t.id!==e))},[e.realtime]),C=(0,r.useCallback)(async e=>{let t=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:r}=await t.json();return l(t=>t.map(t=>t.id===e.taskId?w({...t,...r},t):t)),w(r)},[e.realtime,w]),E=(0,r.useCallback)(async e=>{g(e.taskId),b(null);try{let t=await fetch(`/api/orchestrator/tasks/${e.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.reason?{reason:e.reason}:{})});if(!t.ok){let e=await t.json().catch(()=>({})),r=e?.error||"Failed to cancel workflow";throw Error(r)}return t.json()}catch(t){let e=t instanceof Error?t:Error("Failed to cancel workflow");throw b(e),e}finally{g(null)}},[]),_=(0,r.useCallback)(async e=>{let t=await fetch(`/api/tasks/${e}`),r=await t.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null));if(!t.ok)throw Error(r?.error||"Failed to fetch task details");return w(r?.task)},[w]),T=(0,r.useCallback)(async e=>{let t=await fetch("/api/tasks/assign-orphans",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:e})}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||"Failed to assign orphan tasks");return await k(),{updatedCount:Number(r?.updatedCount||0),taskIds:Array.isArray(r?.taskIds)?r.taskIds:[]}},[k]);return{tasks:i,isLoading:d,error:c,cancellingTaskId:m,isCancelling:!!m,cancelError:x,refetch:k,createTask:j,updateTask:N,deleteTask:S,completeTaskStage:C,cancelWorkflow:E,fetchTask:_,assignOrphanTasksToProject:T}}],745649)},172695,e=>{"use strict";var t=e.i(843476),r=e.i(271645),n=e.i(8707),a=e.i(186710),s=e.i(477183),o=e.i(76590),i=e.i(807311),l=e.i(865260);function d({task:e,onClick:r,onStatusChange:n,onApprovalModeChange:a,onStageChange:s,stageOptions:u,currentStage:c,dragDisabled:f=!1,allTasks:p,relationship:h="none"}){let{attributes:m,listeners:g,setNodeRef:x,transform:b,transition:v,isDragging:y}=(0,o.useSortable)({id:e.id,disabled:f}),w={transform:i.CSS.Transform.toString(b),transition:v,opacity:y?.5:1,...y?{zIndex:50,position:"relative"}:{}};return(0,t.jsx)("div",{ref:x,...m,...g,style:w,className:`touch-none ${"none"!==h&&"dimmed"!==h?"z-20 relative":""}`,children:(0,t.jsx)(l.default,{task:e,onClick:r,onStatusChange:n,onApprovalModeChange:a,onStageChange:s,stageOptions:u,currentStage:c,allTasks:p,relationship:h})})}function u({task:e}){return(0,t.jsx)("div",{className:"w-full sm:w-80 cursor-grabbing shadow-lg border border-[var(--primary)] rotate-1 scale-[1.02] rounded-lg bg-[var(--card-bg)]",children:(0,t.jsx)(l.default,{task:e})})}let c=["INTAKE","PROGRESS","DONE"],f={INTAKE:{icon:"๐Ÿ“ฅ",label:"Intake",color:"var(--warning)"},PROGRESS:{icon:"๐Ÿ”„",label:"Progress",color:"var(--primary)"},DONE:{icon:"โœ…",label:"Done",color:"var(--success)"}};var p=e.i(44054);function h({tasks:e,onTasksChange:n,onSelectTask:a,onTaskUpdate:i,onAddTask:l,stages:d,stageConfig:g,isValidTransition:x,isCreatingTask:b,creatingStage:v,graphColumnFn:y}){let{isTouchLayout:w}=(0,p.useInputCapabilities)(),k=d||c,j=g||f,N=x||((e,t)=>{if(e===t)return!0;let r=k.indexOf(e),n=k.indexOf(t);return n<r||n===r+1}),[S,C]=(0,r.useState)(null),[E,_]=(0,r.useState)(e),[T,L]=(0,r.useState)(null),[M,O]=(0,r.useState)([]),A=(0,r.useRef)(null),P=(0,r.useRef)(null),R=(0,r.useCallback)(()=>{if(!T||!A.current)return void O([]);let e=[],t=A.current.getBoundingClientRect(),r=document.getElementById(`task-${T}`);if(!r)return;let n=r.getBoundingClientRect();E.forEach(r=>{if(E.find(e=>e.id===T)?.depends_on?.includes(r.id)){let a=document.getElementById(`task-${r.id}`);if(a){let s=a.getBoundingClientRect();e.push({id:`conn-blocking-${r.id}`,from:{x:s.right-t.left,y:s.top+s.height/2-t.top},to:{x:n.left-t.left,y:n.top+n.height/2-t.top},type:"blocking"})}}if(r.depends_on?.includes(T)){let a=document.getElementById(`task-${r.id}`);if(a){let s=a.getBoundingClientRect();e.push({id:`conn-dependent-${r.id}`,from:{x:n.right-t.left,y:n.top+n.height/2-t.top},to:{x:s.left-t.left,y:s.top+s.height/2-t.top},type:"dependent"})}}}),O(e)},[T,E]);(0,r.useEffect)(()=>(R(),window.addEventListener("resize",R),()=>window.removeEventListener("resize",R)),[R]),(0,r.useEffect)(()=>{S||_(e)},[e]);let I={ideation:"INTAKE",intake:"INTAKE",planning:"PROGRESS",coding:"PROGRESS",execution:"PROGRESS",qa:"PROGRESS",acceptance:"PROGRESS",verification:"PROGRESS",pr:"PROGRESS",smoke_test:"PROGRESS",release:"PROGRESS",done:"DONE"},$=e=>{let t="string"==typeof e.stage?e.stage:"",r="string"==typeof e.status?e.status.trim().toLowerCase():"";if(t&&k.includes(t))return t;if("completed"===r)return"DONE";if("in_progress"===r||"blocked"===r||"failed"===r)return"PROGRESS";let n=I[t.trim().toLowerCase()];return n||(y?y(e):"INTAKE")};(0,r.useMemo)(()=>{let e={},t=new Map(E.map(e=>[e.id,e]));for(let r of E)!function r(n,a){if(void 0!==e[n])return e[n];if(a.has(n))return 0;a.add(n);let s=t.get(n);if(!s?.depends_on?.length)return e[n]=0,0;let o=Math.max(...s.depends_on.map(e=>t.has(e)?r(e,a)+1:0));return e[n]=o,o}(r.id,new Set);return e},[E]);let U=(0,r.useMemo)(()=>{let e={},t=new Map(E.map(e=>[e.id,e]));for(let n of k){let a=E.filter(e=>$(e)===n),s=[],o=new Set;function r(e){if(!o.has(e.id)){for(let a of e.depends_on||[]){let e=t.get(a);e&&$(e)===n&&!o.has(a)&&r(e)}o.add(e.id),s.push(e)}}for(let e of a.filter(e=>!e.depends_on?.some(e=>t.has(e)&&$(t.get(e))===n)).sort((e,t)=>(e.priority||0)-(t.priority||0)))r(e);for(let e of a.sort((e,t)=>(e.priority||0)-(t.priority||0)))r(e);e[n]=s}return e},[E,k,y]),D=(0,s.useSensors)((0,s.useSensor)(s.PointerSensor,{activationConstraint:{distance:8}}));async function B(t){let{active:r,over:a}=t;if(C(null),!a)return void _(e);let s=r.id,l=a.id,d=E.find(e=>e.id===s);if(!d)return;let u=e.find(e=>e.id===s),c=$(d),f=d.priority||0;if(k.includes(l)){let e=U[c=l];f=e.length>0?Math.max(...e.map(e=>e.priority||0))+1:0}else{let e=E.find(e=>e.id===l);if(e){c=$(e);let t=E.filter(e=>$(e)===c),r=t.findIndex(e=>e.id===s),a=t.findIndex(e=>e.id===l);if(-1!==r&&-1!==a&&r!==a){let e=(0,o.arrayMove)(t,r,a),s=E.map(t=>{let r=e.findIndex(e=>e.id===t.id);return -1!==r?{...t,priority:r}:t});_(s),n?.(s)}f=e.priority||0}}let p=u?$(u):d.stage||"";if(u&&!N(p||"",c))return void _(e);if(i&&(p!==c||(u?.priority??d.priority)!==f))try{await i(s,{stage:c,priority:f}),n?.(E)}catch(t){console.error("Failed to update task:",t),_(e)}}let F=(0,r.useCallback)(async(t,r)=>{if(!N($(t)||"",r))return;let a=E.filter(e=>e.id!==t.id&&$(e)===r),s=a.length>0?Math.max(...a.map(e=>e.priority||0))+1:0,o=E.map(e=>e.id===t.id?{...e,stage:r,priority:s}:e);if(_(o),n?.(o),i)try{await i(t.id,{stage:r,priority:s})}catch(t){console.error("Failed to update task:",t),_(e)}},[N,E,i,n,e]);return(0,t.jsxs)(s.DndContext,{sensors:D,collisionDetection:s.closestCorners,onDragStart:function(e){let t=E.find(t=>t.id===e.active.id);t&&C(t)},onDragOver:function(e){let{active:t,over:r}=e;if(!r)return;let n=t.id,a=r.id,s=E.find(e=>e.id===n);if(!s)return;let o=$(s),i=function(e){if(k.includes(e))return e;let t=E.find(t=>t.id===e);return t?$(t):null}(a);if(i&&o!==i){if(!N(o||"",i))return;_(e=>e.map(e=>e.id===n?{...e,stage:i}:e))}},onDragEnd:B,children:[(0,t.jsx)("div",{className:"h-full overflow-hidden relative bg-[var(--background)]",ref:P,onScroll:R,onClick:()=>L(null),children:(0,t.jsxs)("div",{className:"relative min-w-full h-full flex flex-col",ref:A,children:[(0,t.jsxs)("svg",{className:"absolute inset-0 w-full h-full pointer-events-none z-10 hidden xl:block",style:{overflow:"visible"},children:[(0,t.jsx)("style",{children:`
16
16
  @keyframes flow {
17
17
  from { stroke-dashoffset: 20; }
18
18
  to { stroke-dashoffset: 0; }
@@ -25,4 +25,4 @@
25
25
  bg-[var(--muted)]/40 rounded-2xl border border-[var(--border)]/50 shadow-inner overflow-hidden
26
26
  transition-all duration-200
27
27
  ${v?"ring-2 ring-[var(--primary)] ring-opacity-30 bg-[var(--primary-muted)]/10":""}
28
- `,style:{animationDelay:`${50*f}ms`},children:[(0,t.jsxs)("div",{className:"p-4 flex items-center justify-between bg-[var(--card-bg)]/30 backdrop-blur-sm border-b border-[var(--border)]/20",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"text-lg",children:h.icon}),(0,t.jsx)("h3",{className:"font-bold text-[11px] uppercase tracking-widest text-[var(--muted-foreground)]",children:h.label})]}),(0,t.jsx)("span",{className:"text-[10px] font-bold text-[var(--muted-foreground)] bg-[var(--card-bg)] px-2 py-0.5 rounded-full border border-[var(--border)]",children:r.length})]}),(0,t.jsx)(g,{stage:e,tasks:r,allTasks:n,stages:a,isTouchLayout:o,selectedTaskId:i,setSelectedTaskId:l,onSelectTask:d,onTaskUpdate:u,onStageMove:c,config:h,onAddTask:p,isCreating:x})]})}function g({stage:e,tasks:n,allTasks:a,stages:s,isTouchLayout:i,selectedTaskId:l,setSelectedTaskId:u,onSelectTask:c,onTaskUpdate:f,onStageMove:p,config:h,onAddTask:m,isCreating:x}){let b=(0,r.useMemo)(()=>n.map(e=>e.id),[n]),[v,y]=(0,r.useState)(!1),[w,k]=(0,r.useState)(""),j=(0,r.useRef)(null),N=()=>{let t=w.trim();t&&m&&m(t,e),y(!1),k("")},S=()=>{y(!1),k("")};return(0,t.jsx)(o.SortableContext,{items:b,strategy:o.verticalListSortingStrategy,children:(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto scrollbar-thin px-3 py-3 space-y-2",children:[m&&!v&&(0,t.jsx)("button",{onClick:e=>{e.stopPropagation(),y(!0),k(""),setTimeout(()=>j.current?.focus(),0)},disabled:x,className:"w-full py-2.5 rounded-xl border border-dashed border-[var(--border)] text-[var(--muted-foreground)] text-[10px] font-bold uppercase tracking-widest hover:bg-[var(--card-bg)] hover:border-indigo-200 hover:text-indigo-400 transition-all flex items-center justify-center gap-2 mb-1",children:x?(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-[var(--border)] border-t-indigo-400 rounded-full"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add Task"]})}),v&&(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] border-2 border-indigo-400 rounded-xl p-3 shadow-lg shadow-indigo-50 mb-1",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("input",{ref:j,type:"text",value:w,onChange:e=>k(e.target.value),onKeyDown:e=>{"Enter"===e.key&&N(),"Escape"===e.key&&S()},onBlur:()=>{w.trim()?N():S()},placeholder:"Task title...",className:"w-full text-sm font-medium text-[var(--foreground)] bg-transparent outline-none placeholder:text-[var(--muted-foreground)]"}),(0,t.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1",children:"Press Enter to create ยท Esc to cancel"})]}),n.map(r=>{let n=(e=>{if(!l)return"none";if(e.id===l)return"active";let t=a.find(e=>e.id===l);return t?.depends_on?.includes(e.id)?"blocking":e.depends_on?.includes(l)?"dependent":"dimmed"})(r);return(0,t.jsx)("div",{id:`task-${r.id}`,onClick:e=>{e.stopPropagation(),u(r.id===l?null:r.id),c?.(r)},children:(0,t.jsx)(d,{task:r,onClick:()=>c?.(r),onStatusChange:f?e=>f(r.id,{status:e}):void 0,onApprovalModeChange:f?e=>f(r.id,{approval_mode:e}):void 0,onStageChange:i&&p?e=>{e&&p(r,e)}:void 0,stageOptions:i?s:void 0,currentStage:e,dragDisabled:i,allTasks:a,relationship:n})},r.id)}),0===n.length&&!v&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 opacity-10",children:[(0,t.jsxs)("svg",{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",className:"mb-1",children:[(0,t.jsx)("line",{x1:"8",y1:"6",x2:"21",y2:"6"}),(0,t.jsx)("line",{x1:"8",y1:"12",x2:"21",y2:"12"}),(0,t.jsx)("line",{x1:"8",y1:"18",x2:"21",y2:"18"}),(0,t.jsx)("line",{x1:"3",y1:"6",x2:"3.01",y2:"6"}),(0,t.jsx)("line",{x1:"3",y1:"12",x2:"3.01",y2:"12"}),(0,t.jsx)("line",{x1:"3",y1:"18",x2:"3.01",y2:"18"})]}),(0,t.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-widest",children:"Available"})]})]})})}var x=e.i(247167),b=e.i(810605);let v="agx:floatingPanels";function y(){return void 0!==window.localStorage}function w(){if(!y())return{};try{let e=window.localStorage.getItem(v);if(!e)return{};let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch{return{}}}function k(e){return w()[e]??null}function j(e,t,r){return Math.min(Math.max(e,t),r)}function N(e,t,r){let n={width:window.innerWidth,height:window.innerHeight},a=Math.max(t,n.width-16),s=Math.max(r,n.height-16),o=j(e.width,t,a),i=j(e.height,r,s);return{x:j(e.x,8,Math.max(8,n.width-o-8)),y:j(e.y,8,Math.max(8,n.height-i-8)),width:o,height:i}}function S({panelId:e,titleBar:n,children:a,defaultBounds:s,minWidth:o=320,minHeight:i=220,className:l,bodyClassName:d}){let{isTouchLayout:u}=(0,p.useInputCapabilities)(),c=(0,r.useRef)(null),f=(0,r.useRef)(null),h=(0,r.useMemo)(()=>N(k(e)??s,o,i),[s,i,o,e]),[m,g]=(0,r.useState)(h),[x,b]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{g(N(k(e)??s,o,i)),b(!0)},[s,i,o,e]),(0,r.useEffect)(()=>{if(x){let t=w();t[e]=m;if(y())try{window.localStorage.setItem(v,JSON.stringify(t))}catch{}}},[m,x,e]),(0,r.useEffect)(()=>{if(u)return;let e=()=>{g(e=>N(e,o,i))};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[u,i,o]),(0,r.useEffect)(()=>{if(u)return;let e=e=>{c.current?g(N({...m,x:c.current.originX+(e.clientX-c.current.startX),y:c.current.originY+(e.clientY-c.current.startY)},o,i)):f.current&&g(N({...m,width:f.current.originWidth+(e.clientX-f.current.startX),height:f.current.originHeight+(e.clientY-f.current.startY)},o,i))},t=()=>{c.current=null,f.current=null,document.body.style.userSelect="",document.body.style.cursor=""};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t),document.body.style.userSelect="",document.body.style.cursor=""}},[m,u,i,o]),(0,t.jsx)("div",{className:l,style:{position:"fixed",left:u?"50%":m.x,right:u?"auto":void 0,top:u?"max(16px, 8vh)":m.y,width:u?`min(${Math.max(m.width,o)}px, calc(100vw - 32px))`:m.width,height:u?`min(${Math.max(m.height,i)}px, calc(100vh - 48px))`:m.height,transform:u?"translateX(-50%)":void 0,zIndex:40},children:(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl backdrop-blur-md",children:[(0,t.jsx)("div",{onMouseDown:e=>{if(u)return;let t=e.target;t?.closest("button, a, input, textarea, select, [data-no-panel-drag='true']")||(c.current={startX:e.clientX,startY:e.clientY,originX:m.x,originY:m.y},document.body.style.userSelect="none",document.body.style.cursor="grabbing")},className:`${u?"cursor-default":"cursor-grab active:cursor-grabbing"} border-b border-[var(--border)] bg-[var(--card-bg)]/95`,children:n}),(0,t.jsx)("div",{className:d,children:a}),u?null:(0,t.jsx)("div",{onMouseDown:e=>{u||(e.preventDefault(),e.stopPropagation(),f.current={startX:e.clientX,startY:e.clientY,originWidth:m.width,originHeight:m.height},document.body.style.userSelect="none",document.body.style.cursor="nwse-resize")},className:"absolute bottom-0 right-0 h-5 w-5 cursor-nwse-resize","aria-hidden":"true",children:(0,t.jsx)("div",{className:"absolute bottom-1.5 right-1.5 h-2.5 w-2.5 rounded-sm border-r-2 border-b-2 border-[var(--muted-foreground)]/50"})})]})})}let C=Number(x.default.env.NEXT_PUBLIC_AGX_MAX_WORKERS)||10;function E({tasks:e,processes:n=[],onTaskClick:a,onStop:s,onRetry:o,cancellingTaskId:i,panelId:l="now-running-panel"}){let{isTouchLayout:d}=(0,p.useInputCapabilities)(),u=(0,r.useMemo)(()=>n.filter(e=>"spawning"===e.state||"running"===e.state),[n]),c=(0,r.useMemo)(()=>e.filter(e=>"in_progress"===e.status),[e]),[f,h]=(0,r.useState)({});(0,r.useEffect)(()=>{let e=()=>{let e={};c.forEach(t=>{let r=new Date(t.updated_at).getTime(),n=Math.floor((Date.now()-r)/6e4);n<1?e[t.id]="< 1m":n<60?e[t.id]=`${n}m`:e[t.id]=`${Math.floor(n/60)}h`}),h(e)};e();let t=setInterval(e,b.UI_POLL_TASK_DURATION_MS);return()=>clearInterval(t)},[c]);let m=c.length/C,g=m>=.8,x=c.length>=C;return 0===c.length?null:(0,t.jsx)(S,{panelId:l,defaultBounds:{x:24,y:120,width:720,height:248},minWidth:420,minHeight:180,className:"animate-fade-in-down",bodyClassName:"flex-1 overflow-auto",titleBar:(0,t.jsxs)("div",{className:"flex items-center gap-4 p-3 sm:p-4 flex-wrap sm:flex-nowrap sm:min-w-max",children:[(0,t.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[c.length," Active",u.length>0?` \xb7 ${u.length} process${u.length>1?"es":""}`:""]})]}),(0,t.jsxs)("div",{className:"hidden sm:flex flex-col justify-center pr-4 border-r border-[var(--border)] gap-1",title:`${c.length} of ${C} max workers in use. Single-writer SQLite architecture โ€” see docs/LIMITS.md`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("span",{className:`text-[10px] font-semibold uppercase tracking-wider ${x?"text-red-400":g?"text-amber-400":"text-[var(--muted-foreground)]"}`,children:[c.length,"/",C," workers"]}),g&&(0,t.jsxs)("svg",{className:`w-3 h-3 ${x?"text-red-400":"text-amber-400"}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),(0,t.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,t.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]})]}),(0,t.jsx)("div",{className:"w-16 h-1.5 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:`h-full rounded-full transition-all ${x?"bg-red-400":g?"bg-amber-400":"bg-[var(--primary)]"}`,style:{width:`${Math.min(100*m,100)}%`}})})]})]}),children:(0,t.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar p-3 sm:p-4",children:(0,t.jsx)("div",{className:"flex items-center gap-3 flex-wrap",children:c.map(e=>{let r=e.id===i;return(0,t.jsxs)("div",{onClick:()=>a?.(e),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-0 w-full sm:min-w-[280px] sm:w-auto",children:[(0,t.jsx)("div",{className:"w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-[10px] sm:text-xs font-bold border border-[var(--border)] shrink-0",children:e.provider?e.provider.substring(0,2).toUpperCase():"AG"}),(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,t.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[e.provider||"Agent"," ",e.model?`โ€ข ${e.model}`:""]}),(0,t.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:f[e.id]||"0m"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:e.title||e.content.substring(0,30)}),(0,t.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:`${40*Math.random()+30}%`}})})]})]}),(0,t.jsxs)("div",{className:`flex items-center gap-1 pl-2 border-l border-[var(--border)] transition-opacity ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:[(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),r||s?.(e.id)},disabled:r,className:`p-1 rounded transition-all ${r?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"}`,title:r?"Stopping...":"Stop Task","data-no-panel-drag":"true",children:r?(0,t.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,t.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),o?.(e.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart","data-no-panel-drag":"true",children:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,t.jsx)("path",{d:"M3 3v5h5"}),(0,t.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,t.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},e.id)})})})})}var _=e.i(745649);e.s(["default",0,function(){let{tasks:e,isLoading:s,updateTask:o,deleteTask:i,completeTaskStage:l,cancelWorkflow:d,refetch:u,cancellingTaskId:p}=(0,_.useTasks)({realtime:!0,orphan:!0}),{workflow:m,stages:g,stageConfig:x,isValidTransition:b,isLoading:v}={workflow:null,stages:(0,r.useMemo)(()=>[...c],[]),stageConfig:f,transitions:[],isLoading:!1,error:null,refetch:()=>{},isValidTransition:(0,r.useCallback)((e,t)=>{if(e===t)return!0;let r=c.indexOf(e),n=c.indexOf(t);return n<r||n===r+1},[])},[y,w]=(0,r.useState)(""),k=(0,r.useMemo)(()=>{if(!y.trim())return e;let t=y.toLowerCase();return e.filter(e=>(e.title||"").toLowerCase().includes(t)||(e.content||"").toLowerCase().includes(t))},[e,y]),j=(0,r.useCallback)(async e=>{},[]);return s||v?(0,t.jsx)(a.default,{children:(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading orphan tasks..."})]})})}):(0,t.jsx)(a.default,{children:(0,t.jsxs)("div",{className:"h-full flex flex-col p-4",children:[(0,t.jsxs)("div",{className:"flex-shrink-0 mb-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-xl font-bold",children:"Orphan Tasks"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Tasks without a project assignment. Open a task to attach it to a project."})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(n.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{type:"text",placeholder:"Search orphan tasks",value:y,onChange:e=>w(e.target.value),className:"w-full pl-9 pr-4 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-[var(--primary)] focus:border-transparent transition-all"})]}),(0,t.jsx)(E,{tasks:k,onTaskClick:()=>{},onStop:async e=>{await d({taskId:e}),await u()},onRetry:async e=>{await l({taskId:e,decision:"not_done",final_result:"Manual retry requested.",explanation:"Manual retry requested."})},cancellingTaskId:p,panelId:"now-running:orphans"})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,t.jsx)(h,{tasks:k,onSelectTask:j,onTasksChange:()=>{},onTaskUpdate:async(e,t)=>{await o(e,t)},stages:g,stageConfig:x,isValidTransition:b})})]})})}],172695)}]);
28
+ `,style:{animationDelay:`${50*f}ms`},children:[(0,t.jsxs)("div",{className:"p-4 flex items-center justify-between bg-[var(--card-bg)]/30 backdrop-blur-sm border-b border-[var(--border)]/20",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"text-lg",children:h.icon}),(0,t.jsx)("h3",{className:"font-bold text-[11px] uppercase tracking-widest text-[var(--muted-foreground)]",children:h.label})]}),(0,t.jsx)("span",{className:"text-[10px] font-bold text-[var(--muted-foreground)] bg-[var(--card-bg)] px-2 py-0.5 rounded-full border border-[var(--border)]",children:r.length})]}),(0,t.jsx)(g,{stage:e,tasks:r,allTasks:n,stages:a,isTouchLayout:o,selectedTaskId:i,setSelectedTaskId:l,onSelectTask:d,onTaskUpdate:u,onStageMove:c,config:h,onAddTask:p,isCreating:x})]})}function g({stage:e,tasks:n,allTasks:a,stages:s,isTouchLayout:i,selectedTaskId:l,setSelectedTaskId:u,onSelectTask:c,onTaskUpdate:f,onStageMove:p,config:h,onAddTask:m,isCreating:x}){let b=(0,r.useMemo)(()=>n.map(e=>e.id),[n]),[v,y]=(0,r.useState)(!1),[w,k]=(0,r.useState)(""),j=(0,r.useRef)(null),N=()=>{let t=w.trim();t&&m&&m(t,e),y(!1),k("")},S=()=>{y(!1),k("")};return(0,t.jsx)(o.SortableContext,{items:b,strategy:o.verticalListSortingStrategy,children:(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto scrollbar-thin px-3 py-3 space-y-2",children:[m&&!v&&(0,t.jsx)("button",{onClick:e=>{e.stopPropagation(),y(!0),k(""),setTimeout(()=>j.current?.focus(),0)},disabled:x,className:"w-full py-2.5 rounded-xl border border-dashed border-[var(--border)] text-[var(--muted-foreground)] text-[10px] font-bold uppercase tracking-widest hover:bg-[var(--card-bg)] hover:border-indigo-200 hover:text-indigo-400 transition-all flex items-center justify-center gap-2 mb-1",children:x?(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-[var(--border)] border-t-indigo-400 rounded-full"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Add Task"]})}),v&&(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] border-2 border-indigo-400 rounded-xl p-3 shadow-lg shadow-indigo-50 mb-1",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("input",{ref:j,type:"text",value:w,onChange:e=>k(e.target.value),onKeyDown:e=>{"Enter"===e.key&&N(),"Escape"===e.key&&S()},onBlur:()=>{w.trim()?N():S()},placeholder:"Task title...",className:"w-full text-sm font-medium text-[var(--foreground)] bg-transparent outline-none placeholder:text-[var(--muted-foreground)]"}),(0,t.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1",children:"Press Enter to create ยท Esc to cancel"})]}),n.map(r=>{let n=(e=>{if(!l)return"none";if(e.id===l)return"active";let t=a.find(e=>e.id===l);return t?.depends_on?.includes(e.id)?"blocking":e.depends_on?.includes(l)?"dependent":"dimmed"})(r);return(0,t.jsx)("div",{id:`task-${r.id}`,onClick:e=>{e.stopPropagation(),u(r.id===l?null:r.id),c?.(r)},children:(0,t.jsx)(d,{task:r,onClick:()=>c?.(r),onStatusChange:f?e=>f(r.id,{status:e}):void 0,onApprovalModeChange:f?e=>f(r.id,{approval_mode:e}):void 0,onStageChange:i&&p?e=>{e&&p(r,e)}:void 0,stageOptions:i?s:void 0,currentStage:e,dragDisabled:i,allTasks:a,relationship:n})},r.id)}),0===n.length&&!v&&(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 opacity-10",children:[(0,t.jsxs)("svg",{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",className:"mb-1",children:[(0,t.jsx)("line",{x1:"8",y1:"6",x2:"21",y2:"6"}),(0,t.jsx)("line",{x1:"8",y1:"12",x2:"21",y2:"12"}),(0,t.jsx)("line",{x1:"8",y1:"18",x2:"21",y2:"18"}),(0,t.jsx)("line",{x1:"3",y1:"6",x2:"3.01",y2:"6"}),(0,t.jsx)("line",{x1:"3",y1:"12",x2:"3.01",y2:"12"}),(0,t.jsx)("line",{x1:"3",y1:"18",x2:"3.01",y2:"18"})]}),(0,t.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-widest",children:"Available"})]})]})})}var x=e.i(247167),b=e.i(810605);let v="agx:floatingPanels";function y(){return void 0!==window.localStorage}function w(){if(!y())return{};try{let e=window.localStorage.getItem(v);if(!e)return{};let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch{return{}}}function k(e){return w()[e]??null}function j(e,t,r){return Math.min(Math.max(e,t),r)}function N(e,t,r){let n={width:window.innerWidth,height:window.innerHeight},a=Math.max(t,n.width-16),s=Math.max(r,n.height-16),o=j(e.width,t,a),i=j(e.height,r,s);return{x:j(e.x,8,Math.max(8,n.width-o-8)),y:j(e.y,8,Math.max(8,n.height-i-8)),width:o,height:i}}function S({panelId:e,titleBar:n,children:a,defaultBounds:s,minWidth:o=320,minHeight:i=220,className:l,bodyClassName:d}){let{isTouchLayout:u}=(0,p.useInputCapabilities)(),c=(0,r.useRef)(null),f=(0,r.useRef)(null),h=(0,r.useRef)(null),m=(0,r.useRef)(null),g=(0,r.useMemo)(()=>N(k(e)??s,o,i),[s,i,o,e]),[x,b]=(0,r.useState)(g),[j,C]=(0,r.useState)(!1),[E,_]=(0,r.useState)(!1);return m.current=x,(0,r.useEffect)(()=>{b(N(k(e)??s,o,i)),C(!0)},[s,i,o,e]),(0,r.useEffect)(()=>{if(j){let t=w();t[e]=x;if(y())try{window.localStorage.setItem(v,JSON.stringify(t))}catch{}}},[x,j,e]),(0,r.useEffect)(()=>{if(u)return;let e=()=>{b(e=>N(e,o,i))};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[u,i,o]),(0,r.useEffect)(()=>{if(u||!E)return;let e=e=>{let t=h.current;t&&(t.style.left=`${e.x}px`,t.style.top=`${e.y}px`,t.style.width=`${e.width}px`,t.style.height=`${e.height}px`)},t=t=>{if(c.current){let r=N({...m.current,x:c.current.originX+(t.clientX-c.current.startX),y:c.current.originY+(t.clientY-c.current.startY)},o,i);m.current=r,e(r);return}if(f.current){let r=N({...m.current,width:f.current.originWidth+(t.clientX-f.current.startX),height:f.current.originHeight+(t.clientY-f.current.startY)},o,i);m.current=r,e(r)}},r=()=>{m.current&&b(m.current),c.current=null,f.current=null,document.body.style.userSelect="",document.body.style.cursor="",_(!1)};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",r),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",r),document.body.style.userSelect="",document.body.style.cursor=""}},[E,u,i,o]),(0,t.jsx)("div",{ref:h,className:l,style:{position:"fixed",left:u?"50%":x.x,right:u?"auto":void 0,top:u?"max(16px, 8vh)":x.y,width:u?`min(${Math.max(x.width,o)}px, calc(100vw - 32px))`:x.width,height:u?`min(${Math.max(x.height,i)}px, calc(100vh - 48px))`:x.height,transform:u?"translateX(-50%)":void 0,zIndex:40},children:(0,t.jsxs)("div",{className:"flex h-full flex-col overflow-hidden rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl backdrop-blur-md",children:[(0,t.jsx)("div",{onMouseDown:e=>{if(u)return;let t=e.target;t?.closest("button, a, input, textarea, select, [data-no-panel-drag='true']")||(c.current={startX:e.clientX,startY:e.clientY,originX:x.x,originY:x.y},document.body.style.userSelect="none",document.body.style.cursor="grabbing",_(!0))},className:`${u?"cursor-default":"cursor-grab active:cursor-grabbing"} border-b border-[var(--border)] bg-[var(--card-bg)]/95`,children:n}),(0,t.jsx)("div",{className:d,children:a}),u?null:(0,t.jsx)("div",{onMouseDown:e=>{u||(e.preventDefault(),e.stopPropagation(),f.current={startX:e.clientX,startY:e.clientY,originWidth:x.width,originHeight:x.height},document.body.style.userSelect="none",document.body.style.cursor="nwse-resize",_(!0))},className:"absolute bottom-0 right-0 h-5 w-5 cursor-nwse-resize","aria-hidden":"true",children:(0,t.jsx)("div",{className:"absolute bottom-1.5 right-1.5 h-2.5 w-2.5 rounded-sm border-r-2 border-b-2 border-[var(--muted-foreground)]/50"})})]})})}let C=Number(x.default.env.NEXT_PUBLIC_AGX_MAX_WORKERS)||10;function E({tasks:e,processes:n=[],onTaskClick:a,onStop:s,onRetry:o,cancellingTaskId:i,panelId:l="now-running-panel"}){let{isTouchLayout:d}=(0,p.useInputCapabilities)(),u=(0,r.useMemo)(()=>n.filter(e=>"spawning"===e.state||"running"===e.state),[n]),c=(0,r.useMemo)(()=>e.filter(e=>"in_progress"===e.status),[e]),[f,h]=(0,r.useState)({});(0,r.useEffect)(()=>{let e=()=>{let e={};c.forEach(t=>{let r=new Date(t.updated_at).getTime(),n=Math.floor((Date.now()-r)/6e4);n<1?e[t.id]="< 1m":n<60?e[t.id]=`${n}m`:e[t.id]=`${Math.floor(n/60)}h`}),h(e)};e();let t=setInterval(e,b.UI_POLL_TASK_DURATION_MS);return()=>clearInterval(t)},[c]);let m=c.length/C,g=m>=.8,x=c.length>=C;return 0===c.length?null:(0,t.jsx)(S,{panelId:l,defaultBounds:{x:24,y:120,width:720,height:248},minWidth:420,minHeight:180,className:"animate-fade-in-down",bodyClassName:"flex-1 overflow-auto",titleBar:(0,t.jsxs)("div",{className:"flex items-center gap-4 p-3 sm:p-4 flex-wrap sm:flex-nowrap sm:min-w-max",children:[(0,t.jsxs)("div",{className:"flex flex-col justify-center pr-4 border-r border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-bold text-[var(--foreground)] whitespace-nowrap flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-green-500"})]}),"Now Running"]}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] uppercase tracking-wider font-semibold",children:[c.length," Active",u.length>0?` \xb7 ${u.length} process${u.length>1?"es":""}`:""]})]}),(0,t.jsxs)("div",{className:"hidden sm:flex flex-col justify-center pr-4 border-r border-[var(--border)] gap-1",title:`${c.length} of ${C} max workers in use. Single-writer SQLite architecture โ€” see docs/LIMITS.md`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("span",{className:`text-[10px] font-semibold uppercase tracking-wider ${x?"text-red-400":g?"text-amber-400":"text-[var(--muted-foreground)]"}`,children:[c.length,"/",C," workers"]}),g&&(0,t.jsxs)("svg",{className:`w-3 h-3 ${x?"text-red-400":"text-amber-400"}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),(0,t.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),(0,t.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]})]}),(0,t.jsx)("div",{className:"w-16 h-1.5 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:`h-full rounded-full transition-all ${x?"bg-red-400":g?"bg-amber-400":"bg-[var(--primary)]"}`,style:{width:`${Math.min(100*m,100)}%`}})})]})]}),children:(0,t.jsx)("div",{className:"max-w-full overflow-x-auto no-scrollbar p-3 sm:p-4",children:(0,t.jsx)("div",{className:"flex items-center gap-3 flex-wrap",children:c.map(e=>{let r=e.id===i;return(0,t.jsxs)("div",{onClick:()=>a?.(e),className:"group flex items-center gap-3 pl-3 pr-2 py-2 bg-[var(--background)] border border-[var(--border)] rounded-lg hover:border-[var(--primary)] transition-all cursor-pointer shadow-sm hover:shadow-md min-w-0 w-full sm:min-w-[280px] sm:w-auto",children:[(0,t.jsx)("div",{className:"w-6 h-6 sm:w-8 sm:h-8 rounded-full bg-[var(--muted)] flex items-center justify-center text-[10px] sm:text-xs font-bold border border-[var(--border)] shrink-0",children:e.provider?e.provider.substring(0,2).toUpperCase():"AG"}),(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs mb-0.5",children:[(0,t.jsxs)("span",{className:"font-semibold text-[var(--foreground)] truncate max-w-[120px]",children:[e.provider||"Agent"," ",e.model?`โ€ข ${e.model}`:""]}),(0,t.jsx)("span",{className:"font-mono text-[var(--muted-foreground)]",children:f[e.id]||"0m"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] truncate max-w-[140px]",children:e.title||e.content.substring(0,30)}),(0,t.jsx)("div",{className:"w-12 h-1 bg-[var(--muted)] rounded-full overflow-hidden",children:(0,t.jsx)("div",{className:"h-full bg-[var(--primary)] animate-pulse rounded-full",style:{width:`${40*Math.random()+30}%`}})})]})]}),(0,t.jsxs)("div",{className:`flex items-center gap-1 pl-2 border-l border-[var(--border)] transition-opacity ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:[(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),r||s?.(e.id)},disabled:r,className:`p-1 rounded transition-all ${r?"cursor-wait text-[var(--destructive)]/80 opacity-80":"hover:bg-[var(--destructive)]/10 text-[var(--muted-foreground)] hover:text-[var(--destructive)]"}`,title:r?"Stopping...":"Stop Task","data-no-panel-drag":"true",children:r?(0,t.jsx)("span",{className:"inline-flex h-3 w-3 rounded-full border border-[var(--destructive)] border-t-transparent animate-spin"}):(0,t.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,t.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}),(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),o?.(e.id)},className:"p-1 hover:bg-[var(--primary)]/10 text-[var(--muted-foreground)] hover:text-[var(--primary)] rounded",title:"Retry / Restart","data-no-panel-drag":"true",children:(0,t.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),(0,t.jsx)("path",{d:"M3 3v5h5"}),(0,t.jsx)("path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"}),(0,t.jsx)("path",{d:"M16 21h5v-5"})]})})]})]},e.id)})})})})}var _=e.i(745649);e.s(["default",0,function(){let{tasks:e,isLoading:s,updateTask:o,deleteTask:i,completeTaskStage:l,cancelWorkflow:d,refetch:u,cancellingTaskId:p}=(0,_.useTasks)({realtime:!0,orphan:!0}),{workflow:m,stages:g,stageConfig:x,isValidTransition:b,isLoading:v}={workflow:null,stages:(0,r.useMemo)(()=>[...c],[]),stageConfig:f,transitions:[],isLoading:!1,error:null,refetch:()=>{},isValidTransition:(0,r.useCallback)((e,t)=>{if(e===t)return!0;let r=c.indexOf(e),n=c.indexOf(t);return n<r||n===r+1},[])},[y,w]=(0,r.useState)(""),k=(0,r.useMemo)(()=>{if(!y.trim())return e;let t=y.toLowerCase();return e.filter(e=>(e.title||"").toLowerCase().includes(t)||(e.content||"").toLowerCase().includes(t))},[e,y]),j=(0,r.useCallback)(async e=>{},[]);return s||v?(0,t.jsx)(a.default,{children:(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading orphan tasks..."})]})})}):(0,t.jsx)(a.default,{children:(0,t.jsxs)("div",{className:"h-full flex flex-col p-4",children:[(0,t.jsxs)("div",{className:"flex-shrink-0 mb-4 space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-xl font-bold",children:"Orphan Tasks"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Tasks without a project assignment. Open a task to attach it to a project."})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(n.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{type:"text",placeholder:"Search orphan tasks",value:y,onChange:e=>w(e.target.value),className:"w-full pl-9 pr-4 py-2 bg-[var(--card-bg)] border border-[var(--border)] rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-[var(--primary)] focus:border-transparent transition-all"})]}),(0,t.jsx)(E,{tasks:k,onTaskClick:()=>{},onStop:async e=>{await d({taskId:e}),await u()},onRetry:async e=>{await l({taskId:e,decision:"not_done",final_result:"Manual retry requested.",explanation:"Manual retry requested."})},cancellingTaskId:p,panelId:"now-running:orphans"})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,t.jsx)(h,{tasks:k,onSelectTask:j,onTasksChange:()=>{},onTaskUpdate:async(e,t)=>{await o(e,t)},stages:g,stageConfig:x,isValidTransition:b})})]})})}],172695)}]);