@mndrk/agx 2.0.47 → 2.0.49

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 (486) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  3. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  4. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  5. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  13. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  26. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +13 -7
  41. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +3 -3
  59. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +2 -2
  100. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +14 -6
  102. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +13 -5
  104. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +3 -4
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +3 -4
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +3 -4
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +3 -4
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +3 -4
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +3 -4
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +4 -5
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +2 -2
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  175. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  176. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  177. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  179. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  180. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  183. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  184. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  185. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  188. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  189. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  191. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  194. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
  195. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  196. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  198. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/.next/server/app/folders/page.js.nft.json +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  203. package/cloud-runtime/standalone/.next/server/app/folders.html +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/folders.rsc +3 -3
  205. package/cloud-runtime/standalone/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  206. package/cloud-runtime/standalone/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  207. package/cloud-runtime/standalone/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  208. package/cloud-runtime/standalone/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  210. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  213. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  215. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  217. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  218. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  225. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  226. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  227. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  229. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  235. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  238. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  239. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  240. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  241. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  244. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  245. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  247. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  249. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  250. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  251. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  253. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  254. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  256. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  258. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  259. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  260. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  263. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  264. package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
  265. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  266. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  267. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  268. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  269. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  270. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  271. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  272. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  273. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  274. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  275. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  276. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  277. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  278. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  279. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  280. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  281. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  282. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  283. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  284. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  285. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  286. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  287. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  288. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  289. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  290. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  291. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  292. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__015d40a6._.js +67 -0
  293. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a300f072._.js → [root-of-the-server]__02a4a323._.js} +2 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__05dedbe1._.js +64 -0
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4ce74056._.js → [root-of-the-server]__05f0bfbf._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c22dd3a6._.js → [root-of-the-server]__08c82fe8._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3fae531a._.js → [root-of-the-server]__09e37b59._.js} +2 -2
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1a1f66b1._.js → [root-of-the-server]__0e83aabc._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__27da58f0._.js +67 -0
  300. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9ffa67b7._.js → [root-of-the-server]__2ae8b938._.js} +2 -2
  301. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2cfd21b8._.js +108 -0
  302. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__37844df7._.js +67 -0
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d9f2041b._.js → [root-of-the-server]__3a93931b._.js} +4 -4
  304. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f9f7f2df._.js → [root-of-the-server]__3c1403f2._.js} +2 -2
  305. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__143fdf69._.js → [root-of-the-server]__40e9e2e8._.js} +2 -2
  306. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42e602eb._.js +49 -0
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a7b2350e._.js → [root-of-the-server]__456840d0._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5c2848bb._.js +64 -0
  309. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__667c658f._.js +52 -0
  310. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a92b882._.js +49 -0
  311. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c9baa7c._.js +64 -0
  312. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c21747df._.js → [root-of-the-server]__719eddc2._.js} +2 -2
  313. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__36d15de5._.js → [root-of-the-server]__7ee3dfe1._.js} +2 -2
  314. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d324f8a1._.js → [root-of-the-server]__80964fad._.js} +2 -2
  315. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__bab85495._.js → [root-of-the-server]__862cf77d._.js} +2 -2
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a280fa63._.js → [root-of-the-server]__8b5b9860._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3170b7bf._.js → [root-of-the-server]__8d475640._.js} +2 -2
  318. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__958dded3._.js +49 -0
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ab655b9f._.js → [root-of-the-server]__96c424d5._.js} +2 -2
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5c55f67a._.js → [root-of-the-server]__976ebe46._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__179cb224._.js → [root-of-the-server]__a1cab8fe._.js} +2 -2
  322. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__20a2cb22._.js → [root-of-the-server]__a31dd756._.js} +9 -9
  323. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a3955224._.js → [root-of-the-server]__ad53dc3f._.js} +17 -17
  324. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ac6326b6._.js → [root-of-the-server]__b8eeb177._.js} +2 -2
  325. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fcfa3690._.js → [root-of-the-server]__c10e827d._.js} +2 -2
  326. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e58e9f91._.js → [root-of-the-server]__c11e0040._.js} +2 -2
  327. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c40b6f69._.js +49 -0
  328. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c7d3c7ab._.js +52 -0
  329. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__cdc52544._.js +49 -0
  330. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8cbd8c56._.js → [root-of-the-server]__d1c698b6._.js} +12 -12
  331. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9ea98bd._.js +52 -0
  332. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ef27f8cd._.js → [root-of-the-server]__df886e3c._.js} +2 -2
  333. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ca4987eb._.js → [root-of-the-server]__e0b6f424._.js} +2 -2
  334. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c8890cd6._.js → [root-of-the-server]__f43ecbc2._.js} +13 -13
  335. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f51c7b72._.js +5 -0
  336. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f662fd1e._.js +20 -0
  337. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__538b0bdd._.js → [root-of-the-server]__f961230c._.js} +2 -2
  338. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b627cb83._.js → [root-of-the-server]__feec5b54._.js} +2 -2
  339. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d16caed5._.js → [root-of-the-server]__ff6ce4b1._.js} +2 -2
  340. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9ce15e._.js +5 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/_26ffc857._.js +121 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/_4d07f8db._.js +1 -1
  343. package/cloud-runtime/standalone/.next/server/chunks/_66d0cf73._.js +6 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/_9b10087f._.js +3 -2
  345. package/cloud-runtime/standalone/.next/server/chunks/_a13c0bef._.js +121 -0
  346. package/cloud-runtime/standalone/.next/server/chunks/{lib_98ae187c._.js → lib_2cd3429c._.js} +2 -2
  347. package/cloud-runtime/standalone/.next/server/chunks/lib_a2a83df5._.js +55 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/lib_a658c9ef._.js +34 -0
  349. package/cloud-runtime/standalone/.next/server/chunks/lib_ba38ea08._.js +55 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/lib_orchestrator_chat-processor_ts_4c335719._.js +27 -29
  351. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +6 -102
  352. package/cloud-runtime/standalone/.next/server/chunks/src_graph_schedule-runner_ts_43a13c69._.js +13 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b2a2b86._.js +3 -0
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__32546242._.js +3 -0
  355. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ff9ead4._.js +3 -0
  356. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f2c3b7ab._.js +1 -1
  357. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f59f0dc7._.js +3 -0
  358. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d96bb3b5._.js → [root-of-the-server]__fbe1ab4a._.js} +2 -2
  359. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1e9b9b1e._.js +3 -0
  360. package/cloud-runtime/standalone/.next/server/chunks/ssr/_24fe6213._.js +3 -0
  361. package/cloud-runtime/standalone/.next/server/chunks/ssr/_36a0c486._.js +3 -0
  362. package/cloud-runtime/standalone/.next/server/chunks/ssr/_3b21d3b2._.js +95 -0
  363. package/cloud-runtime/standalone/.next/server/chunks/ssr/_3eeac8f9._.js +3 -0
  364. package/cloud-runtime/standalone/.next/server/chunks/ssr/_48db42b7._.js +3 -0
  365. package/cloud-runtime/standalone/.next/server/chunks/ssr/_59f30a73._.js +3 -0
  366. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7d3b0032._.js +3 -0
  367. package/cloud-runtime/standalone/.next/server/chunks/ssr/_916950b3._.js +3 -0
  368. package/cloud-runtime/standalone/.next/server/chunks/ssr/_b598ae8a._.js +3 -0
  369. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cc8c8302._.js +3 -0
  370. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d972a4e1._.js +3 -0
  371. package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd7bb6fb._.js +3 -0
  372. package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd9880fb._.js +3 -0
  373. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f02d786a._.js +3 -0
  374. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fd8cafe9._.js +3 -0
  375. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +15 -12
  376. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
  377. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  378. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_54bf563f._.js +3 -0
  379. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  380. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  381. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  382. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  383. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  384. package/cloud-runtime/standalone/.next/static/chunks/04c135686161dbb1.js +40 -0
  385. package/cloud-runtime/standalone/.next/static/chunks/0d63db0c39c0a3b2.js +1 -0
  386. package/cloud-runtime/standalone/.next/static/chunks/136ed07d84b14632.js +1 -0
  387. package/cloud-runtime/standalone/.next/static/chunks/18866ed04ed3a063.css +1 -0
  388. package/cloud-runtime/standalone/.next/static/chunks/{ccaf68956da192f8.js → 1bb38e61d891453c.js} +1 -1
  389. package/cloud-runtime/standalone/.next/static/chunks/2c7c8259c2b56bf5.js +1 -0
  390. package/cloud-runtime/standalone/.next/static/chunks/2da1f13d50dc4e54.js +1 -0
  391. package/cloud-runtime/standalone/.next/static/chunks/5545da2ad239c0b6.js +3 -0
  392. package/cloud-runtime/standalone/.next/static/chunks/{41c518743656a291.js → 5f33b52d582b0bb4.js} +1 -1
  393. package/cloud-runtime/standalone/.next/static/chunks/{97c11137cd6fc860.js → 64c2961edd3a3b13.js} +1 -1
  394. package/cloud-runtime/standalone/.next/static/chunks/{db131a0b6350e416.js → 692ce04abdbb3970.js} +1 -1
  395. package/cloud-runtime/standalone/.next/static/chunks/83be8569d298c6b0.js +1 -0
  396. package/cloud-runtime/standalone/.next/static/chunks/87b3afe828c8cc52.js +1 -0
  397. package/cloud-runtime/standalone/.next/static/chunks/{4343e7fe5bf5f34a.js → 9328740727c6456d.js} +1 -1
  398. package/cloud-runtime/standalone/.next/static/chunks/95d47e285ae9c031.js +1 -0
  399. package/cloud-runtime/standalone/.next/static/chunks/b9bf5d3ee92a1313.js +1 -0
  400. package/cloud-runtime/standalone/.next/static/chunks/ea35fb870141bcff.js +1 -0
  401. package/cloud-runtime/standalone/.next/static/chunks/f59722264449b61c.js +1 -0
  402. package/cloud-runtime/standalone/.next/static/chunks/f727d2c8f039511d.js +1 -0
  403. package/cloud-runtime/standalone/.next/static/chunks/{31fe4e36a00fd7b5.js → f8706212baa8ec67.js} +1 -1
  404. package/cloud-runtime/standalone/.next/static/chunks/fd823c9d1381335d.js +1 -0
  405. package/cloud-runtime/standalone/app/api/chat/route.ts +5 -163
  406. package/cloud-runtime/standalone/app/api/schedules/route.ts +11 -2
  407. package/cloud-runtime/standalone/app/automations/page.tsx +11 -1
  408. package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +11 -1
  409. package/cloud-runtime/standalone/components/LinearBoard.tsx +118 -21
  410. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +10 -13
  411. package/cloud-runtime/standalone/components/linear/RunScriptManager.tsx +356 -0
  412. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +35 -0
  413. package/cloud-runtime/standalone/hooks/useLinearRunScripts.ts +115 -0
  414. package/cloud-runtime/standalone/lib/chat/project-context.ts +169 -0
  415. package/cloud-runtime/standalone/lib/linear-client.ts +33 -3
  416. package/cloud-runtime/standalone/lib/linear-execution-prompt.ts +92 -15
  417. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +2 -0
  418. package/cloud-runtime/standalone/lib/orchestrator/schedule-runtime.ts +76 -0
  419. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +201 -16
  420. package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +128 -35
  421. package/cloud-runtime/standalone/state/automations/.state/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.json +8 -0
  422. package/cloud-runtime/standalone/state/automations/active/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.md +15 -0
  423. package/cloud-runtime/standalone/state/linearRunScripts.test.ts +99 -0
  424. package/cloud-runtime/standalone/state/linearRunScripts.ts +132 -0
  425. package/cloud-runtime/standalone/state/windowState.ts +21 -0
  426. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
  427. package/cloud-runtime/standalone/vault/agx/issues/ESO-327/design-doc.md +202 -0
  428. package/cloud-runtime/standalone/worker/index.js +34516 -1717
  429. package/cloud-runtime/standalone/worker/index.ts +3 -0
  430. package/package.json +1 -1
  431. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1154e5b3._.js +0 -67
  432. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__152b2000._.js +0 -61
  433. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__33865410._.js +0 -3
  434. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c53437e._.js +0 -110
  435. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6dbe939c._.js +0 -49
  436. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7012e83d._.js +0 -66
  437. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__76290829._.js +0 -67
  438. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ad6d6402._.js +0 -67
  439. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da645a5e._.js +0 -15
  440. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b3df16._.js +0 -3
  441. package/cloud-runtime/standalone/.next/server/chunks/_2a5aeb76._.js +0 -3
  442. package/cloud-runtime/standalone/.next/server/chunks/_4689976f._.js +0 -6
  443. package/cloud-runtime/standalone/.next/server/chunks/_682c9d81._.js +0 -6
  444. package/cloud-runtime/standalone/.next/server/chunks/_6e7f0ae4._.js +0 -6
  445. package/cloud-runtime/standalone/.next/server/chunks/_a32a5cdd._.js +0 -6
  446. package/cloud-runtime/standalone/.next/server/chunks/_af7bd752._.js +0 -3
  447. package/cloud-runtime/standalone/.next/server/chunks/_fe32a267._.js +0 -3
  448. package/cloud-runtime/standalone/.next/server/chunks/lib_2492d514._.js +0 -55
  449. package/cloud-runtime/standalone/.next/server/chunks/lib_3c080873._.js +0 -34
  450. package/cloud-runtime/standalone/.next/server/chunks/lib_9f439b27._.js +0 -70
  451. package/cloud-runtime/standalone/.next/server/chunks/src_graph_12d46a92._.js +0 -3
  452. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +0 -8
  453. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__21a9eaef._.js +0 -3
  454. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__69887882._.js +0 -3
  455. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ad05ace._.js +0 -3
  456. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__bb149a22._.js +0 -3
  457. package/cloud-runtime/standalone/.next/server/chunks/ssr/_11ce4c04._.js +0 -95
  458. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1d949e96._.js +0 -3
  459. package/cloud-runtime/standalone/.next/server/chunks/ssr/_32a156b6._.js +0 -3
  460. package/cloud-runtime/standalone/.next/server/chunks/ssr/_43c091dc._.js +0 -3
  461. package/cloud-runtime/standalone/.next/server/chunks/ssr/_45175f47._.js +0 -3
  462. package/cloud-runtime/standalone/.next/server/chunks/ssr/_4f0c544d._.js +0 -3
  463. package/cloud-runtime/standalone/.next/server/chunks/ssr/_69164b06._.js +0 -95
  464. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7f7a828a._.js +0 -3
  465. package/cloud-runtime/standalone/.next/server/chunks/ssr/_97f6a18e._.js +0 -3
  466. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a511a014._.js +0 -3
  467. package/cloud-runtime/standalone/.next/server/chunks/ssr/_c3a3a829._.js +0 -3
  468. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cee3cf86._.js +0 -95
  469. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e8bdedc5._.js +0 -3
  470. package/cloud-runtime/standalone/.next/static/chunks/14fff3c493ea9c54.js +0 -1
  471. package/cloud-runtime/standalone/.next/static/chunks/2a9c83f8211196e0.js +0 -1
  472. package/cloud-runtime/standalone/.next/static/chunks/5405540470146645.js +0 -1
  473. package/cloud-runtime/standalone/.next/static/chunks/69f2db4b9996b9c1.js +0 -37
  474. package/cloud-runtime/standalone/.next/static/chunks/8aeb69ceb497ad85.css +0 -1
  475. package/cloud-runtime/standalone/.next/static/chunks/a9da98f883ac833b.js +0 -1
  476. package/cloud-runtime/standalone/.next/static/chunks/b2127dc67c5ade9f.js +0 -1
  477. package/cloud-runtime/standalone/.next/static/chunks/baf5d39d089efb87.js +0 -1
  478. package/cloud-runtime/standalone/.next/static/chunks/bf2a2fafb710e63c.js +0 -1
  479. package/cloud-runtime/standalone/.next/static/chunks/c78969fde5798275.js +0 -1
  480. package/cloud-runtime/standalone/.next/static/chunks/d3dc6fadb96ab3a2.js +0 -1
  481. package/cloud-runtime/standalone/.next/static/chunks/fdadad2379039dce.js +0 -3
  482. package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +0 -8
  483. package/cloud-runtime/standalone/state/automations/active/24a6a5db-3b14-49c4-841f-29f10f015fbb.md +0 -17
  484. /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_buildManifest.js +0 -0
  485. /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_clientMiddlewareManifest.json +0 -0
  486. /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[292e3,a=>{"use strict";let b=(0,a.i(883706).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",()=>b],292e3)},862722,a=>{"use strict";let b=(0,a.i(883706).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",()=>b],862722)},641710,a=>{"use strict";let b=(0,a.i(883706).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",()=>b],641710)},883706,a=>{"use strict";var b=a.i(572131);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var e={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 f=(0,b.forwardRef)(({color:a="currentColor",size:d=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:d,height:d,stroke:a,strokeWidth:g?24*Number(f)/Number(d):f,className:c("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]])),g=(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:c(`lucide-${d(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=d(a),g};a.s(["default",()=>g],883706)},915618,a=>{"use strict";let b=(0,a.i(883706).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],915618)},501027,a=>{"use strict";let b=(0,a.i(883706).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);a.s(["Zap",()=>b],501027)},613749,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",()=>b],613749)},167453,a=>{"use strict";let b=(0,a.i(883706).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",()=>b],167453)},165385,a=>{"use strict";let b=(0,a.i(883706).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"}]]);a.s(["Settings2",()=>b],165385)},80386,a=>{"use strict";let b=(0,a.i(883706).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],80386)},325015,a=>{"use strict";let b=(0,a.i(883706).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"}]]);a.s(["Play",()=>b],325015)},104416,a=>{"use strict";let b=(0,a.i(883706).default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["ShieldCheck",()=>b],104416)}];
2
-
3
- //# sourceMappingURL=node_modules_lucide-react_dist_esm_e8bdedc5._.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,618566,(e,t,a)=>{t.exports=e.r(976562)},399438,e=>{"use strict";let t="agx-chat:threads";function a(){let e=globalThis.localStorage;if(!e)throw Error("LocalThreadAdapter requires a browser-like environment with `localStorage`.");return e}function r(){let e=a().getItem(t);if(!e)return{threads:{}};try{let t=JSON.parse(e);if(t&&"object"==typeof t&&t.threads&&"object"==typeof t.threads)return{threads:Object.fromEntries(Object.entries(t.threads).map(([e,t])=>{var a,r;return[e,(a=e,r=t,{id:a,title:r?.title,messages:Array.isArray(r?.messages)?[...r.messages]:[],createdAt:"number"==typeof r?.createdAt?r.createdAt:Date.now(),updatedAt:"number"==typeof r?.updatedAt?r.updatedAt:Date.now(),metadata:r?.metadata,status:r?.status,outcomeNote:r?.outcomeNote,projectId:"string"==typeof r?.projectId?r.projectId:"string"==typeof r?.teamId?r.teamId:r?.projectId===null||r?.teamId===null?null:void 0})]}))}}catch{}return{threads:{}}}function d(e){a().setItem(t,JSON.stringify(e))}function s(e){return{...e,messages:e.messages.map(e=>({...e})),metadata:e.metadata?{...e.metadata}:void 0}}let i=new class{async saveThread(e){let t=Date.now(),a=r(),i=a.threads[e.id],o=i?.createdAt??e.createdAt??t,l=e.updatedAt??t,n={id:e.id,title:e.title,messages:e.messages.map(e=>({...e})),metadata:e.metadata,createdAt:o,updatedAt:l,status:e.status,outcomeNote:e.outcomeNote,projectId:e.projectId??e.teamId};return a.threads[e.id]=n,d(a),s(n)}async loadThread(e){let t=r().threads[e];return t?s(t):null}async listThreads(e){let t=Object.values(r().threads),a=e?.order??"desc",d=[...t].sort((e,t)=>"asc"===a?e.updatedAt-t.updatedAt:t.updatedAt-e.updatedAt),i=Math.max(0,e?.offset??0),o=e?.limit,l="number"==typeof o&&o>=0?d.slice(i,i+o):d.slice(i);return{total:t.length,threads:l.map(s)}}async deleteThread(e){let t=r();t.threads[e]&&(delete t.threads[e],d(t))}};e.s(["threadService",0,{listThreads:async()=>[...(await i.listThreads({order:"desc"})).threads.filter(e=>!0!==e.metadata?.archived)].sort((e,t)=>t.updatedAt-e.updatedAt),async createThread(e){let t="string"==typeof e?.id?e.id.trim():"";if(t){let a=await i.loadThread(t);if(a){let t={...a.metadata??{},...e?.metadata??{},archived:!1,archivedAt:null};return i.saveThread({id:a.id,title:e?.title??a.title,messages:e?.messages?.length?e.messages:a.messages,metadata:t,createdAt:a.createdAt})}}let a={id:t||("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`thread-${Date.now()}-${Math.random().toString(16).slice(2)}`),messages:e?.messages?.length?e.messages:[],title:e?.title,metadata:e?.metadata};return i.saveThread(a)},async deleteThread(e){let t=e.trim();if(!t)return;let a=await i.loadThread(t);if(!a)return;let r={...a.metadata??{},archived:!0,archivedAt:Date.now()};await i.saveThread({id:a.id,title:a.title,messages:a.messages,metadata:r,createdAt:a.createdAt})},async renameThread(e,t){let a=e.trim(),r=t.trim();if(!a||!r)return null;let d=await i.loadThread(a);return d?(d.title?.trim()??"")===r?d:i.saveThread({id:d.id,title:r,messages:d.messages,metadata:d.metadata,createdAt:d.createdAt}):null},async updateThreadStatus(e,t){let a=await i.loadThread(e);return a?a.status===t?a:i.saveThread({id:a.id,title:a.title,messages:a.messages,metadata:a.metadata,createdAt:a.createdAt,status:t,outcomeNote:a.outcomeNote}):null},async updateThreadOutcomeNote(e,t){let a=await i.loadThread(e);return a?a.outcomeNote===t?a:i.saveThread({id:a.id,title:a.title,messages:a.messages,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:t}):null},async updateMessageThreadStatus(e,t,a){let r=await i.loadThread(e);if(!r)return null;let d=r.messages.map(e=>e.id===t?{...e,threadStatus:a}:e);return i.saveThread({id:r.id,title:r.title,messages:d,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:r.outcomeNote})},async updateMessageOutcomeNote(e,t,a){let r=await i.loadThread(e);if(!r)return null;let d=r.messages.map(e=>e.id===t?{...e,outcomeNote:a}:e);return i.saveThread({id:r.id,title:r.title,messages:d,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:r.outcomeNote})},async saveThreadMessages(e,t){let a=await i.loadThread(e);if(!a)return null;let r=a.title?.trim()||function(e){let t=e.find(e=>"user"===e.role)?.content?.trim();if(!t)return;let a=t.replace(/\s+/g," ");return a.length>60?`${a.slice(0,60).trim()}…`:a}(t);return function(e,t){if(e.length!==t.length)return!1;for(let a=0;a<e.length;a+=1){let r=e[a],d=t[a];if(r.id!==d.id||r.role!==d.role||r.participantId!==d.participantId||r.content!==d.content||r.timestamp!==d.timestamp)return!1}return!0}(a.messages,t)&&(a.title?.trim()||void 0)===r?a:i.saveThread({id:a.id,title:r,messages:t,metadata:a.metadata,createdAt:a.createdAt})}}],399438)},716625,e=>{"use strict";var t=e.i(271645),a=e.i(618566),r=e.i(399438);let d="agx-chat:last-thread";function s(){return void 0!==window.localStorage}function i(){if(s())try{window.localStorage.removeItem(d)}catch{}}let o=e=>[...e].sort((e,t)=>t.createdAt-e.createdAt);function l(e){let l=(0,a.useSearchParams)(),n=(0,t.useRef)(!0),[c,u]=(0,t.useState)([]),[h,m]=(0,t.useState)(null),[f,p]=(0,t.useState)(!0),[g,y]=(0,t.useState)(!0),[v,T]=(0,t.useState)(!1),[w,S]=(0,t.useState)(null),[A,j]=(0,t.useState)(null),b=(0,t.useRef)(!1),x=(0,t.useCallback)(e=>{m(e)},[]);(0,t.useEffect)(()=>(n.current=!0,()=>{n.current=!1}),[]),(0,t.useEffect)(()=>{let t=!1;return(async()=>{try{var a;let c,h=(e||l.get("thread")||"").trim()||null,f=await r.threadService.listThreads();if(h&&!f.some(e=>e.id===h)){let e=await r.threadService.createThread({id:h});f=o([...f.filter(t=>t.id!==e.id),e])}if(t||!n.current)return;u(f);let p=h||function(){if(!s())return null;try{return window.localStorage.getItem(d)}catch{return null}}(),{threadId:g,shouldClearSavedId:y,restoredFromStorage:v}=(a=f,c=a[0]?.id??null,p?a.some(e=>e.id===p)?{threadId:p,shouldClearSavedId:!1,restoredFromStorage:!0}:{threadId:c,shouldClearSavedId:!0,restoredFromStorage:!1}:{threadId:c,shouldClearSavedId:!1,restoredFromStorage:!1});y&&i(),b.current||(b.current=!0),v&&g?x(g):g?m(e=>e??g):m(null)}catch(e){console.error("Failed to load threads",e)}finally{n.current&&(p(!1),y(!1))}})(),()=>{t=!0}},[x,l,e]),(0,t.useEffect)(()=>{if(b.current)if(h){if(s())try{window.localStorage.setItem(d,h)}catch{}}else i()},[h]);let I=(0,t.useCallback)(async e=>{T(!0);try{let t=await r.threadService.createThread(e);if(!n.current)return t;return u(e=>o([...e.filter(e=>e.id!==t.id),t])),m(t.id),t}catch(e){throw console.error("Failed to create thread",e),e}finally{n.current&&T(!1)}},[]),N=(0,t.useCallback)(async e=>{if(e){S(e);try{if(await r.threadService.deleteThread(e),!n.current)return;let t=[];u(a=>t=o(a.filter(t=>t.id!==e))),m(a=>a===e?t[0]?.id??null:a)}catch(e){throw console.error("Failed to delete thread",e),e}finally{n.current&&S(null)}}},[]),C=(0,t.useCallback)(async(e,t)=>{let a=e.trim(),d=t.trim();if(a&&d){j(a);try{let e=await r.threadService.renameThread(a,d);if(!e||!n.current)return;u(t=>o(t.map(t=>t.id===e.id?e:t)))}catch(e){throw console.error("Failed to rename thread",e),e}finally{n.current&&j(e=>e===a?null:e)}}},[]),k=(0,t.useCallback)(async(e,t)=>{if(e)try{let a=await r.threadService.saveThreadMessages(e,t);if(!a||!n.current)return;u(e=>o(e.map(e=>e.id===a.id?a:e)))}catch(e){console.error("Failed to update thread messages",e)}},[]),P=(0,t.useCallback)(async(e,t)=>{if(e)try{let a=await r.threadService.updateThreadStatus(e,t);if(!a||!n.current)return;u(e=>o(e.map(e=>e.id===a.id?a:e)))}catch(e){console.error("Failed to update thread status",e)}},[]),F=(0,t.useCallback)(async(e,t)=>{if(e)try{let a=await r.threadService.updateThreadOutcomeNote(e,t);if(!a||!n.current)return;u(e=>o(e.map(e=>e.id===a.id?a:e)))}catch(e){console.error("Failed to update thread outcome note",e)}},[]),O=(0,t.useCallback)(async(e,t,a)=>{if(e&&t)try{let d=await r.threadService.updateMessageThreadStatus(e,t,a);if(!d||!n.current)return;u(e=>o(e.map(e=>e.id===d.id?d:e)))}catch(e){console.error("Failed to update message thread status",e)}},[]),M=(0,t.useCallback)(async(e,t,a)=>{if(e&&t)try{let d=await r.threadService.updateMessageOutcomeNote(e,t,a);if(!d||!n.current)return;u(e=>o(e.map(e=>e.id===d.id?d:e)))}catch(e){console.error("Failed to update message outcome note",e)}},[]),R=null!==h&&w===h;return{threads:c,activeThreadId:h,selectThread:x,createThread:I,deleteThread:N,isLoading:f,isRestoringActiveThread:g,isCreating:v,deletingThreadId:w,renamingThreadId:A,isDeletingActiveThread:R,updateThreadMessages:k,renameThread:C,updateThreadStatus:P,updateThreadOutcomeNote:F,updateMessageThreadStatus:O,updateMessageOutcomeNote:M}}e.s(["useThreadState",()=>l],716625)},466975,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(618566),d=e.i(268542),s=e.i(274049),i=e.i(716625),o=e.i(154238);function l({children:e,params:l}){let{slug:n}=(0,a.use)(l),c=(0,r.useRouter)(),u=(0,r.usePathname)(),{projects:h,isLoading:m,createProject:f,updateProject:p,deleteProject:g,addAgent:y,removeAgent:v}=(0,s.useProjectsWithAgents)(),{threads:T,isLoading:w,isCreating:S,deletingThreadId:A,renamingThreadId:j,isRestoringActiveThread:b,createThread:x,renameThread:I,deleteThread:N}=(0,i.useThreadState)(),[C,k]=(0,a.useState)([]),[P,F]=(0,a.useState)(!1);(0,a.useEffect)(()=>{F((0,o.loadWorkspaceSidebarVisible)())},[]),(0,a.useEffect)(()=>{fetch("/api/participants").then(e=>e.json()).then(e=>k(Array.isArray(e)?e:[])).catch(()=>k([]))},[]);let O=(0,a.useMemo)(()=>h.find(e=>e.slug===n)??null,[h,n]),M=(0,a.useMemo)(()=>{let e=u.match(/\/projects\/[^/]+\/thread\/([^/]+)/);return e?.[1]?decodeURIComponent(e[1]):O?.thread_ids[0]??null},[O?.thread_ids,u]),R=(0,a.useMemo)(()=>u.includes("/linear")?"linear":u.includes("/automations")?"automations":u.includes("/thread/")?"thread":u.includes("/knowledge")?"knowledge":"board",[u]);return m?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):O?(0,t.jsxs)("div",{className:"flex h-dvh min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,t.jsx)(d.WorkspaceSidebar,{threads:T,participants:C,activeThreadId:M,isLoading:w,isRestoringActiveThread:b,isCreating:S,deletingThreadId:A,renamingThreadId:j,onSelectThread:e=>c.push(`/projects/${n}/thread/${encodeURIComponent(e)}`),onCreateThread:x,onRenameThread:I,onDeleteThread:N,visible:P,onToggle:()=>{let e=!P;F(e),(0,o.persistWorkspaceSidebarVisible)(e)},projects:h,onCreateProject:f,onUpdateProject:p,onDeleteProject:g,onAddAgentToProject:y,onRemoveAgentFromProject:v,activeProjectId:O.id,activeProjectView:R,onUpdateParticipant:async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error("Failed to update agent");let a=await t.json();k(e=>e.map(e=>e.id===a.id?a:e))},onSelectProject:e=>{let t=h.find(t=>t.id===e);t&&c.push(`/projects/${t.slug}`)}}),(0,t.jsx)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:e})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,t.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,t.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",n,"” does not exist or you do not have access to it."]}),(0,t.jsx)("button",{onClick:()=>c.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}function n({children:e,params:r}){return(0,t.jsx)(a.Suspense,{fallback:(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,t.jsx)(l,{params:r,children:e})})}e.s(["default",()=>n])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531278,717521,e=>{"use strict";let t=(0,e.i(475254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],717521),e.s(["Loader2",()=>t],531278)},178583,e=>{"use strict";let t=(0,e.i(475254).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],178583)},63209,e=>{"use strict";let t=(0,e.i(475254).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],63209)},761911,e=>{"use strict";let t=(0,e.i(475254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],761911)},686311,e=>{"use strict";let t=(0,e.i(475254).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",()=>t],686311)},895214,e=>{e.n(e.i(391560))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,618566,(e,t,a)=>{t.exports=e.r(976562)},430520,e=>{"use strict";var t=e.i(271645);function a(e){return`threadId=${encodeURIComponent(e)}`}function r(e){return`workspaceId=${encodeURIComponent(e)}`}function s(e){let[s,i]=(0,t.useState)([]),[n,d]=(0,t.useState)([]),[l,c]=(0,t.useState)([]),o=(0,t.useRef)(e),u=(0,t.useRef)(e);o.current=e,u.current!==e&&(u.current=e,i([]),d([]),c([]));let h=(0,t.useCallback)(async e=>{let t=e?.trim()||o.current?.trim();if(!t){i([]),d([]);return}let s=a(t);try{let[e,a]=await Promise.all([fetch(`/api/history?${s}`),fetch(`/api/logs?${r(t)}`)]);if(o.current!==t)return;e.ok&&i(await e.json()),a.ok&&d(await a.json())}catch{}},[]),m=(0,t.useCallback)(async e=>{let t=e?.trim()||o.current?.trim();if(!t){i([]),d([]);return}let s=a(t);await Promise.all([fetch(`/api/history?${s}`,{method:"DELETE"}),fetch(`/api/logs?${r(t)}`,{method:"DELETE"})]),o.current===t&&(i([]),d([]))},[]),f=(0,t.useCallback)(async(e,t=10,a,r,s,n,d,l,u,h)=>{let m=a?.trim()||o.current?.trim();if(!m)return;let f=Date.now(),p=crypto.randomUUID(),y={id:p,role:"user",participantId:null,content:e,timestamp:f,rootMessageId:r||null,parentMessageId:r||null,depth:+!!r,...n&&n.length>0?{attachments:n}:{}};i(e=>[...e,y]);try{let a=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:m,prompt:e,promptPrefix:u||void 0,maxRounds:t,userMessageId:p,rootMessageId:r||void 0,attachmentIds:s?.length?s:void 0,activeParticipantIds:Array.isArray(d)?d:void 0,projectSlug:l?.trim()||void 0,routing:h})}),i=await a.json().catch(()=>null);a.ok&&i?.chatRunId&&c(e=>[{chatRunId:i.chatRunId,threadId:m,rootMessageId:r||p,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==i.chatRunId)])}catch{}return p},[]),p=(0,t.useCallback)(async()=>{let e=o.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),y=(0,t.useCallback)(async e=>{let t=o.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:s,setMessages:i,logs:n,sendMessage:f,loadHistory:h,clearHistory:m,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||o.current?.trim();t?(await fetch(`/api/logs?${r(t)}`,{method:"DELETE"}).catch(()=>{}),o.current===t&&d([])):d([])},[]),chatRuns:l,setChatRuns:c,stop:p,stopThread:y}}e.s(["useGroupChat",()=>s])},650030,e=>{"use strict";var t=e.i(271645);let a=new Set(["spawning","running"]);function r(e,r){let s=r?.intervalMs??1500,i=r?.idleIntervalMs??1e4,[n,d]=(0,t.useState)(new Set),[l,c]=(0,t.useState)([]),[o,u]=(0,t.useState)({}),[h,m]=(0,t.useState)([]),f=(0,t.useRef)(e);f.current=e;let p=(0,t.useRef)(r?.messages??[]);p.current=r?.messages??[];let y=(0,t.useRef)(r?.setMessages);y.current=r?.setMessages;let g=(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>g.current&&(g.current=t)}},[r?.messages]);let I=(0,t.useCallback)(async()=>{let e=f.current;if(!e){d(new Set),c([]),u({}),m([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){d(new Set),c([]),u({}),m([]);return}try{let s=e.workspaceId||e.threadId,i=s?`/api/history?threadId=${encodeURIComponent(s)}&since=${g.current}`:null,n=s?`/api/chat-runs?threadId=${encodeURIComponent(s)}&limit=20`:null,l=[fetch(t)];i&&l.push(fetch(i)),n&&l.push(fetch(n));let[o,h,I]=await Promise.all(l),w=f.current;if(w?.threadId!==e.threadId||w?.workspaceId!==e.workspaceId)return;if(o.ok){let e=await o.json();c(e);let t=new Set(e.filter(e=>a.has(e.state)).map(e=>e.agentId));d(t);let r={};for(let t of e){if(!a.has(t.state))continue;let e=p.current.find(e=>e.id===t.sinceMessageId),s=e?.rootMessageId??t.sinceMessageId;r[t.agentId]={content:"",rootMessageId:s}}u(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,a="string"==typeof e.threadId?e.threadId:null,r="string"==typeof e.status?e.status:null,s="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&a&&r&&("queued"===r||"running"===r||"awaiting_user"===r||"blocked"===r||"completed"===r||"failed"===r||"cancelled"===r)?{chatRunId:t,threadId:a,rootMessageId:s,status:r,optimistic:!1}:null}).filter(e=>!!e):[]);m(e)}if(h?.ok&&y.current){let e=await h.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t),y.current(t=>{let a=new Set(t.map(e=>e.id)),r=e.filter(e=>!a.has(e.id)),s=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===r.length?s:[...s,...r].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]),w=e?.threadId||e?.workspaceId||null,k=h.some(e=>"queued"===e.status||"running"===e.status),S=l.some(e=>a.has(e.state)),v=k||S?s:i;return(0,t.useEffect)(()=>{if(!w){d(new Set),c([]),u({}),m([]);return}I();let e=setInterval(I,v);return()=>clearInterval(e)},[w,v,I]),{activeAgents:n,processes:l,streaming:o,chatRuns:h,poll:I}}e.s(["useProcessPolling",()=>r])},16715,e=>{"use strict";let t=(0,e.i(475254).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],16715)},503116,e=>{"use strict";let t=(0,e.i(475254).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],503116)},829415,e=>{"use strict";function t(e){return e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim()}e.s(["stripMarkers",()=>t])},286476,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function a(e,a){let r=new Set,s=new Set;!function e(t,a){if(t)for(let r of t)a(r),e(r.content,a)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},a="string"==typeof t.id?t.id.trim():"",i="string"==typeof t.kind?t.kind:"agent";a&&"agent"===i&&(r.add(a),"parallel"===t.mode&&s.add(a))});let i=t(a);return{...i?{pinnedParticipantId:i}:{},mentionedParticipantIds:Array.from(r),parallelParticipantIds:Array.from(s)}}function r(e,a){let r=function(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let r of e){if("string"!=typeof r)continue;let e=r.trim();!e||t.has(e)||(t.add(e),a.push(e))}return a}(e),s=t(a);return s&&r.includes(s)?[s,...r.filter(e=>e!==s)]:r}e.s(["extractComposerRouting",()=>a,"orderParticipantIds",()=>r])},595468,e=>{"use strict";let t=(0,e.i(475254).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],595468)},373375,e=>{"use strict";let t=(0,e.i(475254).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>t],373375)},878894,e=>{"use strict";let t=(0,e.i(475254).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],878894)},114683,e=>{"use strict";let t=(0,e.i(475254).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],114683)},373884,e=>{"use strict";let t=(0,e.i(475254).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],373884)},531278,717521,e=>{"use strict";let t=(0,e.i(475254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],717521),e.s(["Loader2",()=>t],531278)},686311,e=>{"use strict";let t=(0,e.i(475254).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",()=>t],686311)},63209,e=>{"use strict";let t=(0,e.i(475254).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],63209)},178583,e=>{"use strict";let t=(0,e.i(475254).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],178583)},2651,e=>{"use strict";let t={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,hasCompletedFirstRun:!1,fileIgnorePatterns:[]};function a(e){return e&&"object"==typeof e?{threadSidebarVisible:"boolean"==typeof e.threadSidebarVisible?e.threadSidebarVisible:t.threadSidebarVisible,workspaceRoots:Array.isArray(e.workspaceRoots)?e.workspaceRoots.filter(e=>"string"==typeof e):t.workspaceRoots,homeSearchConsent:"boolean"==typeof e.homeSearchConsent?e.homeSearchConsent:t.homeSearchConsent,hasCompletedFirstRun:"boolean"==typeof e.hasCompletedFirstRun?e.hasCompletedFirstRun:t.hasCompletedFirstRun,fileIgnorePatterns:Array.isArray(e.fileIgnorePatterns)?e.fileIgnorePatterns.filter(e=>"string"==typeof e):t.fileIgnorePatterns}:t}let r="/api/userPreferences";function s(e){return e.json().then(e=>e&&"object"==typeof e?a(e.preferences??e):a(e)).catch(()=>a(null))}function i(e){return e.statusText||`Failed to reach ${r} (${e.status})`}async function n(){let e=await fetch(r,{cache:"no-store"});if(!e.ok)throw Error(i(e));return s(e)}async function d(e){let t=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:e})});if(!t.ok)throw Error(i(t));return s(t)}e.s(["fetchUserPreferences",()=>n,"updateUserPreferences",()=>d],2651)},761911,e=>{"use strict";let t=(0,e.i(475254).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],761911)},440160,e=>{"use strict";let t=(0,e.i(475254).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",()=>t],440160)},399438,e=>{"use strict";let t="agx-chat:threads";function a(){let e=globalThis.localStorage;if(!e)throw Error("LocalThreadAdapter requires a browser-like environment with `localStorage`.");return e}function r(){let e=a().getItem(t);if(!e)return{threads:{}};try{let t=JSON.parse(e);if(t&&"object"==typeof t&&t.threads&&"object"==typeof t.threads)return{threads:Object.fromEntries(Object.entries(t.threads).map(([e,t])=>{var a,r;return[e,(a=e,r=t,{id:a,title:r?.title,messages:Array.isArray(r?.messages)?[...r.messages]:[],createdAt:"number"==typeof r?.createdAt?r.createdAt:Date.now(),updatedAt:"number"==typeof r?.updatedAt?r.updatedAt:Date.now(),metadata:r?.metadata,status:r?.status,outcomeNote:r?.outcomeNote,projectId:"string"==typeof r?.projectId?r.projectId:"string"==typeof r?.teamId?r.teamId:r?.projectId===null||r?.teamId===null?null:void 0})]}))}}catch{}return{threads:{}}}function s(e){a().setItem(t,JSON.stringify(e))}function i(e){return{...e,messages:e.messages.map(e=>({...e})),metadata:e.metadata?{...e.metadata}:void 0}}let n=new class{async saveThread(e){let t=Date.now(),a=r(),n=a.threads[e.id],d=n?.createdAt??e.createdAt??t,l=e.updatedAt??t,c={id:e.id,title:e.title,messages:e.messages.map(e=>({...e})),metadata:e.metadata,createdAt:d,updatedAt:l,status:e.status,outcomeNote:e.outcomeNote,projectId:e.projectId??e.teamId};return a.threads[e.id]=c,s(a),i(c)}async loadThread(e){let t=r().threads[e];return t?i(t):null}async listThreads(e){let t=Object.values(r().threads),a=e?.order??"desc",s=[...t].sort((e,t)=>"asc"===a?e.updatedAt-t.updatedAt:t.updatedAt-e.updatedAt),n=Math.max(0,e?.offset??0),d=e?.limit,l="number"==typeof d&&d>=0?s.slice(n,n+d):s.slice(n);return{total:t.length,threads:l.map(i)}}async deleteThread(e){let t=r();t.threads[e]&&(delete t.threads[e],s(t))}};e.s(["threadService",0,{listThreads:async()=>[...(await n.listThreads({order:"desc"})).threads.filter(e=>!0!==e.metadata?.archived)].sort((e,t)=>t.updatedAt-e.updatedAt),async createThread(e){let t="string"==typeof e?.id?e.id.trim():"";if(t){let a=await n.loadThread(t);if(a){let t={...a.metadata??{},...e?.metadata??{},archived:!1,archivedAt:null};return n.saveThread({id:a.id,title:e?.title??a.title,messages:e?.messages?.length?e.messages:a.messages,metadata:t,createdAt:a.createdAt})}}let a={id:t||("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`thread-${Date.now()}-${Math.random().toString(16).slice(2)}`),messages:e?.messages?.length?e.messages:[],title:e?.title,metadata:e?.metadata};return n.saveThread(a)},async deleteThread(e){let t=e.trim();if(!t)return;let a=await n.loadThread(t);if(!a)return;let r={...a.metadata??{},archived:!0,archivedAt:Date.now()};await n.saveThread({id:a.id,title:a.title,messages:a.messages,metadata:r,createdAt:a.createdAt})},async renameThread(e,t){let a=e.trim(),r=t.trim();if(!a||!r)return null;let s=await n.loadThread(a);return s?(s.title?.trim()??"")===r?s:n.saveThread({id:s.id,title:r,messages:s.messages,metadata:s.metadata,createdAt:s.createdAt}):null},async updateThreadStatus(e,t){let a=await n.loadThread(e);return a?a.status===t?a:n.saveThread({id:a.id,title:a.title,messages:a.messages,metadata:a.metadata,createdAt:a.createdAt,status:t,outcomeNote:a.outcomeNote}):null},async updateThreadOutcomeNote(e,t){let a=await n.loadThread(e);return a?a.outcomeNote===t?a:n.saveThread({id:a.id,title:a.title,messages:a.messages,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:t}):null},async updateMessageThreadStatus(e,t,a){let r=await n.loadThread(e);if(!r)return null;let s=r.messages.map(e=>e.id===t?{...e,threadStatus:a}:e);return n.saveThread({id:r.id,title:r.title,messages:s,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:r.outcomeNote})},async updateMessageOutcomeNote(e,t,a){let r=await n.loadThread(e);if(!r)return null;let s=r.messages.map(e=>e.id===t?{...e,outcomeNote:a}:e);return n.saveThread({id:r.id,title:r.title,messages:s,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:r.outcomeNote})},async saveThreadMessages(e,t){let a=await n.loadThread(e);if(!a)return null;let r=a.title?.trim()||function(e){let t=e.find(e=>"user"===e.role)?.content?.trim();if(!t)return;let a=t.replace(/\s+/g," ");return a.length>60?`${a.slice(0,60).trim()}…`:a}(t);return function(e,t){if(e.length!==t.length)return!1;for(let a=0;a<e.length;a+=1){let r=e[a],s=t[a];if(r.id!==s.id||r.role!==s.role||r.participantId!==s.participantId||r.content!==s.content||r.timestamp!==s.timestamp)return!1}return!0}(a.messages,t)&&(a.title?.trim()||void 0)===r?a:n.saveThread({id:a.id,title:r,messages:t,metadata:a.metadata,createdAt:a.createdAt})}}],399438)},716625,e=>{"use strict";var t=e.i(271645),a=e.i(618566),r=e.i(399438);let s="agx-chat:last-thread";function i(){return void 0!==window.localStorage}function n(){if(i())try{window.localStorage.removeItem(s)}catch{}}let d=e=>[...e].sort((e,t)=>t.createdAt-e.createdAt);function l(e){let l=(0,a.useSearchParams)(),c=(0,t.useRef)(!0),[o,u]=(0,t.useState)([]),[h,m]=(0,t.useState)(null),[f,p]=(0,t.useState)(!0),[y,g]=(0,t.useState)(!0),[I,w]=(0,t.useState)(!1),[k,S]=(0,t.useState)(null),[v,A]=(0,t.useState)(null),T=(0,t.useRef)(!1),b=(0,t.useCallback)(e=>{m(e)},[]);(0,t.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]),(0,t.useEffect)(()=>{let t=!1;return(async()=>{try{var a;let o,h=(e||l.get("thread")||"").trim()||null,f=await r.threadService.listThreads();if(h&&!f.some(e=>e.id===h)){let e=await r.threadService.createThread({id:h});f=d([...f.filter(t=>t.id!==e.id),e])}if(t||!c.current)return;u(f);let p=h||function(){if(!i())return null;try{return window.localStorage.getItem(s)}catch{return null}}(),{threadId:y,shouldClearSavedId:g,restoredFromStorage:I}=(a=f,o=a[0]?.id??null,p?a.some(e=>e.id===p)?{threadId:p,shouldClearSavedId:!1,restoredFromStorage:!0}:{threadId:o,shouldClearSavedId:!0,restoredFromStorage:!1}:{threadId:o,shouldClearSavedId:!1,restoredFromStorage:!1});g&&n(),T.current||(T.current=!0),I&&y?b(y):y?m(e=>e??y):m(null)}catch(e){console.error("Failed to load threads",e)}finally{c.current&&(p(!1),g(!1))}})(),()=>{t=!0}},[b,l,e]),(0,t.useEffect)(()=>{if(T.current)if(h){if(i())try{window.localStorage.setItem(s,h)}catch{}}else n()},[h]);let C=(0,t.useCallback)(async e=>{w(!0);try{let t=await r.threadService.createThread(e);if(!c.current)return t;return u(e=>d([...e.filter(e=>e.id!==t.id),t])),m(t.id),t}catch(e){throw console.error("Failed to create thread",e),e}finally{c.current&&w(!1)}},[]),M=(0,t.useCallback)(async e=>{if(e){S(e);try{if(await r.threadService.deleteThread(e),!c.current)return;let t=[];u(a=>t=d(a.filter(t=>t.id!==e))),m(a=>a===e?t[0]?.id??null:a)}catch(e){throw console.error("Failed to delete thread",e),e}finally{c.current&&S(null)}}},[]),R=(0,t.useCallback)(async(e,t)=>{let a=e.trim(),s=t.trim();if(a&&s){A(a);try{let e=await r.threadService.renameThread(a,s);if(!e||!c.current)return;u(t=>d(t.map(t=>t.id===e.id?e:t)))}catch(e){throw console.error("Failed to rename thread",e),e}finally{c.current&&A(e=>e===a?null:e)}}},[]),j=(0,t.useCallback)(async(e,t)=>{if(e)try{let a=await r.threadService.saveThreadMessages(e,t);if(!a||!c.current)return;u(e=>d(e.map(e=>e.id===a.id?a:e)))}catch(e){console.error("Failed to update thread messages",e)}},[]),P=(0,t.useCallback)(async(e,t)=>{if(e)try{let a=await r.threadService.updateThreadStatus(e,t);if(!a||!c.current)return;u(e=>d(e.map(e=>e.id===a.id?a:e)))}catch(e){console.error("Failed to update thread status",e)}},[]),x=(0,t.useCallback)(async(e,t)=>{if(e)try{let a=await r.threadService.updateThreadOutcomeNote(e,t);if(!a||!c.current)return;u(e=>d(e.map(e=>e.id===a.id?a:e)))}catch(e){console.error("Failed to update thread outcome note",e)}},[]),E=(0,t.useCallback)(async(e,t,a)=>{if(e&&t)try{let s=await r.threadService.updateMessageThreadStatus(e,t,a);if(!s||!c.current)return;u(e=>d(e.map(e=>e.id===s.id?s:e)))}catch(e){console.error("Failed to update message thread status",e)}},[]),$=(0,t.useCallback)(async(e,t,a)=>{if(e&&t)try{let s=await r.threadService.updateMessageOutcomeNote(e,t,a);if(!s||!c.current)return;u(e=>d(e.map(e=>e.id===s.id?s:e)))}catch(e){console.error("Failed to update message outcome note",e)}},[]),N=null!==h&&k===h;return{threads:o,activeThreadId:h,selectThread:b,createThread:C,deleteThread:M,isLoading:f,isRestoringActiveThread:y,isCreating:I,deletingThreadId:k,renamingThreadId:v,isDeletingActiveThread:N,updateThreadMessages:j,renameThread:R,updateThreadStatus:P,updateThreadOutcomeNote:x,updateMessageThreadStatus:E,updateMessageOutcomeNote:$}}e.s(["useThreadState",()=>l],716625)}]);
@@ -1,37 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,515247,e=>{"use strict";var t=e.i(843476),r=e.i(271645),s=e.i(618566),a=e.i(274049),n=e.i(770703),i=e.i(643531),o=e.i(664659),l=e.i(503116);let d=(0,e.i(475254).default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var c=e.i(431343),u=e.i(16715),m=e.i(555436),x=e.i(239616),g=e.i(284614),p=e.i(430520),f=e.i(650030),h=e.i(514065),v=e.i(829415);let b="agx-linear:boardFilters",j={search:"",assigneeIds:[],statuses:[],teamId:"",cycleId:""};function y(){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 k(e){let t=String(e??"").trim().toLowerCase();return t?`${b}:${t}`:`${b}:global`}var N=e.i(286476);function I(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function S(e){var t,r;let s,a,n=e.issue.identifier.trim()||"TICKET-ID",i=e.issue.title.trim()||"Untitled ticket",o=String(e.issue.status??"").trim()||"Unknown",l=String(e.issue.assignee??"").trim()||"Unassigned",d=function(e){let t=String(e?.slug??"").trim();if(t)return I(t,"project");let r=String(e?.name??"").trim();return r?I(r,"project"):"project"}(e.project),c=String(e.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${d}`,u=String(e.runtime?.issueKnowledgePath??"").trim()||`${c}/issues/${n}/`,m=String(e.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${I(n,"ticket")}`,x=`LINEAR TASK EXECUTION
2
-
3
- You are an engineer working through a single Linear ticket. Work like a careful teammate: continue existing work when present, investigate before coding, present a plan before implementation, ask clarifying questions when requirements are ambiguous, and stop cleanly when blocked instead of guessing.
4
-
5
- INJECTED CONTEXT
6
- - Ticket: ${n}
7
- - Title: ${i}
8
- - Current status: ${o}
9
- - Current assignee: ${l}
10
- - Project: ${(t=e.project,s=String(t?.name??"").trim(),a=String(t?.slug??"").trim(),s&&a?`${s} (${a})`:s||a||"current project")}
11
- - Knowledge base root: ${c}
12
- - Issue knowledge path: ${u}
13
- - Suggested isolated worktree: ${m}
14
- - Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.
15
-
16
- SOURCE REPOSITORIES
17
- ${!(r=e.project?.repos)||0===r.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":r.map(e=>{let t=[e.name.trim()||"repository"],r=String(e.path??"").trim(),s=String(e.notes??"").trim();return r&&t.push(`path: ${r}`),s&&t.push(`notes: ${s}`),`- ${t.join(" | ")}`}).join("\n")}
18
-
19
- WORKFLOW
20
- 1. Read the full Linear issue and comment thread before acting. Use Linear MCP for issue details, comments, state changes, and follow-up.
21
- 2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.
22
- 3. If requirements are unclear, ask specific clarifying questions in Linear and stop.
23
- 4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.
24
- 5. If a reviewed plan already exists or the ticket is explicitly ready for implementation, implement in an isolated worktree or equivalent isolated workspace rather than a shared checkout.
25
- 6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.
26
- 7. Keep Linear accurate: comments, links, statuses, blockers, and PR references should match reality.
27
- 8. Keep the knowledge base current with what you learned, what changed, and what remains.
28
- 9. Work on exactly this ticket during this session.
29
-
30
- RULES
31
- - Use the injected project context instead of hardcoded repo-specific paths or conventions.
32
- - Use knowledge base terminology; the filesystem path above is the storage location.
33
- - If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.
34
- - Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them.
35
-
36
- `;return{prompt:`Work on this Linear ticket: ${n} - ${i}`,promptPrefix:x}}var C=e.i(778917),$=e.i(531278);let E=[{id:"claude",label:"Claude Code",icon:"🟣"},{id:"codex",label:"Codex",icon:"⚫"},{id:"gemini",label:"Gemini CLI",icon:"🔵"}];function R({connected:e,user:s,clis:a,mcpConfigured:n,onConnect:o,onConnectWithKey:l,onDisconnect:d,onConfigureMcp:c,onContinue:u}){let[m,x]=(0,r.useState)(""),[g,p]=(0,r.useState)(null),[f,h]=(0,r.useState)(!1),[v,b]=(0,r.useState)(null),[j,y]=(0,r.useState)(null),w=async()=>{if(!m.trim())return;h(!0),p(null);let e=await l(m.trim());h(!1),e.ok||p(e.error||"Failed to connect")},k=async e=>{b(e),y(null);let t=await c(e);b(null),t.ok||y(t.error||"Failed to configure")},N=E.filter(e=>a[e.id]).some(e=>n[e.id]);return(0,t.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,t.jsxs)("div",{className:"w-full max-w-md space-y-6 px-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[e&&(0,t.jsx)("div",{className:"flex h-4 w-4 items-center justify-center rounded-full bg-green-500/20",children:(0,t.jsx)(i.Check,{size:10,className:"text-green-500"})}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Connect to Linear"})]}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Connect your workspace to browse tickets and execute them with agents."}),(0,t.jsx)("div",{className:"mt-3 space-y-3",children:e?(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2",children:[(0,t.jsxs)("div",{className:"text-xs text-[var(--foreground)]",children:["Connected as"," ",(0,t.jsx)("span",{className:"font-medium",children:s?.name})]}),(0,t.jsx)("button",{type:"button",onClick:d,className:"text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Disconnect"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:o,className:"w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:"Connect with Linear"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"}),"or",(0,t.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)] block mb-1",children:"Personal API key"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{type:"password",value:m,onChange:e=>{x(e.target.value),p(null)},onKeyDown:e=>{"Enter"===e.key&&w()},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:w,disabled:!m.trim()||f,className:"rounded-md border border-[var(--card-border)] px-3 py-1.5 text-xs text-[var(--foreground)] transition-colors hover:bg-[var(--card-border)] disabled:opacity-40",children:f?"...":"Save"})]}),g&&(0,t.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:g}),(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)(C.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:[E.map(e=>{let r=a[e.id],s=n[e.id],o=v===e.id;return(0,t.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2 ${!r?"opacity-40":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)("span",{children:e.icon}),(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:e.label})]}),r?s?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-green-500",children:[(0,t.jsx)(i.Check,{size:10}),"Configured"]}):(0,t.jsx)("button",{type:"button",onClick:()=>k(e.id),disabled:o,className:"flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-[var(--foreground)] border border-[var(--card-border)] hover:bg-[var(--card-border)] transition-colors disabled:opacity-50",children:o?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)($.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},e.id)}),j&&(0,t.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:j})]}),(0,t.jsx)("button",{type:"button",onClick:u,className:"mt-4 w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:N?"Continue":"Skip for now"})]})]})})}let M=(0,n.default)(()=>e.A(711760).then(e=>e.Composer),{loadableGenerated:{modules:[895214]},ssr:!1});function L({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 P(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 T(e){switch(e){case"queued":return"queued";case"running":return"running";case"success":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return e}}let A={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},z={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-400",success:"bg-emerald-500/10 border-emerald-500/20 text-emerald-400",failed:"bg-red-500/10 border-red-500/20 text-red-400",cancelled:"bg-zinc-500/10 border-zinc-500/20 text-zinc-400"},U={queued:"bg-amber-400",running:"bg-yellow-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"};function O({label:e,value:r,options:s,activeClasses:a,onChange:n}){let i=r.trim().length>0;return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("select",{"aria-label":e,className:`max-w-[160px] appearance-none rounded-full border bg-transparent px-2.5 py-0.5 pr-6 text-[11px] font-medium outline-none transition-colors ${i?a:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:r,onChange:e=>n(e.target.value),children:s.map(r=>(0,t.jsx)("option",{value:r.value,children:r.label},`${e}-${r.value||"all"}`))}),(0,t.jsx)(o.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function F({label:e,values:s,options:a,activeClasses:n,onChange:l,emptyLabel:d}){let[c,u]=(0,r.useState)(!1),m=(0,r.useRef)(null),x=a.filter(e=>e.value&&s.includes(e.value)),g=x.length>0,p=(()=>{if(0===x.length||x.length===a.length)return d??e;if(1===x.length)return x[0]?.label??d??e;let t=e.toLowerCase();return`${x.length} ${t}${t.endsWith("s")?"es":"s"}`})();(0,r.useEffect)(()=>{if(!c)return;let e=e=>{m.current&&!m.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[c]);let f=(0,r.useCallback)(e=>{e?l(s.includes(e)?s.filter(t=>t!==e):[...s,e]):l([])},[l,s]);return(0,t.jsxs)("div",{className:"relative",ref:m,children:[(0,t.jsxs)("button",{type:"button","aria-label":e,"aria-haspopup":"listbox","aria-expanded":c,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${g?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:p}),(0,t.jsx)(o.ChevronDown,{size:12,className:`shrink-0 transition-transform ${c?"rotate-180":""}`})]}),c?(0,t.jsxs)("div",{role:"listbox","aria-label":`${e} options`,"aria-multiselectable":"true",className:"absolute left-0 top-full z-50 mt-1 min-w-[240px] overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-lg backdrop-blur-sm",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":!g,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!g?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>l([]),children:[(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!g?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:g?null:(0,t.jsx)(i.Check,{size:10})}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:d??e})]}),x.length>0?(0,t.jsx)("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Selected"}):null,a.filter(e=>e.value).map(r=>{let a=s.includes(r.value);return(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${a?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>f(r.value),children:[(0,t.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${a?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:a?(0,t.jsx)(i.Check,{size:10}):null}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:r.label})]},`${e}-${r.value}`)})]}):null]})}function q({issue:e,participants:s,projectId:a,projectSlug:n,createRun:i,updateRun:o,onRunCreated:l}){let d=s[0],c=(0,r.useRef)(crypto.randomUUID()),{messages:u,setMessages:m,sendMessage:x,chatRuns:b}=(0,p.useGroupChat)(c.current),{processes:j,streaming:y}=(0,f.useProcessPolling)({workspaceId:c.current},{messages:u,setMessages:m}),w=new Set(["queued","running","awaiting_user","blocked"]),k=b.some(e=>w.has(e.status))||j.some(e=>"spawning"===e.state||"running"===e.state)?b.some(e=>"queued"===e.status)?"queued":"working":"ready",N=(0,r.useMemo)(()=>new Map(s.map(e=>[e.id,e])),[s]),I=(0,r.useRef)(!1),C=(0,r.useCallback)(async(t,r,c,u,m,x,g)=>{if(I.current)return;I.current=!0;let p=(m?s.find(e=>e.id===m):null)??d;if(p)try{let{promptPrefix:r}=S({issue:{identifier:e.identifier,title:e.title,status:e.status,assignee:e.assignee},project:n?{slug:n}:null}),s=r+(x?`
37
- ${x}`:""),d=await i({projectId:a??null,projectSlug:n??null,issueId:e.id,issueIdentifier:e.identifier,issueTitle:e.title,issueStatus:e.status,issueAssignee:e.assignee??null,agentId:p.id,agentName:p.name}),c=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:t,promptPrefix:s,threadId:d.threadId,activeParticipantIds:[p.id],projectSlug:n??void 0,routing:g})}),u=await c.json().catch(()=>({}));if(!c.ok||!u.chatRunId||!u.userMessageId)throw Error(u.error||"Failed to start chat session");await o(d.id,{chatRunId:u.chatRunId,rootMessageId:u.userMessageId}),l(d.id)}catch(e){console.error("Failed to create chat session:",e),I.current=!1,e instanceof Error&&window.alert(e.message)}},[e,s,d,a,n,i,o,l]);return(0,t.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.title})]}),(0,t.jsx)("span",{className:"shrink-0 rounded-md border border-[var(--card-border)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:e.status})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===u.length?(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{className:"text-sm",children:"Chat about this ticket"}),(0,t.jsx)("span",{className:"text-xs",children:"Your message will start a new session"})]}):(0,t.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[u.map(e=>{let r=e.participantId?N.get(e.participantId):null,s=(0,v.stripMarkers)(e.content);return s.trim()?(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===e.role?(0,t.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,t.jsx)(g.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,t.jsx)("img",{src:P(e.participantId??"",r?.color),alt:r?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"user"===e.role?"You":r?.name??"Agent"}),(0,t.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,t.jsx)(h.Markdown,{content:s,isUser:"user"===e.role})})]})]},e.id):null}),Object.entries(y).map(([e])=>{let r=N.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:P(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)(M,{onSend:C,onStop:()=>{},participants:s,projectSlug:n??void 0,loading:"ready"!==k,commands:[],activityStatus:k,placeholder:`Ask about ${e.identifier}...`,initialPinnedParticipantId:d?.id})})]})}function D({run:e,participants:s}){let{messages:a,setMessages:n,sendMessage:i,loadHistory:o,stop:d}=(0,p.useGroupChat)(e.threadId),{processes:c,streaming:u,chatRuns:m}=(0,f.useProcessPolling)(e.rootMessageId?{workspaceId:e.threadId,threadId:e.rootMessageId}:{workspaceId:e.threadId},{messages:a,setMessages:n});(0,r.useEffect)(()=>{o()},[o,e.threadId]);let x=(0,r.useMemo)(()=>new Map(s.map(e=>[e.id,e])),[s]),b=new Set(["queued","running","awaiting_user","blocked"]),j=m.some(e=>b.has(e.status))||c.some(e=>"spawning"===e.state||"running"===e.state)?m.some(e=>"queued"===e.status)?"queued":"working":"ready",y=(0,r.useCallback)((t,r,a,n,o,l,d)=>{e.rootMessageId&&i(t,r,void 0,e.rootMessageId,a,void 0,(0,N.orderParticipantIds)(s.map(e=>e.id),o),e.projectSlug??void 0,l,d)},[s,e.projectSlug,e.rootMessageId,i]);return(0,t.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:e.issueIdentifier}),(0,t.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.issueTitle??""})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${z[e.status]}`,children:[(0,t.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${U[e.status]}`}),(0,t.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:T(e.status)})]}),null!=e.durationMs&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)(l.Clock,{size:14}),(0,t.jsxs)("span",{children:[(e.durationMs/1e3).toFixed(1),"s"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-2 py-1",children:[(0,t.jsx)("img",{src:P(e.agentId,x.get(e.agentId)?.color),alt:e.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,t.jsx)("span",{className:"pr-1 text-xs font-medium",children:e.agentName})]})]})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===a.length?(0,t.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===e.status||"running"===e.status?"Starting run...":"No thread messages yet."}):(0,t.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[a.map(r=>{let s=r.participantId?x.get(r.participantId):null,a=(0,v.stripMarkers)(r.content);if(!a.trim())return null;let n=r.participantId??e.agentId;return(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===r.role?(0,t.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,t.jsx)(g.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,t.jsx)("img",{src:P(n,s?.color),alt:s?.name??e.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"flex items-center gap-2",children:"user"===r.role?(0,t.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-sm font-semibold",style:{color:s?.color??"var(--foreground)"},children:s?.name??e.agentName}),(0,t.jsx)("span",{className:"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"})]})}),(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(r.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===r.role?(0,t.jsx)("div",{className:"w-fit max-w-[85%] rounded-xl rounded-tl-sm border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,t.jsx)(h.Markdown,{content:a,isUser:!0})}):(0,t.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,t.jsx)(h.Markdown,{content:a,isUser:!1})})]})]},r.id)}),Object.entries(u).filter(([,t])=>!e.rootMessageId||t.rootMessageId===e.rootMessageId).map(([r])=>{let s=x.get(r);return(0,t.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("img",{src:P(r,s?.color),alt:s?.name??e.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),s?.name??e.agentName," is thinking..."]},`stream-${r}`)})]})}),(0,t.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:e.rootMessageId?(0,t.jsx)(M,{onSend:y,onStop:d,participants:s,projectSlug:e.projectSlug??void 0,loading:"ready"!==j,commands:[],activityStatus:j,placeholder:"Steer this run...",initialPinnedParticipantId:e.agentId}):(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the run to start..."})})]})}function K({issue:e,selected:s,onSelect:a,onExecute:n}){let[o,l]=(0,r.useState)(!1),u=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{u.current&&window.clearTimeout(u.current)},[]);let m=(0,r.useCallback)(async t=>{if(t.stopPropagation(),e.url)try{await navigator.clipboard.writeText(e.url),l(!0),u.current&&window.clearTimeout(u.current),u.current=window.setTimeout(()=>{l(!1)},1500)}catch(e){console.error("Failed to copy Linear issue URL:",e),l(!1)}},[e.url]),x=A[e.status]??e.status.slice(0,6);return(0,t.jsxs)("div",{className:`group relative flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${s?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"}`,onClick:a,role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),a())},children:[s&&(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,t.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:e.identifier}),(0,t.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${s?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:e.title}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:x}),(0,t.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${s?"opacity-100":"opacity-0 group-hover:opacity-100"} ${e.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:e=>{m(e)},title:o?"Copied ticket URL":"Copy ticket URL","aria-label":o?"Copied ticket URL":"Copy ticket URL",disabled:!e.url,children:o?(0,t.jsx)(i.Check,{size:10,className:"text-emerald-400"}):(0,t.jsx)(d,{size:10})}),(0,t.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${s?"opacity-100":"opacity-0 group-hover:opacity-100"}`,onClick:t=>{t.stopPropagation(),n(e,t)},title:"Execute with agent",children:(0,t.jsx)(c.Play,{size:10,className:"ml-0.5"})})]})}function W({projectId:e,projectSlug:s,initialShowSettings:a}){let{connected:n,loading:i,user:o,clis:l,mcpConfigured:d,connect:g,connectWithKey:p,disconnect:f,configureMcp:h}=function(){let[e,t]=(0,r.useState)(!1),[s,a]=(0,r.useState)(!0),[n,i]=(0,r.useState)(null),[o,l]=(0,r.useState)({claude:!1,codex:!1,gemini:!1}),[d,c]=(0,r.useState)({}),u=(0,r.useRef)(null),m=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/linear/mcp-setup"),t=await e.json();c(t.configured??{})}catch{}},[]),x=(0,r.useCallback)(async()=>{try{let[e,r]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),s=await e.json(),a=await r.json();return t(s.connected),i(s.user??null),l(s.clis??{claude:!1,codex:!1,gemini:!1}),c(a.configured??{}),s.connected}catch{return t(!1),!1}finally{a(!1)}},[]);(0,r.useEffect)(()=>(x(),()=>{u.current&&clearInterval(u.current)}),[x]);let g=(0,r.useCallback)(()=>{window.open("/api/linear/auth","_blank","noopener"),u.current&&clearInterval(u.current),u.current=setInterval(async()=>{await x()&&u.current&&(clearInterval(u.current),u.current=null)},2e3)},[x]),p=(0,r.useCallback)(async e=>{try{let t=await fetch("/api/linear/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to save token"}}return await x(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[x]);return{connected:e,loading:s,user:n,clis:o,mcpConfigured:d,connect:g,connectWithKey:p,disconnect:(0,r.useCallback)(async()=>{await fetch("/api/linear/status",{method:"DELETE"}),t(!1),i(null)},[]),configureMcp:(0,r.useCallback)(async e=>{try{let t=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to configure MCP"}}return await m(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[m]),refresh:x}}(),[v,b]=(0,r.useState)(!1),[N,I]=(0,r.useState)(a??!1),[C,$]=(0,r.useState)(576),[E,M]=(0,r.useState)(224),[A,z]=(0,r.useState)(""),[U,W]=(0,r.useState)(""),[_,J]=(0,r.useState)(!1),[B,G]=(0,r.useState)([]),[X,Y]=(0,r.useState)([]),[H,V]=(0,r.useState)([]),[Q,Z]=(0,r.useState)([]),[ee,et]=(0,r.useState)([]),[er,es]=(0,r.useState)([]),[ea,en]=(0,r.useState)(""),[ei,eo]=(0,r.useState)(""),[el,ed]=(0,r.useState)(null),[ec,eu]=(0,r.useState)(null),[em,ex]=(0,r.useState)([]),[eg,ep]=(0,r.useState)(null),[ef,eh]=(0,r.useState)(null),ev=(0,r.useRef)(null),eb=(0,r.useRef)(!0),ej=(0,r.useCallback)(e=>{z(e),ev.current&&clearTimeout(ev.current),ev.current=setTimeout(()=>W(e),300)},[]);(0,r.useEffect)(()=>()=>{ev.current&&clearTimeout(ev.current)},[]),(0,r.useEffect)(()=>{let e=function(e){if(!y())return{...j};let t=window.localStorage.getItem(k(e));if(!t)return{...j};try{let e=JSON.parse(t);return{search:"string"==typeof e.search?e.search:j.search,assigneeIds:w(e.assigneeIds),statuses:w(e.statuses),teamId:"string"==typeof e.teamId?e.teamId:j.teamId,cycleId:"string"==typeof e.cycleId?e.cycleId:j.cycleId}}catch{return{...j}}}(s);eb.current=!0,z(e.search),W(e.search),Z(e.assigneeIds),et(e.statuses),eo(e.teamId),en(e.cycleId)},[s]),(0,r.useEffect)(()=>{if(eb.current){eb.current=!1;return}var e=A,t=Q,r=ee,a=ei,n=ea;if(y())try{window.localStorage.setItem(k(s),JSON.stringify({search:e,assigneeIds:w(t),statuses:w(r),teamId:String(a||""),cycleId:String(n||"")}))}catch{}},[s,A,Q,ee,ei,ea]),(0,r.useEffect)(()=>{if(!n)return;let e=!1;J(!1);let t=new URLSearchParams;return s&&t.set("projectSlug",s),fetch(t.size>0?`/api/linear/options?${t.toString()}`:"/api/linear/options").then(e=>e.json()).then(t=>{e||(G(Array.isArray(t.assignees)?t.assignees:[]),Y(Array.isArray(t.statuses)?t.statuses:[]),V(Array.isArray(t.teams)?t.teams:[]),es(Array.isArray(t.cycles)?t.cycles:[]),J(!0))}).catch(()=>{e||(G([]),Y([]),V([]),es([]),J(!0))}),()=>{e=!0}},[n,s]),(0,r.useEffect)(()=>{if(!_)return;let e=Q.filter(e=>B.some(t=>t.id===e));e.length!==Q.length&&Z(e)},[B,_,Q]),(0,r.useEffect)(()=>{if(!_)return;let e=ee.filter(e=>X.includes(e));e.length!==ee.length&&et(e)},[_,ee,X]),(0,r.useEffect)(()=>{if(_){if(H.length<=1&&ei)return void eo("");ei&&!H.some(e=>e.id===ei)&&eo("")}},[_,ei,H]),(0,r.useEffect)(()=>{_&&ea&&!er.some(e=>e.id===ea)&&en("")},[er,_,ea]);let{issues:ey,loading:ew,hasMore:ek,loadMore:eN,refresh:eI}=function(e,t=!0,s={}){let[a,n]=(0,r.useState)([]),[i,o]=(0,r.useState)(!0),[l,d]=(0,r.useState)(null),[c,u]=(0,r.useState)(!1),m=(0,r.useRef)(l),x=(0,r.useRef)(!1);m.current=l,(0,r.useEffect)(()=>{x.current=!1},[s.projectSlug]);let g=(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),r&&m.current&&t.set("cursor",m.current),s.projectSlug&&t.set("projectSlug",s.projectSlug),s.limit&&t.set("limit",String(s.limit)),a&&t.set("refresh","true");let i=await fetch(`/api/linear/issues?${t.toString()}`),o=await i.json(),l=o.issues??[];n(e=>r?[...e,...l]:l),d(o.pageInfo?.endCursor??null),u(o.pageInfo?.hasNextPage??!1),x.current=!0}catch{r||n([])}finally{o(!1)}}},[e.teamId,e.statuses,e.search,e.assigneeIds,e.assignedToMe,e.cycleId,t,s.projectSlug,s.limit]);return(0,r.useEffect)(()=>{d(null),g(!1,!x.current)},[g]),{issues:a,loading:i,hasMore:c,loadMore:(0,r.useCallback)(()=>g(!0),[g]),refresh:(0,r.useCallback)(()=>(d(null),g(!1,!0)),[g])}}((0,r.useMemo)(()=>({search:U||void 0,statuses:ee.length>0&&ee.length<X.length?ee:void 0,assigneeIds:Q.length>0?Q:void 0,teamId:ei||void 0,cycleId:ea||void 0}),[U,Q,ea,ee,ei,X.length]),n,{projectSlug:s}),{runs:eS,loading:eC,createRun:e$,updateRun:eE}=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},[])}}(el?.id,e??null),eR=eS.find(e=>e.id===ec)??null,eM=(0,r.useMemo)(()=>B.map(e=>({value:e.id,label:e.name})),[B]),eL=(0,r.useMemo)(()=>X.map(e=>({value:e,label:e})),[X]),eP=(0,r.useMemo)(()=>[{value:"",label:"Workspace"},...H.map(e=>({value:e.id,label:e.name}))],[H]),eT=(0,r.useMemo)(()=>[{value:"",label:"Cycle"},...er.map(e=>({value:e.id,label:e.name||`Cycle ${e.number}`}))],[er]),eA=eL.length>0,ez=eT.length>1,eU=eP.length>2;(0,r.useEffect)(()=>{0===ey.length?ed(null):ed(e=>e&&ey.some(t=>t.id===e.id)?ey.find(t=>t.id===e.id)??e:ey[0]??null)},[ey]),(0,r.useEffect)(()=>{0===eS.length?eu(null):ec&&eS.some(e=>e.id===ec)||eu(eS[0]?.id??null)},[eS,ec]),(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||ex(s);return}let a=await fetch(`/api/projects/${encodeURIComponent(e)}/agents`);if(!a.ok){t||ex(s);return}let n=await a.json(),i=Array.isArray(n.agents)?n.agents.map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[],o=new Map(i.map((e,t)=>[e,t])),l=s.filter(e=>o.has(e.id)).sort((e,t)=>(o.get(e.id)??Number.MAX_SAFE_INTEGER)-(o.get(t.id)??Number.MAX_SAFE_INTEGER));t||ex(l)}catch{t||ex([])}}(),()=>{t=!0}},[e]);let eO=(0,r.useCallback)((e,t)=>{if(0===em.length)return void window.alert("Add at least one agent to this project before running a Linear ticket.");if(1===em.length)return void eF(e,em[0]);let r=t?.currentTarget?.getBoundingClientRect();ep(e),eh(r?{top:r.bottom+4,left:r.left}:{top:200,left:200})},[em]),eF=(0,r.useCallback)(async(t,r)=>{ep(null),eh(null);let a=null;try{ed(t),a=await e$({projectId:e??null,projectSlug:s??null,issueId:t.id,issueIdentifier:t.identifier,issueTitle:t.title,issueStatus:t.status,issueAssignee:t.assignee,agentId:r.id,agentName:r.name}),eu(a.id);let{prompt:n,promptPrefix:i}=S({issue:{identifier:t.identifier,title:t.title,status:t.status,assignee:t.assignee},project:s?{slug:s}:null}),o=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:n,promptPrefix:i,threadId:a.threadId,activeParticipantIds:[r.id],projectSlug:s??void 0})}),l=await o.json().catch(()=>({}));if(!o.ok||!l.chatRunId||!l.userMessageId)throw Error(l.error||"Failed to start Linear run");await eE(a.id,{chatRunId:l.chatRunId,rootMessageId:l.userMessageId})}catch(e){console.error("Failed to execute Linear ticket:",e),a&&await eE(a.id,{status:"failed",error:e instanceof Error?e.message:String(e)}),e instanceof Error&&window.alert(e.message)}},[e$,e,s,eE]),eq=(0,r.useRef)(null);if((0,r.useEffect)(()=>{let e=eq.current;if(!e||!ek)return;let t=new IntersectionObserver(e=>{e[0]?.isIntersecting&&eN()},{threshold:.1});return t.observe(e),()=>t.disconnect()},[ek,eN]),i)return(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let eD=n&&!v&&!Object.values(d).some(Boolean);return!n||eD?(0,t.jsx)(R,{connected:n,user:o,clis:l,mcpConfigured:d,onConnect:g,onConnectWithKey:p,onDisconnect:f,onConfigureMcp:h,onContinue:()=>b(!0)}):(0,t.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:C},children:[(0,t.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,t.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,t.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]",children:[(0,t.jsx)(m.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:A,onChange:e=>ej(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 eI(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:ew,children:(0,t.jsx)(u.RefreshCw,{size:16,className:ew?"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:()=>I(!0),title:"Linear settings",children:(0,t.jsx)(x.Settings,{size:16})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[eA?(0,t.jsx)(F,{label:"Status",values:ee,options:eL,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:et,emptyLabel:"All statuses"}):null,(0,t.jsx)(F,{label:"Assignee",values:Q,options:eM,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:Z,emptyLabel:"All assignees"}),eU?(0,t.jsx)(O,{label:"Workspace",value:ei,options:eP,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:eo}):null,ez?(0,t.jsx)(O,{label:"Cycle",value:ea,options:eT,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:en}):null]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:ew&&0===ey.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===ey.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:[ey.map(e=>(0,t.jsx)(K,{issue:e,selected:el?.id===e.id,onSelect:()=>ed(e),onExecute:eO},e.id)),ek?(0,t.jsx)("div",{ref:eq,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:ew?"Loading...":"Load more"}):null]})})]}),(0,t.jsx)(L,{onResize:e=>$(t=>Math.max(180,Math.min(600,t+e)))}),(0,t.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:E},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,t.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Runs"}),el&&(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:e=>eO(el,e),title:"Run agent on selected ticket",children:[(0,t.jsx)(c.Play,{size:10}),(0,t.jsx)("span",{children:"Run now"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:el?eC&&0===eS.length?(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading runs..."}):0===eS.length?(0,t.jsxs)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:["No runs yet. Click ",(0,t.jsx)(c.Play,{size:10,className:"inline"})," to execute."]}):eS.map(e=>(0,t.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${eR?.id===e.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>eu(e.id),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,t.jsx)("span",{className:`font-medium ${{queued:"text-amber-500",running:"text-yellow-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"}[e.status]}`,children:T(e.status)}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(e.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,t.jsx)("div",{className:"mt-0.5 truncate text-[10px] text-[var(--muted-foreground)]",children:e.agentName}),null!=e.durationMs?(0,t.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(e.durationMs/1e3).toFixed(1),"s"]}):null]},e.id)):(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Select a ticket to see runs."})})]}),(0,t.jsx)(L,{onResize:e=>M(t=>Math.max(140,Math.min(500,t+e)))}),(0,t.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:eR?(0,t.jsx)(D,{run:eR,participants:em}):el&&em.length>0?(0,t.jsx)(q,{issue:el,participants:em,projectId:e,projectSlug:s,createRun:e$,updateRun:eE,onRunCreated:e=>eu(e)},el.id):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:el?"Add at least one agent to this project to chat.":"Select a ticket from the list."})}),N&&(0,t.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50",children:(0,t.jsxs)("div",{className:"relative w-full max-w-lg rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,t.jsx)("button",{type:"button",className:"absolute right-3 top-3 rounded p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>I(!1),children:"×"}),(0,t.jsx)("div",{className:"p-6",children:(0,t.jsx)(R,{connected:n,user:o,clis:l,mcpConfigured:d,onConnect:g,onConnectWithKey:p,onDisconnect:f,onConfigureMcp:h,onContinue:()=>I(!1)})})]})}),eg&&ef&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{ep(null),eh(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:ef.top,left:ef.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"}),em.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 eF(eg,e),children:[(0,t.jsx)("img",{src:P(e.id,e.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,t.jsxs)("span",{className:"flex flex-col",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),e.title?(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.title}):null]})]},e.id))]})]})]})}function _({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)(W,{projectId:l?.id,projectSlug:l?.slug??n,initialShowSettings:d})}e.s(["default",()=>_],515247)}]);