@mndrk/agx 2.0.55 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (762) hide show
  1. package/README.md +5 -0
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +3 -0
  4. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  6. package/cloud-runtime/standalone/apps/local/.next/required-server-files.json +5 -0
  7. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +23 -0
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js +4 -3
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +2 -2
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +2 -2
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js +5 -4
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/app-paths-manifest.json +3 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/build-manifest.json +9 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/server-reference-manifest.json +4 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js +13 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.map +5 -0
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.nft.json +1 -0
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route_client-reference-manifest.js +3 -0
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +1 -1
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +4 -4
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js +4 -4
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js +2 -2
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +2 -2
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +19 -8
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js +3 -3
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/app-paths-manifest.json +3 -0
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/build-manifest.json +9 -0
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/server-reference-manifest.json +4 -0
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +28 -0
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.map +5 -0
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -0
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route_client-reference-manifest.js +3 -0
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +9 -5
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +4 -4
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +16 -15
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js +5 -5
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +2 -2
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +9 -8
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +15 -15
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +15 -15
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js +1 -1
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js +1 -1
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js.nft.json +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  217. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +2 -2
  221. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
  222. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  226. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  227. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/app-paths-manifest.json +3 -0
  228. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +18 -0
  229. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +11 -0
  230. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/react-loadable-manifest.json +1 -0
  231. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/server-reference-manifest.json +4 -0
  232. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +14 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.map +5 -0
  234. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +3 -0
  236. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
  237. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  238. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  239. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  242. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +8 -2
  243. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js +1 -1
  244. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  245. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  246. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  248. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  254. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  255. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  257. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
  271. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  273. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
  274. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  275. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  276. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
  277. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  278. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  279. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
  280. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  282. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js +1 -1
  283. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  286. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +3 -3
  287. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  288. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  290. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  291. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  292. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  298. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  299. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  300. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  302. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  303. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  304. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js.nft.json +1 -1
  307. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  309. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  310. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  311. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  312. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  313. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  314. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  318. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  320. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  321. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  322. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  323. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  324. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  325. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  326. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  327. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js.nft.json +1 -1
  329. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  330. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  331. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  332. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  333. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  334. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  335. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  336. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  337. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  338. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
  339. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  340. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  341. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  342. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  343. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  344. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  346. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  347. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  348. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  349. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js +1 -1
  350. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  351. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  352. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +3 -0
  353. package/cloud-runtime/standalone/apps/local/.next/server/chunks/0jps_app_api_projects_[id]_objectives_[objectiveId]_worker_route_actions_0v8q3zz.js +3 -0
  354. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__0_au5u1._.js +3 -0
  355. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__13x93ar._.js +3 -0
  356. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0_10qfd._.js → [root-of-the-server]__0.6yz1u._.js} +2 -2
  357. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01lsgl~._.js +4 -0
  358. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0205scg._.js → [root-of-the-server]__03.9arn._.js} +2 -2
  359. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__01ol22y._.js → [root-of-the-server]__03h0gqp._.js} +2 -2
  360. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__094z9yf._.js → [root-of-the-server]__08jo91s._.js} +2 -2
  361. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09j9jpf._.js +3 -0
  362. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-nye63._.js → [root-of-the-server]__09jghbu._.js} +2 -2
  363. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0_7hiof._.js +43 -0
  364. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0.jam.l._.js → [root-of-the-server]__0a0cq38._.js} +2 -2
  365. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +54 -0
  366. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0c86535._.js +3 -0
  367. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0cj1krd._.js +3 -0
  368. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0aa-88e._.js → [root-of-the-server]__0dy3h2i._.js} +2 -2
  369. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0touqng._.js → [root-of-the-server]__0e8-2k_._.js} +2 -2
  370. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0enhv5p._.js +3 -0
  371. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f9byr.._.js +1 -1
  372. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7hc1-._.js +18 -0
  373. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +55 -0
  374. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__019q25b._.js → [root-of-the-server]__0gj~dap._.js} +7 -7
  375. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0e6cj2y._.js → [root-of-the-server]__0hc45jw._.js} +2 -2
  376. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0avz575._.js → [root-of-the-server]__0hkcw03._.js} +2 -2
  377. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hmw36u._.js +1 -1
  378. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +54 -0
  379. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0n.momw._.js +8 -0
  380. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tjo9we._.js +7 -0
  381. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-~t2br._.js → [root-of-the-server]__0v7jjvl._.js} +2 -2
  382. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +3 -0
  383. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__11nke7t._.js → [root-of-the-server]__0y3qxv1._.js} +2 -2
  384. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__10z8f9h._.js → [root-of-the-server]__0ygidxe._.js} +2 -2
  385. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +49 -0
  386. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zsv-tb._.js +8 -0
  387. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~nnfjr._.js +3 -0
  388. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~x4jbk._.js +3 -0
  389. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +229 -0
  390. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12qy318._.js +3 -0
  391. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_039.xxy._.js +1 -1
  392. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_06oeti1._.js +49 -0
  393. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0dyy7h.._.js +3 -0
  394. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gi7c9x._.js +2 -2
  395. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gr.psg._.js +1 -1
  396. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0sd8z0i._.js +21 -0
  397. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
  398. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~ah49q._.js +1 -1
  399. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_01kqgle._.js +11 -0
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +36 -0
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +397 -0
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_a~bj0._.js +25 -0
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +397 -0
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0bjdpen._.js +29 -0
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +41 -0
  407. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0h7wd0e._.js +29 -0
  408. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +397 -0
  409. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0ipg-p6._.js +3 -0
  410. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0npxy21._.js +11 -0
  411. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0uhfa93._.js +21 -0
  412. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_12wpldq._.js +25 -0
  413. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_worker_route_actions_116303i.js +3 -0
  414. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01hd2_5._.js +3 -0
  415. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +34 -0
  416. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0ik933l._.js +55 -0
  417. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0o1v.j4._.js +79 -0
  418. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0pxj122._.js +55 -0
  419. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_0_8ch28._.js +10 -0
  420. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +41 -0
  421. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0.xgxyl._.js +4 -0
  422. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0yu3--n._.js +4 -0
  423. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0ze8hzc._.js +4 -0
  424. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_0p0aod1._.js +5 -5
  425. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_linear-worker_ts_0ycjwem._.js +5 -0
  426. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  427. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  428. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/02dz_local__next-internal_server_app_projects_[slug]_folders_page_actions_03fg4j9.js +3 -0
  429. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +3 -0
  430. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0e2_v_.._.js +3 -0
  431. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0hvpc.y._.js +3 -0
  432. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0w3hl3p._.js +3 -0
  433. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +3 -0
  434. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__08d5c~o._.js +3 -0
  435. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0_n~ybp._.js +3 -0
  436. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +18 -0
  437. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0fl7_-o._.js +18 -0
  438. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0h~rb5r._.js +3 -0
  439. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0j9m72.._.js +18 -0
  440. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__02.r909._.js → [root-of-the-server]__0n5g8ml._.js} +2 -2
  441. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w.zmt6._.js +3 -0
  442. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +3 -0
  443. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__10h_7t0._.js +3 -0
  444. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +3 -0
  445. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0s~0ump._.js → _064h43p._.js} +2 -2
  446. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0742x_.._.js +3 -0
  447. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +3 -0
  448. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0fwy5tm._.js +7 -0
  449. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +3 -0
  450. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ufdu.z._.js +7 -0
  451. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0wk3skw._.js +3 -0
  452. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +25 -0
  453. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +3 -0
  454. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +1 -1
  455. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +3 -0
  456. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0h3mfm7._.js +3 -0
  457. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_075cq2j._.js → apps_local_0k4~c1x._.js} +2 -2
  458. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0n80y4_._.js → apps_local_0nvzo3y._.js} +2 -2
  459. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +3 -0
  460. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0v~bvwg._.js +3 -0
  461. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +1 -1
  462. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  463. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_execution-graph_page_tsx_0tn2sx9._.js +2 -2
  464. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_0ju618z._.js +3 -0
  465. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_graph_[taskId]_page_tsx_0bctfd-._.js +1 -1
  466. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
  467. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +2 -2
  468. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  469. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +3 -0
  470. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_06czvz-._.js +3 -0
  471. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +12 -12
  472. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_orphans_page_tsx_0sdv.11._.js +4 -4
  473. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  474. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +8 -0
  475. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TaskCard_tsx_0e35_z5._.js +6 -6
  476. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +3 -3
  477. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +6 -6
  478. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  479. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mk0s0o.js +4 -0
  480. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +2 -0
  481. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  482. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  483. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  484. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  485. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  486. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  487. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  488. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  489. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-_ukhpeg429c.js +16 -0
  490. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-olq~7zw3wjy.js +1 -0
  491. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0142ce0jj3j7r.js → 0-vo_x2cxmjm3.js} +1 -1
  492. package/cloud-runtime/standalone/apps/local/.next/static/chunks/003q-y3exxalk.js +1 -0
  493. package/cloud-runtime/standalone/apps/local/.next/static/chunks/00po4v2x~0x_z.js +1 -0
  494. package/cloud-runtime/standalone/apps/local/.next/static/chunks/013gtut17~fne.js +23 -0
  495. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +1 -0
  496. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +1 -0
  497. package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +16 -0
  498. package/cloud-runtime/standalone/apps/local/.next/static/chunks/07646a0h94826.js +3 -0
  499. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +1 -0
  500. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rm7v.1y6qcni.js → 0aewbg0i704w7.js} +1 -1
  501. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0px65ynyk3t1d.js → 0bchtyu6m.2yv.js} +7 -7
  502. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dnw31436wd~..js +5 -0
  503. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e307b-0c2jbx.js +1 -0
  504. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +1 -0
  505. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +1 -0
  506. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0fonouj2i9qnb.js +5 -0
  507. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gj98094p~zn4.js +1 -0
  508. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +37 -0
  509. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +1 -0
  510. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lgb.0~i1xvv-.js +1 -0
  511. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lkal3uvr6_~2.js +1 -0
  512. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mig99af4~uos.js +28 -0
  513. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +5 -0
  514. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +1 -0
  515. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +1 -0
  516. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0stvi5btlxl4m.js +20 -0
  517. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0h_bwlg~kk8lz.js → 0tt1oh112yv-l.js} +2 -2
  518. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +1 -0
  519. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +1 -0
  520. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wh6p5~ft5rma.js +5 -0
  521. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0x_pewz9npq~q.js +1 -0
  522. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +1 -0
  523. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +1 -0
  524. package/cloud-runtime/standalone/apps/local/.next/static/chunks/119v0-idpg-cv.js +16 -0
  525. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +20 -0
  526. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +1 -0
  527. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0826uh6nmsi5l.js → 1503vb7lb6.g1.js} +1 -1
  528. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +6 -0
  529. package/cloud-runtime/standalone/apps/local/.next/static/chunks/177-q0wwdi0qe.js +1 -0
  530. package/cloud-runtime/standalone/apps/local/agx-server.js +4055 -0
  531. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +40 -5
  532. package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +10 -0
  533. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +10 -2
  534. package/cloud-runtime/standalone/apps/local/app/api/linear/worker/route.ts +151 -0
  535. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +0 -8
  536. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +22 -27
  537. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +89 -0
  538. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +13 -0
  539. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +4 -4
  540. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +5 -3
  541. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +15 -5
  542. package/cloud-runtime/standalone/apps/local/app/globals.css +67 -5
  543. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/folders/page.tsx +25 -0
  544. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +19 -5
  545. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/objectives/[objectiveId]/page.tsx +7 -2
  546. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +236 -10
  547. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +9 -1
  548. package/cloud-runtime/standalone/apps/local/bundled-server.ts +45 -0
  549. package/cloud-runtime/standalone/apps/local/components/ActionToolbar.tsx +5 -2
  550. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +35 -3
  551. package/cloud-runtime/standalone/apps/local/components/ContextMenu.tsx +2 -2
  552. package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +70 -20
  553. package/cloud-runtime/standalone/apps/local/components/IconButton.tsx +10 -2
  554. package/cloud-runtime/standalone/apps/local/components/KanbanBoard.tsx +84 -3
  555. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +434 -36
  556. package/cloud-runtime/standalone/apps/local/components/LogTimeline.tsx +4 -1
  557. package/cloud-runtime/standalone/apps/local/components/NowRunningPanel.tsx +3 -1
  558. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +119 -6
  559. package/cloud-runtime/standalone/apps/local/components/SearchCombo.tsx +3 -3
  560. package/cloud-runtime/standalone/apps/local/components/SortableTaskCard.tsx +21 -3
  561. package/cloud-runtime/standalone/apps/local/components/StatusCircle.tsx +3 -3
  562. package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +51 -1
  563. package/cloud-runtime/standalone/apps/local/components/chat-ui/ChatContainer.tsx +15 -2
  564. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +3 -3
  565. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +76 -9
  566. package/cloud-runtime/standalone/apps/local/components/graph/ExecutionGraphPanel.tsx +4 -1
  567. package/cloud-runtime/standalone/apps/local/components/graph/GraphFirstView.tsx +6 -2
  568. package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +45 -25
  569. package/cloud-runtime/standalone/apps/local/components/graph/NodeInspector.tsx +9 -6
  570. package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +105 -0
  571. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +367 -0
  572. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +16 -16
  573. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +856 -0
  574. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveActivityTimeline.tsx +40 -32
  575. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +215 -0
  576. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +338 -91
  577. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +12 -6
  578. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +489 -467
  579. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSearchBar.tsx +4 -2
  580. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +213 -0
  581. package/cloud-runtime/standalone/apps/local/components/projects/ScheduledTasksSummaryCard.tsx +19 -19
  582. package/cloud-runtime/standalone/apps/local/components/projects/TeamsSummaryCard.tsx +10 -10
  583. package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +171 -56
  584. package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +12 -12
  585. package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectiveCard.tsx +13 -10
  586. package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectivesSection.tsx +7 -7
  587. package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathCard.tsx +2 -2
  588. package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +9 -9
  589. package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +4 -4
  590. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +242 -0
  591. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +2 -2
  592. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +1 -1
  593. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +288 -15
  594. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +233 -89
  595. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalSessionList.tsx +3 -1
  596. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +72 -21
  597. package/cloud-runtime/standalone/apps/local/hooks/useInputCapabilities.ts +74 -0
  598. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +16 -2
  599. package/cloud-runtime/standalone/apps/local/lib/app-config.ts +35 -0
  600. package/cloud-runtime/standalone/apps/local/lib/objective-health-history.ts +198 -0
  601. package/cloud-runtime/standalone/apps/local/lib/project-objective-context.ts +10 -0
  602. package/cloud-runtime/standalone/apps/local/lib/project-objectives.ts +0 -9
  603. package/cloud-runtime/standalone/apps/local/lib/pty-manager.ts +5 -1
  604. package/cloud-runtime/standalone/apps/local/lib/terminal-server.ts +182 -0
  605. package/cloud-runtime/standalone/apps/local/next.config.ts +2 -1
  606. package/cloud-runtime/standalone/apps/local/package.json +2 -2
  607. package/cloud-runtime/standalone/apps/local/playwright.config.ts +8 -0
  608. package/cloud-runtime/standalone/apps/local/server.js +1 -1
  609. package/cloud-runtime/standalone/apps/local/server.ts +14 -158
  610. package/cloud-runtime/standalone/apps/local/skills-lock.json +20 -0
  611. package/cloud-runtime/standalone/apps/local/src/automations/adapters.ts +5 -0
  612. package/cloud-runtime/standalone/apps/local/src/automations/types.ts +5 -0
  613. package/cloud-runtime/standalone/apps/local/src/automations/validation.ts +12 -5
  614. package/cloud-runtime/standalone/apps/local/src/graph/types.ts +2 -0
  615. package/cloud-runtime/standalone/apps/local/src/objectives/parser.ts +0 -2
  616. package/cloud-runtime/standalone/apps/local/src/objectives/serializer.ts +0 -2
  617. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/cron.ts +11 -0
  618. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-constants.ts +38 -0
  619. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-job.ts +47 -0
  620. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker.ts +482 -0
  621. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker-job.ts +47 -0
  622. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +511 -0
  623. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +239 -368
  624. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +19 -4
  625. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +32 -8
  626. package/cloud-runtime/standalone/apps/local/state/terminalTabs.ts +182 -106
  627. package/cloud-runtime/standalone/apps/local/state/windowState.ts +11 -0
  628. package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +65 -0
  629. package/cloud-runtime/standalone/apps/local/worker/index.js +9 -14
  630. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  631. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  632. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  633. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  634. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  635. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  636. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  637. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
  638. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  639. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  640. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
  641. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
  642. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
  643. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
  644. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
  645. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
  646. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  647. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  648. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  649. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
  650. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  651. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  652. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
  653. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
  654. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
  655. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
  656. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
  657. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
  658. package/lib/cli/daemon.js +13 -2
  659. package/lib/cli/onboarding.js +5 -6
  660. package/lib/cli/runCli.js +1 -1
  661. package/lib/cloud/client.js +1 -1
  662. package/lib/commands/chat.js +37 -11
  663. package/lib/commands/daemonBoard.js +19 -13
  664. package/lib/config/cloudConfig.js +1 -1
  665. package/lib/orchestrator/httpClient.js +1 -1
  666. package/lib/prompts/templates.js +8 -9
  667. package/package.json +1 -1
  668. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-0479y._.js +0 -54
  669. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__088h0r2._.js +0 -3
  670. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08oj_ky._.js +0 -49
  671. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08y2lkj._.js +0 -3
  672. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +0 -3
  673. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gtv0rq._.js +0 -8
  674. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gvjvx7._.js +0 -237
  675. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ksbs9p._.js +0 -3
  676. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0o315az._.js +0 -3
  677. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0pz~m67._.js +0 -3
  678. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q93mk3._.js +0 -7
  679. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0t2jk2r._.js +0 -18
  680. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vhcrdv._.js +0 -229
  681. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11s20j6._.js +0 -3
  682. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12xhcor._.js +0 -54
  683. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_01rag2f._.js +0 -49
  684. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_03y4xss._.js +0 -21
  685. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0cm4i3i._.js +0 -3
  686. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0ijzgnb._.js +0 -3
  687. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_03q7_.q._.js +0 -21
  688. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0m3e2d~._.js +0 -30
  689. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0r-oiga._.js +0 -30
  690. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_00cwfvi._.js +0 -34
  691. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0hx7xyz._.js +0 -34
  692. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0rqcat4._.js +0 -55
  693. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0sc_lek._.js +0 -79
  694. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_135ddsu._.js +0 -55
  695. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_store_ts_0h.2qy9._.js +0 -43
  696. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +0 -474
  697. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0xxf2a0.js +0 -3
  698. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0xd_mxu._.js +0 -3
  699. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__044xm0q._.js +0 -3
  700. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__066ay_e._.js +0 -3
  701. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__09smg3p._.js +0 -18
  702. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0bf346q._.js +0 -3
  703. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0hd2vo4._.js +0 -18
  704. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0iix1sf._.js +0 -3
  705. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r54zr9._.js +0 -3
  706. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0s8z2_c._.js +0 -18
  707. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0wq3ukc._.js +0 -3
  708. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03-mlx0._.js +0 -7
  709. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03rf_sb._.js +0 -3
  710. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_09b42z9._.js +0 -3
  711. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ag3.tl._.js +0 -7
  712. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0dh_hx0._.js +0 -3
  713. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0h8cbsi._.js +0 -3
  714. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0i1ffhz._.js +0 -3
  715. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ndrb_0._.js +0 -8
  716. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0nlki7b._.js +0 -3
  717. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ut3k~7._.js +0 -3
  718. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0vibfch._.js +0 -3
  719. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +0 -8
  720. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_q01av._.js +0 -3
  721. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0eh.4j7._.js +0 -3
  722. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0qaowqy._.js +0 -3
  723. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0s0iy2_._.js +0 -3
  724. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0zr-_na._.js +0 -3
  725. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_10qsqky._.js +0 -3
  726. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.a4-dh~x9sa3.js +0 -6
  727. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.bv3h68wo33z.js +0 -1
  728. package/cloud-runtime/standalone/apps/local/.next/static/chunks/016.x9zt9~rsh.js +0 -16
  729. package/cloud-runtime/standalone/apps/local/.next/static/chunks/027-6dwgpb0cy.js +0 -1
  730. package/cloud-runtime/standalone/apps/local/.next/static/chunks/031720jijg_th.js +0 -1
  731. package/cloud-runtime/standalone/apps/local/.next/static/chunks/03m1xs0rztynh.js +0 -16
  732. package/cloud-runtime/standalone/apps/local/.next/static/chunks/051-7k0nnm-vm.js +0 -1
  733. package/cloud-runtime/standalone/apps/local/.next/static/chunks/07o~9mm~xds_b.js +0 -1
  734. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08zgoptetnxjj.css +0 -1
  735. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09-_2lcshmjl5.js +0 -1
  736. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09_yj-9nfh48m.js +0 -1
  737. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09c7ssmgohk7l.js +0 -1
  738. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0awbe2r3qazge.css +0 -1
  739. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dro-bz6f72z0.js +0 -1
  740. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gbunx8z.~i4x.js +0 -5
  741. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ge81r~ap.u7n.js +0 -28
  742. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ghg5160qeazw.js +0 -5
  743. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gl_8hdxl5qnd.js +0 -37
  744. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0g~v8p6_pc46-.js +0 -1
  745. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jb4f8425s.-2.js +0 -1
  746. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kukkarp4un0o.js +0 -1
  747. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0m.2b-cekea8b.js +0 -1
  748. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0o0hwfzwwty4b.js +0 -6
  749. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ov5lu0tz2o2e.js +0 -1
  750. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pt8_y9asrg~7.js +0 -1
  751. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wyg4lymaq0hg.js +0 -3
  752. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xl~1ux2f~rcu.js +0 -1
  753. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y7-eze-w7~b4.js +0 -5
  754. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y8e--tok1214.js +0 -5
  755. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0yy~0bgsz~o6-.js +0 -1
  756. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~apd0q5_i88z.js +0 -16
  757. package/cloud-runtime/standalone/apps/local/.next/static/chunks/100xrwo-45nrg.js +0 -20
  758. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14h3qxwuo~1q9.js +0 -20
  759. package/cloud-runtime/standalone/apps/local/.next/static/chunks/17oesq5eds3xi.js +0 -1
  760. /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_buildManifest.js +0 -0
  761. /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_clientMiddlewareManifest.js +0 -0
  762. /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_ssgManifest.js +0 -0
@@ -1,474 +0,0 @@
1
- module.exports=[845248,e=>{"use strict";var t=e.i(522734),i=e.i(814747),r=e.i(446786),a=e.i(254799),n=e.i(233405),s=e.i(224361),o=e.i(796283);e.i(219233);var l=e.i(862411),d=e.i(356942),u=e.i(774553),c=e.i(923715),p=e.i(214870),m=e.i(821083);let f=(0,s.promisify)(n.execFile);function h(e){let t=e.trim().split(/\s+/)[0]??"";return(0,i.basename)(t)}async function g(e){let t=new Set;if(0===e.length)return t;let i=e.filter(({pid:e})=>{try{return process.kill(e,0),!0}catch{return!1}});if(0===i.length)return t;let r=i.map(e=>e.pid).join(",");try{let{stdout:e}=await f("ps",["-p",r,"-o","pid=,command="],{timeout:o.PS_COMMAND_TIMEOUT_MS}),a=new Map;for(let t of e.split("\n")){let e=t.trim();if(!e)continue;let i=e.match(/^(\d+)\s+(.+)$/);i&&a.set(Number(i[1]),h(i[2]))}for(let{pid:e,expectedCommand:r}of i){let i=a.get(e);i&&i===h(r)&&t.add(e)}}catch{}return t}function _(e){let t="objective_linear_ticket"===e.execution_mode?"objective_linear_ticket":m.DEFAULT_PROMPT_JOB_EXECUTION_MODE;return{id:e.id,name:e.name,prompt:e.prompt,agentId:e.agent_id||"",projectId:e.project_id||"",objectiveId:e.objective_id||null,objectiveKey:e.objective_key||null,provider:e.provider||e.cli||"claude",model:e.model||"",cliArgs:e.cli_args||"",cronExpr:e.cron_expr,cadence:e.cadence||e.cron_expr||"",state:e.state,overlapPolicy:e.overlap_policy,catchUpPolicy:e.catch_up_policy||"fire_once",cancelCheckSec:e.cancel_check_sec,executionMode:t,condition:e.condition||"",nextRunAt:e.next_run_at,lastRunAt:e.last_run_at,lastOutcome:e.last_outcome,createdAt:e.created_at,updatedAt:e.updated_at}}function y(e){return{id:e.id,jobId:e.job_id,status:e.status,output:e.output,error:e.error,durationMs:e.duration_ms,startedAt:e.started_at,finishedAt:e.finished_at,cancelledAt:e.cancelled_at,hostPid:e.host_pid,hostCommand:e.host_command,createdAt:e.created_at}}function b(e){return Object.values(e).some(e=>void 0!==e)}function E(e){let t=e.cadence?.trim(),i=e.cronExpr?.trim();if(t){if(i)return{cadence:t,cronExpr:i,legacyIntervalMs:e.checkEveryMs??l.DEFAULT_CONDITION_CHECK_EVERY_MS};let r=(0,p.parseCadence)(t);return r?{cadence:r.cadence,cronExpr:r.cronExpr,legacyIntervalMs:e.checkEveryMs??l.DEFAULT_CONDITION_CHECK_EVERY_MS}:null}if("condition"===e.triggerType){let t=(0,p.normalizeLegacyConditionSchedule)(e.checkEveryMs??l.DEFAULT_CONDITION_CHECK_EVERY_MS);return{cadence:t.cadence,cronExpr:t.cronExpr,legacyIntervalMs:t.intervalMs}}return null}class j{db;automationRepository;constructor(e,t){this.db=e,this.automationRepository=t}getAutomationRepo(){return this.automationRepository??=(0,u.getAutomationRepository)(),this.automationRepository}createJob(e){let t=E(e);if(!t)throw Error("Prompt jobs require a valid cadence or convertible legacy condition interval.");if(!(0,u.isAutomationFrontmatterEnabled)())return this.createLegacyJob(e,t);let i=(0,a.randomUUID)(),r=new Date().toISOString(),n=this.getAutomationRepo().createAutomation({id:i,name:e.name,...e.projectId?{projectId:e.projectId}:{},state:"active",trigger:{type:"scheduled",cadence:t.cadence,cronExpr:t.cronExpr},execution:{overlapPolicy:e.overlapPolicy,catchUpPolicy:e.catchUpPolicy,cancelCheckSec:e.cancelCheckSec,...e.condition?.trim()?{condition:e.condition.trim()}:{}},target:{type:"prompt_job",...e.agentId?{agentId:e.agentId}:{},...e.objectiveId?{objectiveId:e.objectiveId}:{},...e.objectiveKey?{objectiveKey:e.objectiveKey}:{},...e.executionMode&&e.executionMode!==m.DEFAULT_PROMPT_JOB_EXECUTION_MODE?{executionMode:e.executionMode}:{},...e.provider?{provider:e.provider}:{},...e.model?{model:e.model}:{},...void 0!==e.cliArgs?{cliArgs:e.cliArgs}:{}},createdAt:r,body:e.prompt}),s=(0,d.automationRecordToPromptJob)(n);return this.upsertLegacyJobRow(s),s}getJob(e){if(!(0,u.isAutomationFrontmatterEnabled)())return this.getLegacyJob(e);let t=this.getPromptJobRecord(e,!1);if(t?.archived)return null;if(t?.definition.target.type==="prompt_job"){let e=(0,d.automationRecordToPromptJob)(t);return this.ensureLegacyJobRow(e),e}return(0,u.isAutomationDualReadEnabled)()?this.getLegacyJob(e):null}listJobs(e){if(!(0,u.isAutomationFrontmatterEnabled)())return this.listLegacyJobs(e);let t=new Map;for(let i of this.getAutomationRepo().listVisibleAutomations({targetType:"prompt_job",...e?.state?{state:e.state}:{},...e?.projectId?{projectId:e.projectId}:{}})){let r=this.normalizePromptJobRecord(i);if(!r)continue;let a=(0,d.automationRecordToPromptJob)(r);e?.objectiveId&&a.objectiveId!==e.objectiveId||(e?.includeObjectiveJobs!==!1||e.objectiveId||!a.objectiveId)&&(t.set(a.id,a),this.ensureLegacyJobRow(a))}if((0,u.isAutomationDualReadEnabled)())for(let i of this.listLegacyJobs(e))t.has(i.id)||t.set(i.id,i);return[...t.values()].sort((e,t)=>{let i=Date.parse(e.createdAt);return Date.parse(t.createdAt)-i})}updateJob(e,t){if(!(0,u.isAutomationFrontmatterEnabled)())return this.updateLegacyJob(e,t);let i=this.getPromptJobRecord(e,!1);if(!i)return(0,u.isAutomationDualReadEnabled)()?this.updateLegacyJob(e,t):null;if("prompt_job"!==i.definition.target.type)return null;let r=i,a=this.buildDefinitionPatch(r,t);if(b(a)){let t=this.getAutomationRepo().updateAutomation(e,a);if(!t)return null;r=t}let n=this.buildStatePatch(t);if(b(n)){let t=this.getAutomationRepo().updateAutomationState(e,n);if(!t)return null;r=t}let s=(0,d.automationRecordToPromptJob)(r);return this.upsertLegacyJobRow(s),s}deleteJob(e){(0,u.isAutomationFrontmatterEnabled)()&&(this.getAutomationRepo().archiveAutomation(e)||this.getAutomationRepo().deleteAutomation(e)),this.db.prepare("DELETE FROM prompt_jobs WHERE id = ?").run(e)}getDueJobs(e=Date.now()){if(!(0,u.isAutomationFrontmatterEnabled)())return this.getLegacyDueJobs(e);let t=new Map;for(let i of this.getAutomationRepo().listVisibleAutomations({targetType:"prompt_job",state:"active"})){let r=this.normalizePromptJobRecord(i);if(!r)continue;let a=(0,d.automationRecordToPromptJob)(r);null===a.nextRunAt||a.nextRunAt>e||(t.set(a.id,a),this.ensureLegacyJobRow(a))}if((0,u.isAutomationDualReadEnabled)())for(let i of this.getLegacyDueJobs(e))t.has(i.id)||t.set(i.id,i);return[...t.values()].sort((e,t)=>(e.nextRunAt??Number.MAX_SAFE_INTEGER)-(t.nextRunAt??Number.MAX_SAFE_INTEGER))}createRun(e){this.ensureLegacyJobRowById(e);let t=(0,a.randomUUID)();return this.db.prepare("INSERT INTO prompt_runs (id, job_id) VALUES (?, ?)").run(t,e),this.getRun(t)}getRun(e){let t=this.db.prepare("SELECT * FROM prompt_runs WHERE id = ?").get(e);return t?y(t):null}listRuns(e,t=50){return this.db.prepare("SELECT * FROM prompt_runs WHERE job_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(y)}listQueuedRuns(e=50){return this.db.prepare("SELECT * FROM prompt_runs WHERE status = 'queued' ORDER BY created_at ASC LIMIT ?").all(e).map(y)}updateRun(e,t){let i={status:"status",output:"output",error:"error",durationMs:"duration_ms",startedAt:"started_at",finishedAt:"finished_at",cancelledAt:"cancelled_at",hostPid:"host_pid",hostCommand:"host_command"},r=[],a=[];for(let[e,n]of Object.entries(t)){let t=i[e];t&&(r.push(`${t} = ?`),a.push(n??null))}return 0===r.length||(a.push(e),this.db.prepare(`UPDATE prompt_runs SET ${r.join(", ")} WHERE id = ?`).run(...a.map(e=>e))),this.getRun(e)}hasRunningRun(e){return void 0!==this.db.prepare("SELECT id FROM prompt_runs WHERE job_id = ? AND status IN ('queued', 'running') LIMIT 1").get(e)}async reapStaleRuns(e=18e5){let t=this.db.prepare(`SELECT id, job_id, host_pid, host_command, started_at, created_at
2
- FROM prompt_runs
3
- WHERE status = 'running'`).all(),i=Date.now(),r=t.filter(e=>null!=e.host_pid&&null!=e.host_command).map(e=>({pid:e.host_pid,expectedCommand:e.host_command})),a=await g(r),n=0;for(let r of t){var s;let t,o=(s=r.started_at||r.created_at)?/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(s)?Date.parse(s.replace(" ","T")+"Z"):Date.parse(s):NaN,l=Number.isFinite(o)?i-o:0,d=!1;null!=r.host_pid&&r.host_command?!a.has(r.host_pid)&&l>e?(d=!0,t=`Host process (pid ${r.host_pid}) is no longer running`):t="":l>e?(d=!0,t=`No host PID recorded; stuck for ${Math.round(l/6e4)} minutes`):t="",d&&(this.db.prepare(`UPDATE prompt_runs
4
- SET status = 'failed',
5
- error = ?,
6
- duration_ms = ?,
7
- finished_at = ?
8
- WHERE id = ?`).run(`Reaped: ${t}`,l,new Date().toISOString(),r.id),n++)}return n}isRunCancelled(e){let t=this.db.prepare("SELECT status FROM prompt_runs WHERE id = ?").get(e);return t?.status==="cancelled"}normalizePromptJobRecord(e){if("prompt_job"!==e.definition.target.type||"condition"!==e.definition.trigger.type)return e;let t=(0,p.normalizeLegacyConditionSchedule)(e.definition.trigger.checkEveryMs);return this.getAutomationRepo().updateAutomation(e.definition.id,{trigger:{type:"scheduled",cadence:t.cadence,cronExpr:t.cronExpr},execution:{...e.definition.execution??{},condition:e.definition.execution?.condition??e.definition.trigger.condition}})}getPromptJobRecord(e,t){let i=this.getAutomationRepo().getAutomation(e),r=i?this.normalizePromptJobRecord(i):null;if(r?.definition.target.type==="prompt_job")return r;if(!t||!(0,u.isAutomationDualReadEnabled)())return null;let a=this.getLegacyJob(e);return a?this.materializeLegacyJob(a):null}materializeLegacyJob(e){let t=(0,d.promptJobToAutomationDefinition)(e),i=(0,d.promptJobToAutomationRuntimeState)(e),r=this.getAutomationRepo().upsertAutomation(t);return this.getAutomationRepo().updateAutomationState(e.id,{nextRunAt:i.nextRunAt,lastRunAt:i.lastRunAt,lastOutcome:i.lastOutcome,lastError:i.lastError,updatedAt:i.updatedAt})??r}buildDefinitionPatch(e,t){let i={},r={},a={},n={};void 0!==t.name&&(i.name=t.name),void 0!==t.projectId&&(i.projectId=t.projectId||null),void 0!==t.state&&(i.state=t.state),void 0!==t.prompt&&(i.body=t.prompt);let s=E(t);if(s)r.type="scheduled",r.cadence=s.cadence,r.cronExpr=s.cronExpr,r.intervalMs="scheduled"===e.definition.trigger.type?e.definition.trigger.intervalMs:void 0;else if(""===t.cadence)r.type="scheduled",r.cadence="scheduled"===e.definition.trigger.type?e.definition.trigger.cadence:void 0,r.cronExpr="scheduled"===e.definition.trigger.type?e.definition.trigger.cronExpr:void 0,r.intervalMs="scheduled"===e.definition.trigger.type?e.definition.trigger.intervalMs:void 0;else if(void 0!==t.cronExpr||void 0!==t.cadence){let i=e.definition.trigger;r.type="scheduled",r.cadence=t.cadence??("scheduled"===i.type?i.cadence:void 0),r.cronExpr=t.cronExpr??("scheduled"===i.type?i.cronExpr:void 0),r.intervalMs="scheduled"===i.type?i.intervalMs:void 0}return void 0!==t.overlapPolicy&&(a.overlapPolicy=t.overlapPolicy),void 0!==t.catchUpPolicy&&(a.catchUpPolicy=t.catchUpPolicy),void 0!==t.cancelCheckSec&&(a.cancelCheckSec=t.cancelCheckSec),void 0!==t.condition&&(a.condition=t.condition||void 0),void 0!==t.agentId&&(n.agentId=t.agentId||void 0),void 0!==t.objectiveId&&(n.objectiveId=t.objectiveId||void 0),void 0!==t.objectiveKey&&(n.objectiveKey=t.objectiveKey||void 0),void 0!==t.executionMode&&(n.executionMode=t.executionMode===m.DEFAULT_PROMPT_JOB_EXECUTION_MODE?void 0:t.executionMode),void 0!==t.provider&&(n.provider=t.provider||void 0),void 0!==t.model&&(n.model=t.model||void 0),void 0!==t.cliArgs&&(n.cliArgs=t.cliArgs),{...Object.keys(i).length>0?i:{},...Object.keys(r).length>0?{trigger:r}:{},...Object.keys(a).length>0?{execution:a}:{},...Object.keys(n).length>0?{target:n}:{}}}buildStatePatch(e){let t={};return void 0!==e.nextRunAt&&(t.nextRunAt=e.nextRunAt),void 0!==e.lastRunAt&&(t.lastRunAt=e.lastRunAt),void 0!==e.lastOutcome&&(t.lastOutcome=e.lastOutcome),t}ensureLegacyJobRowById(e){if(this.legacyJobRowExists(e))return;let t=this.getJob(e);t&&this.upsertLegacyJobRow(t)}ensureLegacyJobRow(e){this.legacyJobRowExists(e.id)||this.upsertLegacyJobRow(e)}legacyJobRowExists(e){return void 0!==this.db.prepare("SELECT 1 FROM prompt_jobs WHERE id = ?").get(e)}upsertLegacyJobRow(e){this.db.prepare(`INSERT INTO prompt_jobs (
9
- id, name, prompt, cli, agent_id, project_id, objective_id, objective_key, provider, model, cli_args,
10
- execution_mode,
11
- cron_expr, cadence, state, overlap_policy, catch_up_policy, cancel_check_sec,
12
- trigger_type, condition, check_every_ms, next_run_at, last_run_at, last_outcome,
13
- created_at, updated_at
14
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
15
- ON CONFLICT (id) DO UPDATE SET
16
- name = excluded.name,
17
- prompt = excluded.prompt,
18
- cli = excluded.cli,
19
- agent_id = excluded.agent_id,
20
- project_id = excluded.project_id,
21
- objective_id = excluded.objective_id,
22
- objective_key = excluded.objective_key,
23
- provider = excluded.provider,
24
- model = excluded.model,
25
- cli_args = excluded.cli_args,
26
- execution_mode = excluded.execution_mode,
27
- cron_expr = excluded.cron_expr,
28
- cadence = excluded.cadence,
29
- state = excluded.state,
30
- overlap_policy = excluded.overlap_policy,
31
- catch_up_policy = excluded.catch_up_policy,
32
- cancel_check_sec = excluded.cancel_check_sec,
33
- trigger_type = excluded.trigger_type,
34
- condition = excluded.condition,
35
- check_every_ms = excluded.check_every_ms,
36
- next_run_at = excluded.next_run_at,
37
- last_run_at = excluded.last_run_at,
38
- last_outcome = excluded.last_outcome,
39
- created_at = excluded.created_at,
40
- updated_at = excluded.updated_at`).run(e.id,e.name,e.prompt,e.provider||"claude",e.agentId||null,e.projectId||null,e.objectiveId||null,e.objectiveKey||null,e.provider||"claude",e.model||"",e.cliArgs||"",e.executionMode||m.DEFAULT_PROMPT_JOB_EXECUTION_MODE,e.cronExpr||"",e.cadence||"",e.state,e.overlapPolicy,e.catchUpPolicy,e.cancelCheckSec,"scheduled",e.condition||"",l.DEFAULT_CONDITION_CHECK_EVERY_MS,e.nextRunAt??null,e.lastRunAt??null,e.lastOutcome??null,e.createdAt,e.updatedAt)}createLegacyJob(e,t){let i=(0,a.randomUUID)(),r=e.provider??"claude",n=(0,c.computeNextTickFromCron)(t.cronExpr)??null;return this.db.prepare(`INSERT INTO prompt_jobs (
41
- id, name, prompt, cli, agent_id, project_id, objective_id, objective_key, provider, model, cli_args,
42
- execution_mode,
43
- cron_expr, cadence, overlap_policy, catch_up_policy, cancel_check_sec,
44
- trigger_type, condition, check_every_ms, next_run_at
45
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(i,e.name,e.prompt,r,e.agentId||null,e.projectId||null,e.objectiveId||null,e.objectiveKey||null,r,e.model??"",e.cliArgs??"",e.executionMode??m.DEFAULT_PROMPT_JOB_EXECUTION_MODE,t.cronExpr,t.cadence,e.overlapPolicy??"skip",e.catchUpPolicy??"fire_once",e.cancelCheckSec??5,"scheduled",e.condition??"",t.legacyIntervalMs,n),this.getLegacyJob(i)}normalizeLegacyJobRow(e){if("condition"!==(e.trigger_type||"scheduled"))return e;let t=(0,p.normalizeLegacyConditionSchedule)(e.check_every_ms||l.DEFAULT_CONDITION_CHECK_EVERY_MS),i=(0,c.computeNextTickFromCron)(t.cronExpr)??null;return this.db.prepare(`UPDATE prompt_jobs
46
- SET trigger_type = 'scheduled',
47
- cadence = ?,
48
- cron_expr = ?,
49
- next_run_at = ?,
50
- updated_at = datetime('now')
51
- WHERE id = ?`).run(t.cadence,t.cronExpr,i,e.id),{...e,trigger_type:"scheduled",cadence:t.cadence,cron_expr:t.cronExpr,next_run_at:i}}getLegacyJob(e){let t=this.db.prepare("SELECT * FROM prompt_jobs WHERE id = ?").get(e);return t?_(this.normalizeLegacyJobRow(t)):null}listLegacyJobs(e){let t="SELECT * FROM prompt_jobs",i=[],r=[];return e?.state&&(i.push("state = ?"),r.push(e.state)),e?.projectId&&(i.push("project_id = ?"),r.push(e.projectId)),e?.objectiveId?(i.push("objective_id = ?"),r.push(e.objectiveId)):e?.includeObjectiveJobs===!1&&i.push("(objective_id IS NULL OR objective_id = '')"),i.length>0&&(t+=` WHERE ${i.join(" AND ")}`),t+=" ORDER BY created_at DESC",this.db.prepare(t).all(...r).map(e=>_(this.normalizeLegacyJobRow(e)))}updateLegacyJob(e,t){let i={name:"name",prompt:"prompt",cli:"cli",agentId:"agent_id",projectId:"project_id",objectiveId:"objective_id",objectiveKey:"objective_key",executionMode:"execution_mode",provider:"provider",cronExpr:"cron_expr",model:"model",cliArgs:"cli_args",cadence:"cadence",state:"state",overlapPolicy:"overlap_policy",catchUpPolicy:"catch_up_policy",cancelCheckSec:"cancel_check_sec",condition:"condition",nextRunAt:"next_run_at",lastRunAt:"last_run_at",lastOutcome:"last_outcome"},r=[],a=[],n=E(t);for(let[e,s]of Object.entries(t)){if(n&&("cadence"===e||"cronExpr"===e||"triggerType"===e||"checkEveryMs"===e))continue;let t=i[e];t&&void 0!==s&&(r.push(`${t} = ?`),a.push(s))}if(n)r.push("cadence = ?"),a.push(n.cadence),r.push("cron_expr = ?"),a.push(n.cronExpr),r.push("trigger_type = ?"),a.push("scheduled"),r.push("check_every_ms = ?"),a.push(n.legacyIntervalMs),void 0===t.nextRunAt&&(r.push("next_run_at = ?"),a.push((0,c.computeNextTickFromCron)(n.cronExpr)??null));else if(""===t.cadence)return this.getLegacyJob(e);return 0===r.length||(r.push("updated_at = datetime('now')"),a.push(e),this.db.prepare(`UPDATE prompt_jobs SET ${r.join(", ")} WHERE id = ?`).run(...a.map(e=>e))),this.getLegacyJob(e)}getLegacyDueJobs(e){return this.db.prepare(`SELECT * FROM prompt_jobs
52
- WHERE state = 'active'
53
- AND next_run_at IS NOT NULL
54
- AND next_run_at <= ?
55
- ORDER BY next_run_at ASC`).all(e).map(e=>_(this.normalizeLegacyJobRow(e))).filter(t=>null!==t.nextRunAt&&t.nextRunAt<=e)}}var I=e.i(633211);let v=null;function T(e){return e.replace(/^\s*--.*$/gm,"").split(";").map(e=>e.trim()).filter(Boolean)}function A(){if(!v){let e=(0,I.getSQLiteDb)();if(e.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='prompt_jobs'").get()){if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_jobs') WHERE name='catch_up_policy'").get())for(let r of T((0,t.readFileSync)(i.default.join(process.cwd(),"db/sqlite/003_prompt_scheduler_v2.sql"),"utf-8")))try{e.exec(r)}catch(e){if(!e.message?.includes("duplicate column"))throw e}}else{let r=(0,t.readFileSync)(i.default.join(process.cwd(),"db/sqlite/002_prompt_scheduler_schema.sql"),"utf-8");e.exec(r)}if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_runs') WHERE name='host_pid'").get())for(let r of T((0,t.readFileSync)(i.default.join(process.cwd(),"db/sqlite/004_prompt_runs_host_pid.sql"),"utf-8")))try{e.exec(r)}catch(e){if(!e.message?.includes("duplicate column"))throw e}if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_jobs') WHERE name='objective_id'").get())for(let r of T((0,t.readFileSync)(i.default.join(process.cwd(),"db/sqlite/005_prompt_jobs_objectives.sql"),"utf-8")))try{e.exec(r)}catch(e){if(!e.message?.includes("duplicate column"))throw e}if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_jobs') WHERE name='execution_mode'").get())for(let r of T((0,t.readFileSync)(i.default.join(process.cwd(),"db/sqlite/006_prompt_jobs_execution_mode.sql"),"utf-8")))try{e.exec(r)}catch(e){if(!e.message?.includes("duplicate column"))throw e}v=new j(e)}return v}async function S(e,t=Date.now()){let i=await e.reapStaleRuns();for(let r of(i>0&&console.log(`[prompt-jobs] reaped ${i} stale run(s)`),e.listJobs({state:"active"})))if(null===r.nextRunAt){let i=r.cronExpr||(0,p.parseCadence)(r.cadence)?.cronExpr||"";if(!i)continue;let a=R({cronExpr:i},t);a&&e.updateJob(r.id,{nextRunAt:a})}let r=e.getDueJobs(t),a=[],n=[];for(let i of r){if("skip"===i.overlapPolicy&&e.hasRunningRun(i.id)){n.push({jobId:i.id,reason:"overlap_skip"});let r=R(i,t);e.updateJob(i.id,{nextRunAt:r});continue}let r=function(e,t){if(!e.nextRunAt)return 1;let i=0,r=e.nextRunAt;for(;r<=t&&i<100;){i++;let t=(0,p.computeNextRun)(e.cronExpr,r);if(!t||t<=r)break;r=t}return Math.max(1,i)}(i,t);if("skip"===i.catchUpPolicy&&r>1){n.push({jobId:i.id,reason:`catch_up_skip (${r} missed)`});let a=R(i,t);e.updateJob(i.id,{nextRunAt:a,lastRunAt:t});continue}if("replay_all"===i.catchUpPolicy&&r>1)for(let t=0;t<r;t++){let t=e.createRun(i.id);a.push(t)}else{let t=e.createRun(i.id);a.push(t)}let s=R(i,t);e.updateJob(i.id,{nextRunAt:s,lastRunAt:t})}return{queued:a,skipped:n}}function R(e,t){return(0,p.computeNextRun)(e.cronExpr,t)}var w=e.i(623775),L=e.i(864075),N=e.i(133439),O=e.i(374371);function k(e,t){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||t}function D(e){var t;let i,r,a=e.issue.identifier.trim()||"TICKET-ID",n=e.issue.title.trim()||"Untitled ticket",s=String(e.issue.status??"").trim()||"Unknown",o=String(e.issue.assignee??"").trim()||"Unassigned",l=function(e){let t=String(e?.slug??"").trim();if(t)return k(t,"project");let i=String(e?.name??"").trim();return i?k(i,"project"):"project"}(e.project),d=String(e.project?.name??"").trim()||l,u=String(e.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${l}`,c=String(e.runtime?.issueKnowledgePath??"").trim()||`${u}/issues/${a}/`,p=String(e.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${k(a,"ticket")}`;return{issue:{identifier:a,title:n,status:s,assignee:o},project:{name:d,slug:l,label:(t=e.project,i=String(t?.name??"").trim(),r=String(t?.slug??"").trim(),i&&r?`${i} (${r})`:i||r||"current project"),repos:e.project?.repos?[...e.project.repos]:[]},runtime:{knowledgeBaseRoot:u,issueKnowledgePath:c,isolatedWorktreePath:p}}}var x=e.x("node:sqlite",()=>require("node:sqlite"),!0),$=e.i(801243);let C=process.env.AGX_GROUP_CHAT_DIR?.trim()||i.default.join(r.default.homedir(),".agx","group-chat"),M=i.default.join(C,"history.sqlite");function P(e){return e?.trim()||null}function U(e){return"scripted"===e?"scripted":"chat"}function F(e){let t,i=e.chat_created_at??e.created_at,r=e.chat_completed_at??null,a=function(e,t){switch(e){case"queued":return"queued";case"running":case"awaiting_user":case"blocked":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return t}}(e.chat_status,e.status);return{id:e.id,projectId:e.project_id,projectSlug:e.project_slug,issueId:e.issue_id,issueIdentifier:e.issue_identifier,issueTitle:e.issue_title,issueStatus:e.issue_status,issueAssignee:e.issue_assignee,threadId:e.thread_id,rootMessageId:e.root_message_id,chatRunId:e.chat_run_id,agentId:e.agent_id,agentName:e.agent_name,mode:U(e.mode),sessionTitle:"chat"===U(e.mode)&&(t=String(e.root_content??"").replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").replace(/\s+/g," ").trim())?t.length>72?`${t.slice(0,69).trimEnd()}...`:t:null,status:a,durationMs:null!=r?Math.max(r-i,0):null,lastError:e.chat_last_error??e.error,startedAt:new Date(i).toISOString(),updatedAt:new Date((e.chat_updated_at??e.updated_at)||e.updated_at).toISOString(),completedAt:"number"==typeof r?new Date(r).toISOString():null}}async function J(e){await t.promises.mkdir(C,{recursive:!0});let i=new x.DatabaseSync(M);(0,$.pragmaSet)(i,"journal_mode = WAL");try{return i.exec(`
56
- CREATE TABLE IF NOT EXISTS chat_runs (
57
- id TEXT PRIMARY KEY,
58
- thread_id TEXT NOT NULL,
59
- root_message_id TEXT,
60
- user_id TEXT NOT NULL,
61
- project_slug TEXT,
62
- status TEXT NOT NULL,
63
- current_step INTEGER NOT NULL DEFAULT 0,
64
- max_steps INTEGER NOT NULL DEFAULT 10,
65
- steps_used INTEGER NOT NULL DEFAULT 0,
66
- last_error TEXT,
67
- active_participant_ids TEXT NOT NULL DEFAULT '[]',
68
- payload_json TEXT,
69
- result_json TEXT,
70
- created_at INTEGER NOT NULL,
71
- updated_at INTEGER NOT NULL,
72
- completed_at INTEGER
73
- );
74
- CREATE TABLE IF NOT EXISTS messages (
75
- thread_id TEXT NOT NULL,
76
- id TEXT NOT NULL,
77
- role TEXT NOT NULL,
78
- participant_id TEXT,
79
- content TEXT NOT NULL,
80
- timestamp INTEGER NOT NULL,
81
- root_message_id TEXT,
82
- parent_message_id TEXT,
83
- depth INTEGER NOT NULL DEFAULT 0,
84
- thread_status TEXT,
85
- outcome_note TEXT,
86
- PRIMARY KEY (thread_id, id)
87
- );
88
- CREATE TABLE IF NOT EXISTS linear_runs (
89
- id TEXT PRIMARY KEY,
90
- project_id TEXT,
91
- project_slug TEXT,
92
- issue_id TEXT NOT NULL,
93
- issue_identifier TEXT NOT NULL,
94
- issue_title TEXT NOT NULL,
95
- issue_status TEXT NOT NULL,
96
- issue_assignee TEXT,
97
- thread_id TEXT NOT NULL,
98
- root_message_id TEXT,
99
- chat_run_id TEXT,
100
- agent_id TEXT NOT NULL,
101
- agent_name TEXT NOT NULL,
102
- mode TEXT NOT NULL DEFAULT 'chat',
103
- status TEXT NOT NULL DEFAULT 'queued',
104
- error TEXT,
105
- created_at INTEGER NOT NULL,
106
- updated_at INTEGER NOT NULL
107
- );
108
- CREATE INDEX IF NOT EXISTS idx_linear_runs_issue_created
109
- ON linear_runs (issue_id, created_at DESC);
110
- CREATE INDEX IF NOT EXISTS idx_linear_runs_project_issue_created
111
- ON linear_runs (project_id, issue_id, created_at DESC);
112
- CREATE UNIQUE INDEX IF NOT EXISTS idx_linear_runs_chat_run_id
113
- ON linear_runs (chat_run_id)
114
- WHERE chat_run_id IS NOT NULL;
115
- `),i.prepare("PRAGMA table_info(linear_runs)").all().some(e=>"mode"===e.name)||i.exec("ALTER TABLE linear_runs ADD COLUMN mode TEXT NOT NULL DEFAULT 'chat';"),e(i)}finally{i.close()}}async function X(e){let t=Date.now(),i=P(e.id)??crypto.randomUUID(),r=P(e.threadId)??`linear-run:${i}`,a=U(e.mode);return J(n=>{n.prepare(`INSERT INTO linear_runs (
116
- id, project_id, project_slug, issue_id, issue_identifier, issue_title,
117
- issue_status, issue_assignee, thread_id, root_message_id, chat_run_id,
118
- agent_id, agent_name, mode, status, error, created_at, updated_at
119
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, NULL, ?, ?, ?, 'queued', NULL, ?, ?)`).run(i,P(e.projectId??null),P(e.projectSlug??null),e.issueId.trim(),e.issueIdentifier.trim(),e.issueTitle.trim(),e.issueStatus.trim(),P(e.issueAssignee??null),r,e.agentId.trim(),e.agentName.trim(),a,t,t);let s=n.prepare(`SELECT
120
- lr.*,
121
- cr.status AS chat_status,
122
- cr.last_error AS chat_last_error,
123
- cr.created_at AS chat_created_at,
124
- cr.updated_at AS chat_updated_at,
125
- cr.completed_at AS chat_completed_at,
126
- msg.content AS root_content
127
- FROM linear_runs lr
128
- LEFT JOIN chat_runs cr ON cr.id = (
129
- SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
130
- )
131
- LEFT JOIN messages msg ON msg.thread_id = lr.thread_id AND msg.id = lr.root_message_id
132
- WHERE lr.id = ?
133
- LIMIT 1`).get(i);if(!s)throw Error(`Failed to create Linear run ${i}`);return F(s)})}async function W(e){return J(t=>{let i=["updated_at = ?"],r=[Date.now()];void 0!==e.rootMessageId&&(i.push("root_message_id = ?"),r.push(P(e.rootMessageId))),void 0!==e.chatRunId&&(i.push("chat_run_id = ?"),r.push(P(e.chatRunId))),void 0!==e.status&&(i.push("status = ?"),r.push(e.status)),void 0!==e.error&&(i.push("error = ?"),r.push(P(e.error))),r.push(e.id.trim()),t.prepare(`UPDATE linear_runs SET ${i.join(", ")} WHERE id = ?`).run(...r);let a=t.prepare(`SELECT
134
- lr.*,
135
- cr.status AS chat_status,
136
- cr.last_error AS chat_last_error,
137
- cr.created_at AS chat_created_at,
138
- cr.updated_at AS chat_updated_at,
139
- cr.completed_at AS chat_completed_at,
140
- msg.content AS root_content
141
- FROM linear_runs lr
142
- LEFT JOIN chat_runs cr ON cr.id = (
143
- SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
144
- )
145
- LEFT JOIN messages msg ON msg.thread_id = lr.thread_id AND msg.id = lr.root_message_id
146
- WHERE lr.id = ?
147
- LIMIT 1`).get(e.id.trim());return a?F(a):null})}async function q(e){return J(t=>{let i=e?.trim(),r=i?`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
148
- FROM linear_runs lr
149
- LEFT JOIN chat_runs cr ON cr.id = (
150
- SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
151
- )
152
- WHERE (lr.status IN ('queued', 'running') OR cr.status IN ('queued', 'running'))
153
- AND lr.project_id = ?`:`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
154
- FROM linear_runs lr
155
- LEFT JOIN chat_runs cr ON cr.id = (
156
- SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
157
- )
158
- WHERE (lr.status IN ('queued', 'running') OR cr.status IN ('queued', 'running'))`;return(i?t.prepare(r).all(e.trim()):t.prepare(r).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}var K=e.i(200704),B=e.i(202322),H=e.i(295851),Y=e.i(251642);async function G(e){let t=(await (0,N.loadDbParticipants)()).find(t=>t.id===e.agentId)??null;if(!t)throw Error(`Agent "${e.agentId}" could not be resolved for scripted Linear work.`);let i=await X({projectId:e.projectId??null,projectSlug:e.projectSlug??null,issueId:e.issue.id,issueIdentifier:e.issue.identifier,issueTitle:e.issue.title,issueStatus:e.issue.status,issueAssignee:e.issue.assignee??null,agentId:t.id,agentName:t.name,mode:"scripted"});try{var r;let a,n,s,o,l,d,u,c,p,m,f,h={issue:{identifier:e.issue.identifier,title:e.issue.title,status:e.issue.status,assignee:e.issue.assignee??null},project:e.projectSlug?{slug:e.projectSlug}:null},{prompt:g,promptPrefix:_}=(n=(a=D(h)).issue.identifier,s=a.issue.title,o=a.issue.status,l=a.issue.assignee,d=a.runtime.knowledgeBaseRoot,u=a.runtime.issueKnowledgePath,c=a.runtime.isolatedWorktreePath,p=`LINEAR TASK EXECUTION
159
-
160
- 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.
161
-
162
- INJECTED CONTEXT
163
- - Ticket: ${n}
164
- - Title: ${s}
165
- - Current status: ${o}
166
- - Current assignee: ${l}
167
- - Project: ${a.project.label}
168
- - Knowledge base root: ${d}
169
- - Issue knowledge path: ${u}
170
- - Suggested isolated worktree: ${c}
171
- - Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.
172
-
173
- SOURCE REPOSITORIES
174
- ${!(r=a.project.repos)||0===r.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":r.map(e=>{let t=[e.name.trim()||"repository"],i=String(e.path??"").trim(),r=String(e.notes??"").trim();return i&&t.push(`path: ${i}`),r&&t.push(`notes: ${r}`),`- ${t.join(" | ")}`}).join("\n")}
175
-
176
- WORKFLOW
177
- 1. Read the full Linear issue and comment thread before acting. Use Linear MCP for issue details, comments, state changes, and follow-up.
178
- 2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.
179
- 3. If requirements are unclear, ask specific clarifying questions in Linear and stop.
180
- 4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.
181
- 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.
182
- 6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.
183
- 7. Keep Linear accurate: comments, links, statuses, blockers, and PR references should match reality.
184
- 8. Keep the knowledge base current with what you learned, what changed, and what remains.
185
- 9. Work on exactly this ticket during this session.
186
-
187
- RULES
188
- - Use the injected project context instead of hardcoded repo-specific paths or conventions.
189
- - Use knowledge base terminology; the filesystem path above is the storage location.
190
- - If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.
191
- - 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.
192
-
193
- `,{prompt:`Work on this Linear ticket: ${n} - ${s}`,promptPrefix:p}),y=e.scriptPrompt?.trim()??"",b=e.scriptName?.trim()??"",E=y&&(f={"ticket.identifier":(m=D(h)).issue.identifier,"ticket.title":m.issue.title,"ticket.status":m.issue.status,"ticket.assignee":m.issue.assignee,"project.name":m.project.name,"project.slug":m.project.slug,"project.label":m.project.label,"knowledge_base.root":m.runtime.knowledgeBaseRoot,"knowledge_base.issue_path":m.runtime.issueKnowledgePath,"worktree.path":m.runtime.isolatedWorktreePath},y.replace(/\{\{\s*([a-zA-Z0-9._-]+)\s*\}\}/g,(e,t)=>f[t]??"")).trim()||g,j=y?`${_}ACTIVE SESSION SCRIPT
194
- - Name: ${b||"Custom script"}
195
-
196
- `:_,{chatRunId:I,userMessageId:v}=await V({threadId:i.threadId,prompt:E,promptPrefix:j,projectSlug:e.projectSlug??null,participantId:t.id});return{run:i=await W({id:i.id,chatRunId:I,rootMessageId:v})??i,chatRunId:I,userMessageId:v}}catch(e){throw await W({id:i.id,status:"failed",error:e instanceof Error?e.message:String(e)}),e}}async function V(e){let t=(await (0,N.loadDbParticipants)()).find(t=>t.id===e.participantId)??null;if(!t)throw Error(`Participant "${e.participantId}" is unavailable.`);let i=(0,Y.normalizeProjectSlug)(e.projectSlug),r=await (0,Y.resolveProjectContext)(i,[],[t]),a=Date.now(),n=crypto.randomUUID(),s={id:n,role:"user",participantId:null,content:e.prompt,timestamp:a,rootMessageId:null,parentMessageId:null,depth:0};await (0,K.saveMessages)(e.threadId,[s]);let o=e.promptPrefix?`${e.promptPrefix}${e.prompt}`:e.prompt,l=crypto.randomUUID(),d={threadId:e.threadId,prompt:o,projectContext:r,mentionedIds:[],initialParallelIds:[],maxRounds:Math.min(Math.max(e.maxRounds??10,1),50),recentHistory:[],currentUserMessageId:n,rootMessageId:n,participantIds:[t.id]};await (0,K.createChatRun)({id:l,threadId:e.threadId,rootMessageId:n,userId:L.LOCAL_USER.id,projectSlug:i||null,maxSteps:d.maxRounds,activeParticipantIds:[t.id],payload:d}),await (0,B.ensureOrchestratorRuntime)();let u=await (0,H.getQueue)();return await u.send(H.QUEUE_NAMES.CHAT_RUN_PROCESS,{chatRunId:l,userId:L.LOCAL_USER.id,signal:"start"}),{chatRunId:l,userMessageId:n}}var z=e.i(902157),Z=e.i(750227),Q=e.i(180228),ee=e.i(660526);let et=Z.default.join((0,ee.homedir)(),".agx");function ei(){return Z.default.join(et,"linear-token.json")}function er(e){if(null===e)return"null";if(Array.isArray(e))return`[${e.map(er).join(", ")}]`;if("string"==typeof e)return JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return String(e);if("object"==typeof e){let t=Object.entries(e).filter(([,e])=>void 0!==e);return`{ ${t.map(([e,t])=>`${e}: ${er(t)}`).join(", ")} }`}throw Error(`Unsupported GraphQL value: ${typeof e}`)}class ea{accessToken;constructor(e){this.accessToken=e}get viewer(){return this.request("query { viewer { id name email } }").then(e=>e.viewer)}async users(){return(await this.request(`query {
197
- users(first: 100) {
198
- nodes {
199
- id
200
- name
201
- }
202
- }
203
- }`)).users.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name})).sort((e,t)=>e.name.localeCompare(t.name))}async teams(){return(await this.request(`query {
204
- teams(first: 50) {
205
- nodes {
206
- id
207
- name
208
- }
209
- }
210
- }`)).teams.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name})).sort((e,t)=>e.name.localeCompare(t.name))}async issueLabels(){return(await this.request(`query {
211
- issueLabels(first: 250, includeArchived: false) {
212
- nodes {
213
- id
214
- name
215
- color
216
- team {
217
- id
218
- name
219
- }
220
- }
221
- }
222
- }`)).issueLabels.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name.trim(),color:e.color,teamId:e.team?.id??null,teamName:e.team?.name??null})).sort((e,t)=>e.name.localeCompare(t.name))}async createIssueLabel(e){let t=e.name.trim();if(!t)throw Error("Linear label name is required");let i={name:t,...e.description?.trim()?{description:e.description.trim()}:{},...e.color?.trim()?{color:e.color.trim()}:{},...e.teamId?.trim()?{teamId:e.teamId.trim()}:{}},r=await this.request(`mutation {
223
- issueLabelCreate(input: ${er(i)}) {
224
- success
225
- issueLabel {
226
- id
227
- name
228
- color
229
- team {
230
- id
231
- name
232
- }
233
- }
234
- }
235
- }`).then(e=>e.issueLabelCreate);if(!r.success)throw Error(`Linear rejected the label creation for "${t}"`);return{id:r.issueLabel.id,name:r.issueLabel.name.trim(),color:r.issueLabel.color,teamId:r.issueLabel.team?.id??null,teamName:r.issueLabel.team?.name??null}}async issues(e){let t,i=(t=[`first: ${e.first}`],e.after&&t.push(`after: ${JSON.stringify(e.after)}`),e.orderBy&&t.push(`orderBy: ${e.orderBy}`),e.filter&&Object.keys(e.filter).length>0&&t.push(`filter: ${er(e.filter)}`),t.join(", ")),r=await this.request(`query {
236
- issues(${i}) {
237
- nodes {
238
- id
239
- identifier
240
- title
241
- description
242
- url
243
- updatedAt
244
- state { name }
245
- assignee { id name email }
246
- team { id name key }
247
- cycle { id number name }
248
- labels(first: 20) {
249
- nodes {
250
- name
251
- }
252
- }
253
- }
254
- pageInfo {
255
- hasNextPage
256
- endCursor
257
- }
258
- }
259
- }`);return{nodes:r.issues.nodes.map(e=>({id:e.id,identifier:e.identifier,title:e.title,description:e.description,url:e.url,updatedAt:e.updatedAt,state:Promise.resolve(e.state),assignee:Promise.resolve(e.assignee),team:Promise.resolve(e.team),cycle:Promise.resolve(e.cycle),labels:Promise.resolve((e.labels?.nodes??[]).map(e=>e.name.trim()).filter(Boolean))})),pageInfo:r.issues.pageInfo}}async createIssue(e){let t=e.title.trim(),i=e.teamId.trim();if(!t)throw Error("Linear issue title is required");if(!i)throw Error("Linear issue team is required");let r={title:t,teamId:i,...e.description?.trim()?{description:e.description.trim()}:{},...e.assigneeId?.trim()?{assigneeId:e.assigneeId.trim()}:{},...e.cycleId?.trim()?{cycleId:e.cycleId.trim()}:{},...e.projectId?.trim()?{projectId:e.projectId.trim()}:{},...e.stateId?.trim()?{stateId:e.stateId.trim()}:{},..."number"==typeof e.priority&&Number.isFinite(e.priority)?{priority:Math.trunc(e.priority)}:{},...e.labelIds?.length?{labelIds:Array.from(new Set(e.labelIds.map(e=>e.trim()).filter(Boolean)))}:{}},a=await this.request(`mutation {
260
- issueCreate(input: ${er(r)}) {
261
- success
262
- issue {
263
- id
264
- identifier
265
- title
266
- description
267
- url
268
- updatedAt
269
- state { name }
270
- assignee { id name email }
271
- team { id name key }
272
- cycle { id number name }
273
- labels(first: 20) {
274
- nodes {
275
- name
276
- }
277
- }
278
- }
279
- }
280
- }`).then(e=>e.issueCreate);if(!a.success||!a.issue)throw Error(`Linear rejected the issue creation for "${t}"`);return{id:a.issue.id,identifier:a.issue.identifier,title:a.issue.title,description:a.issue.description,url:a.issue.url,updatedAt:a.issue.updatedAt,status:a.issue.state?.name??null,assignee:a.issue.assignee?.name??null,teamId:a.issue.team?.id??null,teamName:a.issue.team?.name??null,teamKey:a.issue.team?.key??null,labels:(a.issue.labels?.nodes??[]).map(e=>e.name.trim()).filter(Boolean)}}async cycles(){let e=await this.request(`query {
281
- teams(first: 50) {
282
- nodes {
283
- id
284
- name
285
- activeCycle {
286
- id
287
- number
288
- name
289
- startsAt
290
- endsAt
291
- team {
292
- id
293
- name
294
- }
295
- }
296
- cycles(first: 20) {
297
- nodes {
298
- id
299
- number
300
- name
301
- startsAt
302
- endsAt
303
- team {
304
- id
305
- name
306
- }
307
- }
308
- }
309
- }
310
- }
311
- }`),t=new Map;for(let i of e.teams.nodes)for(let e of[...i.activeCycle?[i.activeCycle]:[],...i.cycles.nodes])t.has(e.id)||t.set(e.id,{id:e.id,number:e.number,name:e.name,startsAt:e.startsAt,endsAt:e.endsAt,teamId:e.team?.id??i.id,teamName:e.team?.name??i.name});return[...t.values()].sort((e,t)=>new Date(t.startsAt).getTime()-new Date(e.startsAt).getTime())}async updateIssueStatus(e,t){let i=e.trim(),r=t.trim();if(!i)throw Error("Issue id is required");if(!r)throw Error("Status name is required");let a=await this.request(`query {
312
- issue(id: ${JSON.stringify(i)}) {
313
- id
314
- team { id }
315
- state { id name }
316
- }
317
- }`).then(e=>e.issue?{id:e.issue.id,teamId:e.issue.team?.id??null,currentStateId:e.issue.state?.id??null,currentStatus:e.issue.state?.name??null}:null);if(!a)throw Error(`Issue "${i}" not found in Linear`);if(!a.teamId)throw Error(`Issue "${i}" is missing a team in Linear`);if(a.currentStatus?.trim().toLowerCase()===r.toLowerCase()){let e=a.currentStatus.trim();return await this.request(`query {
318
- issue(id: ${JSON.stringify(i)}) {
319
- id
320
- identifier
321
- title
322
- url
323
- updatedAt
324
- state { name }
325
- assignee { name }
326
- }
327
- }`).then(t=>{if(!t.issue)throw Error(`Issue "${i}" not found in Linear`);return{id:t.issue.id,identifier:t.issue.identifier,title:t.issue.title,url:t.issue.url,updatedAt:t.issue.updatedAt,status:t.issue.state?.name??e,assignee:t.issue.assignee?.name??null}})}let n=(await this.request(`query {
328
- team(id: ${JSON.stringify(a.teamId)}) {
329
- states {
330
- nodes {
331
- id
332
- name
333
- position
334
- }
335
- }
336
- }
337
- }`).then(e=>e.team?.states?.nodes??[])).slice().sort((e,t)=>e.position-t.position).find(e=>e.name.trim().toLowerCase()===r.toLowerCase());if(!n)throw Error(`Linear status "${r}" was not found for this issue's team`);let s=await this.request(`mutation {
338
- issueUpdate(
339
- id: ${JSON.stringify(i)},
340
- input: { stateId: ${JSON.stringify(n.id)} }
341
- ) {
342
- success
343
- issue {
344
- id
345
- identifier
346
- title
347
- url
348
- updatedAt
349
- state { name }
350
- assignee { name }
351
- }
352
- }
353
- }`).then(e=>e.issueUpdate);if(!s.success||!s.issue)throw Error(`Linear rejected the status update for "${i}"`);return{id:s.issue.id,identifier:s.issue.identifier,title:s.issue.title,url:s.issue.url,updatedAt:s.issue.updatedAt,status:s.issue.state?.name??r,assignee:s.issue.assignee?.name??null}}async request(e){let t=await fetch("https://api.linear.app/graphql",{method:"POST",headers:{"Content-Type":"application/json",Authorization:this.accessToken},body:JSON.stringify({query:e}),cache:"no-store"}),i=await t.json();if(!t.ok||i.errors?.length)throw Error(i.errors?.map(e=>e.message).find(Boolean)??`Linear request failed with status ${t.status}`);if(!i.data)throw Error("Linear response did not include data");return i.data}}function en(){let e=function(){try{let e=(0,z.readFileSync)(ei(),"utf8");return JSON.parse(e)}catch{}try{var e;let t=Z.default.join(process.cwd(),".linear-token.json"),i=(0,z.readFileSync)(t,"utf8"),r=JSON.parse(i);e=r,(0,z.existsSync)(et)||(0,z.mkdirSync)(et,{recursive:!0}),(0,z.writeFileSync)(ei(),JSON.stringify(e,null,2));try{(0,z.unlinkSync)(t)}catch{}return r}catch{return null}}();return e?new ea(e.accessToken):null}var es=e.x("node:sqlite",()=>require("node:sqlite"),!0);let eo=process.env.AGX_LINEAR_DIR?.trim()||Z.default.join(process.env.AGX_DATA_DIR||Z.default.join(ee.default.homedir(),".agx"),"linear"),el=Z.default.join(eo,"issues.sqlite");function ed(e){return e?.trim()||null}function eu(e){return Array.isArray(e)?Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[]}function ec(e){return new Date(e).toISOString()}function ep(e){return{id:e.issue_id,identifier:e.identifier,title:e.title,description:e.description,labels:function(e){if(!e)return[];try{return eu(JSON.parse(e))}catch{return[]}}(e.labels_json),url:e.url,status:e.status,assigneeId:e.assignee_id,assignee:e.assignee_name,assigneeEmail:e.assignee_email,isAssignedToMe:1===e.is_assigned_to_me,teamId:e.team_id,teamName:e.team_name,teamKey:e.team_key,cycleId:e.cycle_id,cycleName:e.cycle_name,cycleNumber:e.cycle_number,updatedAt:e.updated_at,pulledAt:ec(e.pulled_at)}}async function em(e){await z.promises.mkdir(eo,{recursive:!0});let t=new es.DatabaseSync(el);(0,$.pragmaSet)(t,"journal_mode = WAL");try{var i;return t.exec(`
354
- CREATE TABLE IF NOT EXISTS linear_issues (
355
- issue_id TEXT PRIMARY KEY,
356
- identifier TEXT NOT NULL,
357
- title TEXT NOT NULL,
358
- description TEXT,
359
- labels_json TEXT NOT NULL DEFAULT '[]',
360
- url TEXT,
361
- status TEXT NOT NULL,
362
- assignee_id TEXT,
363
- assignee_name TEXT,
364
- assignee_email TEXT,
365
- is_assigned_to_me INTEGER NOT NULL DEFAULT 0,
366
- team_id TEXT,
367
- team_name TEXT,
368
- team_key TEXT,
369
- cycle_id TEXT,
370
- cycle_name TEXT,
371
- cycle_number INTEGER,
372
- updated_at TEXT NOT NULL,
373
- pulled_at INTEGER NOT NULL
374
- );
375
- CREATE INDEX IF NOT EXISTS idx_linear_issues_updated
376
- ON linear_issues (updated_at DESC, identifier ASC);
377
- CREATE INDEX IF NOT EXISTS idx_linear_issues_cycle
378
- ON linear_issues (cycle_id, updated_at DESC);
379
- CREATE INDEX IF NOT EXISTS idx_linear_issues_assignee_me
380
- ON linear_issues (is_assigned_to_me, updated_at DESC);
381
- CREATE TABLE IF NOT EXISTS linear_issue_sync_state (
382
- scope_key TEXT PRIMARY KEY,
383
- last_pulled_at INTEGER NOT NULL,
384
- issue_count INTEGER NOT NULL
385
- );
386
- `),i="linear_issues",t.prepare(`PRAGMA table_info(${i})`).all().some(e=>"labels_json"===e.name)||t.exec(`ALTER TABLE ${i} ADD COLUMN labels_json TEXT NOT NULL DEFAULT '[]'`),e(t)}finally{t.close()}}async function ef(e){let t=e.pulledAtMs??Date.now();return em(i=>{i.exec("BEGIN");try{let n=i.prepare(`
387
- INSERT INTO linear_issues (
388
- issue_id, identifier, title, description, labels_json, url, status,
389
- assignee_id, assignee_name, assignee_email, is_assigned_to_me,
390
- team_id, team_name, team_key, cycle_id, cycle_name, cycle_number,
391
- updated_at, pulled_at
392
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
393
- ON CONFLICT(issue_id) DO UPDATE SET
394
- identifier = excluded.identifier,
395
- title = excluded.title,
396
- description = excluded.description,
397
- labels_json = excluded.labels_json,
398
- url = excluded.url,
399
- status = excluded.status,
400
- assignee_id = excluded.assignee_id,
401
- assignee_name = excluded.assignee_name,
402
- assignee_email = excluded.assignee_email,
403
- is_assigned_to_me = excluded.is_assigned_to_me,
404
- team_id = excluded.team_id,
405
- team_name = excluded.team_name,
406
- team_key = excluded.team_key,
407
- cycle_id = excluded.cycle_id,
408
- cycle_name = excluded.cycle_name,
409
- cycle_number = excluded.cycle_number,
410
- updated_at = excluded.updated_at,
411
- pulled_at = excluded.pulled_at
412
- `);for(let i of e.issues){var r,a;n.run(i.id.trim(),i.identifier.trim(),i.title.trim(),ed(i.description??null),(r=i.labels,JSON.stringify(eu(r??[]))),ed(i.url??null),i.status.trim(),ed(i.assigneeId??null),ed(i.assignee??null),ed(i.assigneeEmail??null),+!!i.isAssignedToMe,ed(i.teamId??null),ed(i.teamName??null),ed(i.teamKey??null),ed(i.cycleId??null),ed(i.cycleName??null),(a=i.cycleNumber??null,"number"==typeof a&&Number.isFinite(a)?a:null),i.updatedAt.trim(),t)}if(e.complete)if(0===e.issues.length)i.exec("DELETE FROM linear_issues");else{let t=e.issues.map(()=>"?").join(", ");i.prepare(`DELETE FROM linear_issues WHERE issue_id NOT IN (${t})`).run(...e.issues.map(e=>e.id.trim()))}i.exec("COMMIT")}catch(e){throw i.exec("ROLLBACK"),e}})}async function eh(e,t,i=Date.now()){let r=e.trim()||"global";return em(e=>{e.prepare(`
413
- INSERT INTO linear_issue_sync_state (scope_key, last_pulled_at, issue_count)
414
- VALUES (?, ?, ?)
415
- ON CONFLICT(scope_key) DO UPDATE SET
416
- last_pulled_at = excluded.last_pulled_at,
417
- issue_count = excluded.issue_count
418
- `).run(r,i,t)})}async function eg(e="global"){let t=e.trim()||"global";return em(e=>{let i=e.prepare(`SELECT scope_key, last_pulled_at, issue_count
419
- FROM linear_issue_sync_state
420
- WHERE scope_key = ?
421
- LIMIT 1`).get(t);return i?{scopeKey:i.scope_key,lastPulledAt:ec(i.last_pulled_at),issueCount:i.issue_count}:null})}async function e_(){return em(e=>{let t=e.prepare("SELECT COUNT(*) AS count FROM linear_issues").get();return t?.count??0})}async function ey(e={}){let t=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),500):50,i=Number.isFinite(Number(e.cursor))?Math.max(Number(e.cursor),0):0;return em(r=>{let a,n=[],s=[],o=ed(e.search??null);if(o){let e=`%${o.toLowerCase().replace(/[\\%_]/g,"\\$&")}%`;n.push("(LOWER(identifier) LIKE ? ESCAPE '\\' OR LOWER(title) LIKE ? ESCAPE '\\' OR LOWER(COALESCE(description, '')) LIKE ? ESCAPE '\\')"),s.push(e,e,e)}let l=Array.from(new Set((e.statuses??[]).map(e=>ed(e)).filter(e=>!!e).map(e=>e.toLowerCase())));l.length>0&&(n.push(`LOWER(status) IN (${l.map(()=>"?").join(", ")})`),s.push(...l));let d=Array.from(new Set((e.assigneeIds??[]).map(e=>ed(e)).filter(e=>!!e)));d.length>0&&(n.push(`assignee_id IN (${d.map(()=>"?").join(", ")})`),s.push(...d)),e.assignedToMe&&n.push("is_assigned_to_me = 1");let u=ed(e.teamId??null);u&&(n.push("team_id = ?"),s.push(u));let c=ed(e.cycleId??null);if(c&&(n.push("cycle_id = ?"),s.push(c)),e.hasActivity&&e.activityMap){let t=Array.from(e.activityMap.keys());if(0===t.length)return{issues:[],pageInfo:{hasNextPage:!1,endCursor:null}};n.push(`issue_id IN (${t.map(()=>"?").join(", ")})`),s.push(...t)}let p=n.length>0?`WHERE ${n.join(" AND ")}`:"",m=e.sortBy??"activity",f=e.sortDir??"desc",h="asc"===f?"ASC":"DESC";if("activity"===m&&e.activityMap&&e.activityMap.size>0){let a=Array.from(e.activityMap.keys()),n=a.map(()=>"?").join(", "),o=p?`${p} AND issue_id IN (${n})`:`WHERE issue_id IN (${n})`,l=r.prepare(`SELECT * FROM linear_issues ${o} ORDER BY updated_at DESC, identifier ASC`).all(...s,...a),d=e.activityMap;l.sort((e,t)=>{let i=d.get(e.issue_id)??"",r=d.get(t.issue_id)??"";return"desc"===f?r.localeCompare(i):i.localeCompare(r)});let u=[];if(!e.hasActivity){let e=p?`${p} AND issue_id NOT IN (${n})`:`WHERE issue_id NOT IN (${n})`;u=r.prepare(`SELECT * FROM linear_issues ${e} ORDER BY updated_at DESC, identifier ASC`).all(...s,...a)}let c=[...l,...u].slice(i,i+t+1),m=c.length>t,h=m?c.slice(0,t):c,g=m?String(i+t):null;return{issues:h.map(ep),pageInfo:{hasNextPage:m,endCursor:g}}}switch(m){case"identifier":a=`ORDER BY identifier ${h}`;break;case"status":a=`ORDER BY LOWER(status) ${h}, identifier ASC`;break;case"created":a=`ORDER BY pulled_at ${h}, identifier ASC`;break;default:a=`ORDER BY updated_at ${h}, identifier ASC`}let g=r.prepare(`SELECT *
422
- FROM linear_issues
423
- ${p}
424
- ${a}
425
- LIMIT ? OFFSET ?`).all(...s,t+1,i),_=g.length>t,y=_?g.slice(0,t):g,b=_?String(i+t):null;return{issues:y.map(ep),pageInfo:{hasNextPage:_,endCursor:b}}})}var eb=e.i(341902);let eE="global";function ej(e){let t=String(e??"").trim().toLowerCase();return t?`project:${t}`:eE}function eI(e){z.default.mkdirSync(e,{recursive:!0})}function ev(e,t){eI(Z.default.dirname(e));let i=`${e}.tmp-${process.pid}-${Date.now()}`;z.default.writeFileSync(i,t,"utf8"),z.default.renameSync(i,e)}function eT(e){return{id:e.id,identifier:e.identifier,title:e.title,url:e.url,status:e.status,assignee:e.assignee,updatedAt:e.updatedAt,labels:e.labels??[]}}function eA(e,t){return e.trim().replace(/[\\/]/g,"-")||t}async function eS(e={}){let t,i=en();if(!i)throw Error("Not connected");let r=await i.viewer,a=Date.now(),n=new Date(a).toISOString(),s=0,o=!0,l=[];for(;s<500;){let e=500-s,a=await i.issues({first:Math.min(100,e),after:t,orderBy:"updatedAt"}),n=await Promise.all(a.nodes.map(async e=>{let[t,i,a,n,s]=await Promise.all([e.labels,e.state,e.assignee,e.team,e.cycle]);return{id:e.id,identifier:e.identifier,title:e.title,description:e.description??null,labels:t,url:e.url,status:i?.name??"Unknown",assigneeId:a?.id??null,assignee:a?.name??null,assigneeEmail:a?.email??null,isAssignedToMe:!!(a?.id&&a.id===r.id),teamId:n?.id??null,teamName:n?.name??null,teamKey:n?.key??null,cycleId:s?.id??null,cycleName:s?.name??null,cycleNumber:s?.number??null,updatedAt:e.updatedAt}}));if(l.push(...n),s+=n.length,!a.pageInfo.hasNextPage||!a.pageInfo.endCursor)break;if(s>=500){o=!1;break}t=a.pageInfo.endCursor}await ef({issues:l,complete:o,pulledAtMs:a}),await eh(eE,l.length,a);let d=ej(e.projectSlug);return d!==eE&&await eh(d,l.length,a),!function(e,t,i){let r=function(e){let t=eb.vaultStore.getRootDir(),i=String(e??"").trim();if(i){let e=eb.vaultStore.getProjectWithRepos(i),r=e?.slug??i;return Z.default.join(t,r,"issues")}return Z.default.join(t,"_global","Linear","issues")}(i);eI(r);let a=["# Linear Issues","",`Last pulled: ${t}`,""];for(let i of e){let e=Z.default.join(r,eA(i.identifier,i.id));!function(e,t,i){let r=(0,Q.dump)(t,{lineWidth:120,noRefs:!0,sortKeys:!0}).trimEnd(),a=String(i||"").replace(/\r\n/g,"\n").split("\n").map(e=>e.replace(/\s+$/g,"")).join("\n").trim();ev(e,a?`---
426
- ${r}
427
- ---
428
- ${a}
429
- `:`---
430
- ${r}
431
- ---
432
- `)}(Z.default.join(e,"README.md"),{type:"linear-issue",issue_id:i.id,identifier:i.identifier,title:i.title,status:i.status,assignee_id:i.assigneeId??null,assignee_name:i.assignee??null,assignee_email:i.assigneeEmail??null,team_id:i.teamId??null,team_name:i.teamName??null,team_key:i.teamKey??null,cycle_id:i.cycleId??null,cycle_name:i.cycleName??null,cycle_number:i.cycleNumber??null,url:i.url??null,updated_at:i.updatedAt,pulled_at:t},[`# ${i.identifier}: ${i.title}`,"",`- Status: ${i.status}`,`- Assignee: ${i.assignee??"Unassigned"}`,i.teamName?`- Team: ${i.teamName}`:null,i.cycleName||null!=i.cycleNumber?`- Cycle: ${i.cycleName??`Cycle ${i.cycleNumber}`}`:null,i.labels?.length?`- Labels: ${i.labels.join(", ")}`:null,`- Updated in Linear: ${i.updatedAt}`,`- Pulled locally: ${t}`,i.url?`- URL: ${i.url}`:null,"","## Description","",i.description?.trim()||"_No description provided._"].filter(e=>null!==e).join("\n")),a.push(`- [${i.identifier}](${encodeURIComponent(eA(i.identifier,i.id))}/README.md) - ${i.title} (${i.status})`)}ev(Z.default.join(r,"_index.md"),`${a.join("\n")}
433
- `)}(l,n,e.projectSlug),{issueCount:l.length,complete:o,pulledAt:n}}async function eR(e={}){let t=!!e.refresh,i=ej(e.projectSlug);if(!t){let[e,t]=await Promise.all([e_(),eg(i)]);if(e>0&&t)return null}return en()?eS({projectSlug:e.projectSlug}):null}async function ew(e={}){let[t,i]=await Promise.all([ey(e),eg(eE)]);return{issues:t.issues.map(eT),pageInfo:t.pageInfo,syncState:{lastPulledAt:i?.lastPulledAt??null}}}let eL=new Set(["done","cancelled","canceled","duplicate"]);function eN(e){return eL.has(String(e??"").trim().toLowerCase())}async function eO(e){let t=await eR({refresh:e.refresh,projectSlug:e.projectSlug}),{issues:i}=await ew({limit:e.limit??500});return{issues:i.filter(t=>(t.labels??[]).some(t=>{var i;return i=e.objectiveKey,t.trim().toLowerCase()===i.trim().toLowerCase()})),refreshedAt:t?.pulledAt??null}}var ek=e.i(929160);let eD="project_objectives_workspace",ex="project_goals_workspace",e$="project_health_snapshot",eC=new Set(["on_track","at_risk","off_track","done"]);function eM(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function eP(e){return`${e}_${Math.random().toString(36).slice(2,10)}`}function eU(e){return[...e].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))}function eF(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function eJ(e){return[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}function eX(e,t=""){return"string"==typeof e?e:t}function eW(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let i=Date.parse(e);return Number.isNaN(i)?t:new Date(i).toISOString()}function eq(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function eK(e){return"string"==typeof e&&eC.has(e)?e:"on_track"}function eB(e,t="objective"){let i=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return i||t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function eH(e){var t;if(!eM(e))return null;let i=eW(e.updatedAt??e.createdAt),r=eW(e.createdAt,i);return{id:eX(e.id,eP("objective")),title:eX(e.title,"Untitled objective"),teamId:eX(e.teamId??e.team_id??e.ownerTeamId),key:eB(eX(e.key??e.slug??e.label),eX(e.title??e.id,"objective")),threadId:eX(e.threadId)||null,chatSessionVersion:function(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}(e.chatSessionVersion,0),scheduledTaskIds:Array.isArray(t=e.scheduledTaskIds??e.promptJobIds)?Array.from(new Set(t.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[],summary:eX(e.summary),cadence:eX(e.cadence),condition:eX(e.condition),progress:eq(e.progress),status:eK(e.status),createdAt:r,updatedAt:i}}function eY(e){if(!eM(e))return null;let t=eW(e.updatedAt??e.createdAt),i=eW(e.createdAt,t),r=eX(e.objectiveId??e.goalId);return r?{id:eX(e.id,eP("objective_activity")),objectiveId:r,sourceType:"note",sourceLabel:eX(e.sourceLabel,"Update"),title:eX(e.title,"Untitled activity"),body:eX(e.body),createdAt:i,updatedAt:t,relatedTaskId:eX(e.relatedTaskId)||null}:null}function eG(e){if(!eM(e))return null;let t=eX(e.activityId);return t?{id:eX(e.id,eP("objective_thread_message")),activityId:t,author:eX(e.author,"You"),body:eX(e.body),createdAt:eW(e.createdAt)}:null}function eV(){return{objectives:[],activities:[],activityThreads:{}}}function ez(e){let t;if(!eM(e))return eV();let i=Array.isArray(e.objectives)?e.objectives.map(e=>eH(e)).filter(e=>null!==e):[],r=Array.isArray(e.activities)?e.activities.map(e=>eY(e)).filter(e=>null!==e):[],a=eM(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,eF(Array.isArray(t)?t.map(e=>eG(e)).filter(e=>null!==e):[])])):{};return{objectives:eU((t=new Set,i.map(e=>{let i=function(e,t,i="objective"){let r=eB(i),a=eB(e,r),n=a,s=2;for(;t.has(n);){let e=`-${s}`,t=Math.max(1,32-e.length);n=`${a.slice(0,t)}${e}`,s+=1}return t.add(n),n}(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===i?e:{...e,key:i}}))),activities:eJ(r),activityThreads:a}}function eZ(e,t){let i={...e};return t?i[e$]={progress:eq(t.progress),status:eK(t.status),updatedAt:eW(t.updatedAt),...t.source?{source:t.source.trim()}:{},...t.objectiveId?{objectiveId:t.objectiveId}:{},...t.objectiveKey?{objectiveKey:t.objectiveKey}:{},...t.note?{note:t.note.trim()}:{}}:delete i[e$],i}let eQ=/^---\s*\n([\s\S]*?)\n---\s*(?:\n([\s\S]*))?$/;function e0(e,t=""){return"string"==typeof e?e:t}function e1(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let i=Date.parse(e);return Number.isNaN(i)?t:new Date(i).toISOString()}let e2=new Set(["on_track","at_risk","off_track","done"]);function e8(e,t={}){var i,r,a,n;let s,o,l=e.match(eQ);if(!l)throw Error(`Objective file is missing YAML frontmatter${t.filePath?` (${t.filePath})`:""}.`);let[,d,u=""]=l,c=!(i=(0,Q.load)(d,{...t.filePath?{filename:t.filePath}:{}}))||"object"!=typeof i||Array.isArray(i)?{}:i,{summary:p,activities:m,activityThreads:f}=function(e,t){let i=e.split(/(?=^## )/m),r="",a=[],n={};for(let e of i){let i=e.trim();if(i){if(i.startsWith("## Notes")){r=i.replace(/^## Notes\s*/,"").trim();continue}if(i.startsWith("## Activities")){for(let e of i.split(/(?=^### )/m).slice(1)){let i=function(e,t){let i=e.split("\n"),r=i[0];if(!r)return null;let a=r.replace(/^###\s+/,"").trim();if(!a)return null;let n="",s="Update",o="",l="",d=null,u=[],c=!1;for(let e=1;e<i.length;e++){let t=i[e];if(t.startsWith("#### Replies")){c=!0;continue}if(c){let e=t.match(/^- \*\*(.+?)\*\*\s+\((\d{4}-\S+)\):\s*(.+)$/);if(e){let[,t,i,r]=e;u.push({id:`reply_${Math.random().toString(36).slice(2,10)}`,activityId:n,author:t,body:r,createdAt:e1(i)})}continue}let r=t.match(/^- \*\*(\w+):\*\*\s*(.+)$/);if(r){let[,e,t]=r;switch(e){case"id":n=t.trim();break;case"source":s=t.trim();break;case"created":o=e1(t.trim());break;case"body":l=t.trim();break;case"relatedTaskId":d=t.trim()||null}continue}}for(let e of(n||(n=`objective_activity_${Math.random().toString(36).slice(2,10)}`),o||(o=new Date().toISOString()),u))e.activityId=n;return{activity:{id:n,objectiveId:t,sourceType:"note",sourceLabel:s,title:a,body:l,createdAt:o,updatedAt:o,relatedTaskId:d},replies:u}}(e.trim(),t);i&&(a.push(i.activity),i.replies.length>0&&(n[i.activity.id]=i.replies))}continue}i.startsWith("## ")||(r=i)}}return{summary:r,activities:a,activityThreads:n}}(u,e0(c.id));return{objective:(s=e1(c.updatedAt??c.createdAt),o=e1(c.createdAt,s),{id:e0(c.id),title:e0(c.title,"Untitled objective"),teamId:e0(c.teamId),key:e0(c.key),threadId:e0(c.threadId)||null,chatSessionVersion:function(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}(c.chatSessionVersion,0),scheduledTaskIds:Array.isArray(r=c.scheduledTaskIds)?r.map(e=>"string"==typeof e?e.trim():"").filter(Boolean):[],summary:p,cadence:e0(c.cadence),condition:e0(c.condition),progress:"number"==typeof(a=c.progress)&&Number.isFinite(a)?Math.max(0,Math.min(100,Math.round(a))):0,status:"string"==typeof(n=c.status)&&e2.has(n)?n:"on_track",createdAt:o,updatedAt:s}),activities:m,activityThreads:f}}let e5=/^---\s*\n([\s\S]*?)\n---\s*(?:\n([\s\S]*))?$/;function e3(e,t=""){return"string"==typeof e?e:t}function e4(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let i=Date.parse(e);return Number.isNaN(i)?t:new Date(i).toISOString()}function e7(e,t={}){let i=e.match(e5);if(!i)throw Error(`Note file is missing YAML frontmatter${t.filePath?` (${t.filePath})`:""}.`);let[,r,a=""]=i,n=(0,Q.load)(r,{...t.filePath?{filename:t.filePath}:{}}),s=n&&"object"==typeof n&&!Array.isArray(n)?n:{},o=e4(s.createdAt),l=e4(s.updatedAt,o);return{id:e3(s.id),title:e3(s.title,"Untitled"),objectiveId:e3(s.objectiveId),createdAt:o,updatedAt:l,body:a.trim()}}function e9(e){let t={id:e.id,title:e.title,objectiveId:e.objectiveId,createdAt:e.createdAt,updatedAt:e.updatedAt},i=(0,Q.dump)(t,{lineWidth:120,noRefs:!0,sortKeys:!1}).trimEnd(),r=e.body.trim();return r?`---
434
- ${i}
435
- ---
436
-
437
- ${r}
438
- `:`---
439
- ${i}
440
- ---
441
- `}function e6(e){let t=e.createdAt.replace(/[:.]/g,"-").replace("T","-").replace("Z",""),i=e.title.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48);return`${t}-${i}.md`}class te{rootDir;constructor(e){this.rootDir=i.default.resolve(e)}ensureDir(){t.default.mkdirSync(this.rootDir,{recursive:!0})}readAll(){if(!t.default.existsSync(this.rootDir))return[];let e=t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md")),r=[];for(let a of e){let e=i.default.join(this.rootDir,a);try{let i=t.default.readFileSync(e,"utf8");r.push(e7(i,{filePath:e}))}catch(t){console.error(`[notes] failed to read ${e}:`,t)}}return r.sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}list(e={}){let t=this.readAll(),i=t.length,r=Math.max(1,e.page??1),a=Math.min(100,Math.max(1,e.limit??25)),n=(r-1)*a;return{notes:t.slice(n,n+a),total:i,page:r,limit:a,hasMore:n+a<i}}append(e){this.ensureDir();let r=e6(e),a=i.default.join(this.rootDir,r),n=e9(e);return t.default.writeFileSync(a,n,"utf8"),a}findById(e){return this.readAll().find(t=>t.id===e)??null}update(e,r){if(!t.default.existsSync(this.rootDir))return null;for(let a of t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))){let n,s,o=i.default.join(this.rootDir,a);try{n=t.default.readFileSync(o,"utf8")}catch{continue}try{s=e7(n,{filePath:o})}catch{continue}if(s.id!==e)continue;let l={...s,title:r.title??s.title,body:r.body??s.body,updatedAt:new Date().toISOString()},d=e6(l),u=i.default.join(this.rootDir,d);return t.default.writeFileSync(u,e9(l),"utf8"),u!==o&&t.default.unlinkSync(o),l}return null}delete(e){if(!t.default.existsSync(this.rootDir))return!1;for(let r of t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))){let a,n,s=i.default.join(this.rootDir,r);try{a=t.default.readFileSync(s,"utf8")}catch{continue}try{n=e7(a,{filePath:s})}catch{continue}if(n.id===e)return t.default.unlinkSync(s),!0}return!1}}class tt{rootDir;constructor(e){this.rootDir=i.default.resolve(e)}ensureDir(){t.default.mkdirSync(this.rootDir,{recursive:!0})}readWorkspace(){if(!t.default.existsSync(this.rootDir))return{objectives:[],activities:[],activityThreads:{}};let e=t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md")),r=[],a=[],n={};for(let s of e){let e=i.default.join(this.rootDir,s);try{let s=t.default.readFileSync(e,"utf8"),o=e8(s,{filePath:e}),l=o.objective,d=new te(i.default.join(this.rootDir,l.key,"notes")),u=d.readAll();if(0===u.length&&l.summary.trim()){let e=new Date().toISOString(),t={id:`note_${Math.random().toString(36).slice(2,10)}`,title:"Notes",objectiveId:l.id,createdAt:e,updatedAt:e,body:l.summary};d.append(t),u=[t]}l.notes=u,u.length>0&&(l.summary=u[0].body),r.push(l),a.push(...o.activities),Object.assign(n,o.activityThreads)}catch(t){console.error(`[objectives] failed to read ${e}:`,t)}}return{objectives:r,activities:a,activityThreads:n}}writeWorkspace(e){this.ensureDir();let r=t.default.existsSync(this.rootDir)?new Set(t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))):new Set,a=new Set;for(let r of e.objectives){let n=`${r.key}.md`,s=i.default.join(this.rootDir,n),o=function(e,t,i){let r,a=(r=function(e){let t={};for(let[i,r]of Object.entries(e))null!=r&&""!==r&&(Array.isArray(r)&&0===r.length||(t[i]=r));return t}({id:e.id,title:e.title,teamId:e.teamId,key:e.key,status:e.status,progress:e.progress||void 0,cadence:e.cadence,condition:e.condition,threadId:e.threadId,chatSessionVersion:e.chatSessionVersion||void 0,scheduledTaskIds:e.scheduledTaskIds.length>0?e.scheduledTaskIds:void 0,createdAt:e.createdAt,updatedAt:e.updatedAt}),(0,Q.dump)(r,{lineWidth:120,noRefs:!0,sortKeys:!1}).trimEnd()),n=[],s=t.filter(t=>t.objectiveId===e.id).sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt));if(s.length>0){let e=["## Activities"];for(let t of s){let r=function(e){let t=[];return t.push(`### ${e.title}`),t.push(`- **id:** ${e.id}`),t.push(`- **source:** ${e.sourceLabel}`),t.push(`- **created:** ${e.createdAt}`),e.body&&t.push(`- **body:** ${e.body}`),e.relatedTaskId&&t.push(`- **relatedTaskId:** ${e.relatedTaskId}`),t.join("\n")}(t),a=function(e){if(0===e.length)return"";let t=["#### Replies"];for(let i of e)t.push(`- **${i.author}** (${i.createdAt}): ${i.body}`);return t.join("\n")}(i[t.id]??[]);e.push(a?`${r}
442
-
443
- ${a}`:r)}n.push(e.join("\n\n"))}let o=n.join("\n\n");return o.length>0?`---
444
- ${a}
445
- ---
446
-
447
- ${o}
448
- `:`---
449
- ${a}
450
- ---
451
- `}(r,e.activities,e.activityThreads);t.default.writeFileSync(s,o,"utf8"),a.add(n)}for(let n of r)if(!a.has(n)){let r=i.default.join(this.rootDir,n);try{let a=t.default.readFileSync(r,"utf8"),s=e8(a,{filePath:r}),o=n.replace(/\.md$/,""),l=e.objectives.find(e=>e.id===s.objective.id);if(l&&l.key!==o){let e=i.default.join(this.rootDir,o),r=i.default.join(this.rootDir,l.key);t.default.existsSync(e)&&t.default.renameSync(e,r)}t.default.rmSync(r,{force:!0})}catch{t.default.rmSync(r,{force:!0})}}}findObjectiveByKey(e){let r=i.default.join(this.rootDir,`${e}.md`);if(!t.default.existsSync(r))return null;try{let e=t.default.readFileSync(r,"utf8");return e8(e,{filePath:r}).objective}catch{return null}}findObjectiveById(e){if(!t.default.existsSync(this.rootDir))return null;for(let r of t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))){let a=i.default.join(this.rootDir,r);try{let i=t.default.readFileSync(a,"utf8"),r=e8(i,{filePath:a});if(r.objective.id===e)return r.objective}catch{continue}}return null}deleteObjective(e){let r=i.default.join(this.rootDir,`${e}.md`);return!!t.default.existsSync(r)&&(t.default.rmSync(r,{force:!0}),!0)}hasFiles(){return!!t.default.existsSync(this.rootDir)&&t.default.readdirSync(this.rootDir).some(e=>e.endsWith(".md"))}}let ti=new Map;function tr(e){let t,a=i.default.join((t=process.env.AGX_DATA_DIR?.trim())?i.default.resolve(t):i.default.join((0,r.homedir)(),".agx"),"projects",e,"objectives"),n=ti.get(a);return n||(n=new tt(a),ti.set(a,n)),n}async function ta(e,t){var i;let r,a=await ek.db.getProjectWithRepos(e,L.LOCAL_USER.id);if(!a)return null;let n=(r=tr((i=a).slug??i.id)).hasFiles()?r.readWorkspace():function(e){if(!eM(e))return eV();let t=e[eD];if(void 0!==t){let e=ez(t);if(e.objectives.length>0||e.activities.length>0||Object.keys(e.activityThreads).length>0)return e}let i=e[ex];if(void 0!==i){if(!eM(i))return eV();let e=Array.isArray(i.goals)?i.goals.map(e=>(function(e){if(!eM(e))return null;let t=eX(e.target),i=[eX(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return eH({...e,summary:i,cadence:""})})(e)).filter(e=>null!==e):[],t=Array.isArray(i.manualActivities)?i.manualActivities.map(e=>eY({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=eM(i.activityThreads)?Object.fromEntries(Object.entries(i.activityThreads).map(([e,t])=>[e,eF(Array.isArray(t)?t.map(t=>eG({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:eU(e),activities:eJ(t),activityThreads:r}}return eV()}(i.metadata),s=n.objectives.find(e=>e.id===t)??null;return s?{project:a,workspace:n,objective:s}:null}async function tn(e){var t,i;let r,a=await ek.db.getProjectWithRepos(e.projectId,L.LOCAL_USER.id);tr(a?.slug??e.projectId).writeWorkspace(e.workspace);let n=(t=e.currentMetadata??{},i=e.workspace,r={...t},delete r[ex],r[eD]=ez(i),r),s=e.transformMetadata?e.transformMetadata(n):n;return ek.db.updateProject(e.projectId,L.LOCAL_USER.id,{metadata:s})}async function ts(e){return ek.db.updateProject(e.projectId,L.LOCAL_USER.id,{metadata:eZ(e.currentMetadata??{},e.snapshot)})}let to=/^---\s*\n([\s\S]*?)\n---\s*(?:\n([\s\S]*))?$/,tl=new Set(["metric-check","status-update","milestone","note"]);function td(e,t=""){return"string"==typeof e?e:t}class tu{rootDir;constructor(e){this.rootDir=i.default.resolve(e)}ensureDir(){t.default.mkdirSync(this.rootDir,{recursive:!0})}readAll(){if(!t.default.existsSync(this.rootDir))return[];let e=t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md")),r=[];for(let a of e){let e=i.default.join(this.rootDir,a);try{let i=t.default.readFileSync(e,"utf8");r.push(function(e,t={}){var i;let r=e.match(to);if(!r)throw Error(`Activity file is missing YAML frontmatter${t.filePath?` (${t.filePath})`:""}.`);let[,a,n=""]=r,s=(0,Q.load)(a,{...t.filePath?{filename:t.filePath}:{}}),o=s&&"object"==typeof s&&!Array.isArray(s)?s:{};return{id:td(o.id),source:td(o.source,"manual"),objectiveLabel:td(o.objectiveLabel),createdAt:function(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let i=Date.parse(e);return Number.isNaN(i)?t:new Date(i).toISOString()}(o.createdAt),type:"string"==typeof(i=o.type)&&tl.has(i)?i:"note",body:n.trim()}}(i,{filePath:e}))}catch(t){console.error(`[activities] failed to read ${e}:`,t)}}return r.sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}list(e={}){let t=this.readAll();if(e.type&&(t=t.filter(t=>t.type===e.type)),e.source&&(t=t.filter(t=>t.source===e.source)),e.from){let i=Date.parse(e.from);Number.isNaN(i)||(t=t.filter(e=>Date.parse(e.createdAt)>=i))}if(e.to){let i=Date.parse(e.to);Number.isNaN(i)||(t=t.filter(e=>Date.parse(e.createdAt)<=i))}let i=t.length,r=Math.max(1,e.page??1),a=Math.min(100,Math.max(1,e.limit??25)),n=(r-1)*a;return{activities:t.slice(n,n+a),total:i,page:r,limit:a,hasMore:n+a<i}}append(e){var r;let a,n,s,o,l;this.ensureDir();let d=(o=(r=e).createdAt.replace(/[:.]/g,"-").replace("T","-").replace("Z",""),l=r.type.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48),`${o}-${l}.md`),u=i.default.join(this.rootDir,d),c=(a={id:e.id,source:e.source,objectiveLabel:e.objectiveLabel,createdAt:e.createdAt,type:e.type},n=(0,Q.dump)(a,{lineWidth:120,noRefs:!0,sortKeys:!1}).trimEnd(),(s=e.body.trim())?`---
452
- ${n}
453
- ---
454
-
455
- ${s}
456
- `:`---
457
- ${n}
458
- ---
459
- `);return t.default.writeFileSync(u,c,"utf8"),u}}let tc=new Map,tp=null,tm=!1,tf=!1,th=!1,tg=(0,i.join)((0,r.homedir)(),".agx","agents"),t_={on_track:"On track",at_risk:"At risk",off_track:"Off track",done:"Done"};function ty(e,t){let i=(0,O.buildCliAttempts)({provider:e,model:t,prompt:"",systemPrompt:void 0});if(i.length>0){let{command:e,args:t}=i[0];return`${e} ${t.slice(0,3).join(" ")}`}return e}async function tb(e){let r,a,n,s=await (0,w.getAgent)(e,L.LOCAL_USER.id);if(!s)return{provider:"claude",model:null,identity:void 0,self:void 0,skills:void 0};let o=(0,i.join)(tg,e),l=[];s.name&&l.push(`Name: ${s.name}`),s.description&&l.push(s.description),s.voice&&l.push(`Voice: ${s.voice}`),l.length>0&&(r=l.join("\n"));let d=(0,i.join)(o,"self.md");if((0,t.existsSync)(d)){let e=(0,t.readFileSync)(d,"utf-8"),i=e.match(/^---[\s\S]*?---\s*\n?([\s\S]*)$/);(a=i?i[1].trim():e.trim())||(a=void 0)}let u=await (0,w.getAgentSkills)(e);if(u.length>0){let e=[];for(let r of u){let a=r.file.startsWith("/")?r.file:(0,i.join)(o,r.file);if((0,t.existsSync)(a))try{let i=(0,t.readFileSync)(a,"utf-8");e.push(`## ${r.file}
460
- ${i}`)}catch(e){console.error("[prompt-jobs/processor] failed to read skill file:",e)}}e.length>0&&(n=e.join("\n\n"))}return{provider:s.provider||"claude",model:s.model||null,identity:r,self:a,skills:n}}async function tE(e){return tj(e,e.agentId)}async function tj(e,t){return t?tb(t):{provider:e.provider||"claude",model:e.model||null,identity:void 0,self:void 0,skills:void 0}}async function tI(e){let t=Date.now(),i="";try{return await (0,O.runCliResponse)({provider:e.provider,model:e.model,prompt:e.prompt,identity:e.identity,self:e.self,skills:e.skills,systemContext:e.systemContext,passthroughArgs:e.cliArgs?e.cliArgs.split(/\s+/).filter(Boolean):void 0,onDelta:e=>{i+=e},onSpawn:e.onSpawn}),{output:i,error:"",durationMs:Date.now()-t,status:"success"}}catch(e){return{output:i,error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}function tv(e){try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}function tT(e){return[`- id: ${e.id}`,` identifier: ${e.identifier}`,` title: ${e.title}`,` status: ${e.status}`,` assignee: ${e.assignee??"Unassigned"}`,e.url?` url: ${e.url}`:null].filter(e=>!!e).join("\n")}function tA(e,t,i){return`${e}: ${t}% ${t_[i]}`}function tS(e){return"number"==typeof e&&Number.isFinite(e)?eq(e):null}function tR(e){return"string"==typeof e&&e.trim()?eK(e):null}async function tw(e){let t=await (0,N.loadDbParticipants)();if(e.agentId){let i=t.find(t=>t.id===e.agentId)??null;if(!i)throw Error(`Objective worker agent "${e.agentId}" is no longer available.`);return i}if(!e.projectId)throw Error("Objective Linear worker requires a project context to resolve an agent.");for(let i of(await (0,w.getProjectAgents)(e.projectId))){let e=t.find(e=>e.id===i.agent_id)??null;if(e)return e}throw Error("No project agent is available to work objective Linear tickets.")}async function tL(e){var t,a;let n,s,o;(t=e.projectSlug,a=e.objectiveKey,s=i.default.join((n=process.env.AGX_DATA_DIR?.trim())?i.default.resolve(n):i.default.join((0,r.homedir)(),".agx"),"projects",t,"objectives",a,"activities"),!(o=tc.get(s))&&(o=new tu(s),tc.set(s,o)),o).append({id:crypto.randomUUID(),source:`scheduled-task:${e.jobId}`,objectiveLabel:e.objectiveKey,createdAt:new Date().toISOString(),type:"status-update",body:e.body})}async function tN(e){let t=Date.now();try{var i,r,a;let n,s;if(!e.job.projectId||!e.job.objectiveId)throw Error("Objective Linear worker jobs require projectId and objectiveId.");let o=await ta(e.job.projectId,e.job.objectiveId);if(!o)throw Error("Objective context could not be resolved for this scheduled task.");let[{issues:l},d]=await Promise.all([eO({objectiveKey:o.objective.key,projectSlug:o.project.slug,refresh:!0}),q(e.job.projectId)]),u=new Set(l.map(e=>e.id)),c=d.filter(e=>u.has(e.issueId)),p=c.map(e=>`- ${e.issueId}: already running with ${e.agentName}`),m=function(e,t=[]){let i=new Set(Array.from(t,e=>e.trim()).filter(Boolean));return e.filter(e=>!eN(e.status)&&!i.has(e.id))}(l,c.map(e=>e.issueId)),f=(i={jobPrompt:e.job.prompt,objective:{title:o.objective.title,key:o.objective.key,summary:o.objective.summary,progress:o.objective.progress,status:o.objective.status},projectObjectives:o.workspace.objectives.map(e=>({title:e.title,key:e.key,progress:e.progress,status:e.status})),allIssues:l,eligibleIssues:m,activeIssueNotes:p},n=["OBJECTIVE",`- Title: ${i.objective.title}`,`- Label key: ${i.objective.key}`,`- Summary: ${i.objective.summary.trim()||"No summary provided."}`,`- Current progress: ${i.objective.progress}%`,`- Current health: ${i.objective.status}`,"","PROJECT OBJECTIVES",i.projectObjectives.length>0?i.projectObjectives.map(e=>`- ${e.title} (${e.key}) | ${e.progress}% | ${e.status}`).join("\n"):"- No project objectives found.","","ALL OBJECTIVE TICKETS",i.allIssues.length>0?i.allIssues.map(e=>tT(e)).join("\n\n"):"- None.","","SCHEDULER GUIDANCE",i.jobPrompt.trim()||"No additional guidance provided.","","ELIGIBLE TICKETS",i.eligibleIssues.length>0?i.eligibleIssues.map(e=>tT(e)).join("\n\n"):"- None."],i.activeIssueNotes.length>0&&n.push("","ALREADY ACTIVE ELSEWHERE",i.activeIssueNotes.join("\n")),n.push("",'Choose "work" only when one listed ticket is clearly the right next ticket to start now.','Choose "stop" when none of the listed tickets should be worked right now.','If you choose "work", ticketId must exactly match one of the listed ids.'),n.join("\n")),h=await tI({...e.controllerContext,prompt:f,systemContext:'You are deciding whether a scheduled objective worker should start exactly one Linear work session.\nReturn ONLY raw JSON with no markdown fences or commentary.\nValid responses:\n{"decision":"stop","reason":"short reason","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\n{"decision":"work","ticketId":"ticket-id-from-list","reason":"short reason","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\nPercentages must be integers from 0 to 100.\nStatuses must be one of: on_track, at_risk, off_track, done.',cliArgs:e.cliArgs,onSpawn:e.onSpawn});if("success"!==h.status)return{...h,output:h.output||"Objective controller failed before selecting a ticket."};let g=function(e){let t=e.trim();if(!t)return null;let i=tv(t);if(i)return i;let r=t.indexOf("{"),a=t.lastIndexOf("}");return -1===r||a<=r?null:tv(t.slice(r,a+1))}(h.output),_="string"==typeof g?.decision?g.decision.trim().toLowerCase():"",y="string"==typeof g?.reason?g.reason.trim():"",b=tS(g?.objectiveProgress),E=tR(g?.objectiveStatus),j=tS(g?.projectProgress),I=tR(g?.projectStatus),v="string"==typeof g?.projectNote?g.projectNote.trim():"",T="string"==typeof g?.objectiveNote?g.objectiveNote.trim():"",A=new Date().toISOString(),S=null!==b&&E?tA("Objective health",b,E):null,R=null!==j&&I?tA("Project health",j,I):null,w=null!==b&&null!==E&&(b!==o.objective.progress||E!==o.objective.status),L=w?(r=o.workspace,a={...o.objective,progress:b,status:E,updatedAt:A},s=r.objectives.findIndex(e=>e.id===a.id)>=0?r.objectives.map(e=>e.id===a.id?a:e):[a,...r.objectives],{...r,objectives:eU(s)}):o.workspace,N=null!==j&&null!==I?{progress:j,status:I,updatedAt:A,source:`scheduled-task:${e.job.id}`,objectiveId:o.objective.id,objectiveKey:o.objective.key,note:v||void 0}:null;if(w?await tn({projectId:o.project.id,currentMetadata:o.project.metadata,workspace:L,transformMetadata:e=>N?eZ(e,N):e}):N&&await ts({projectId:o.project.id,currentMetadata:o.project.metadata,snapshot:N}),"stop"===_){let i=l.some(e=>!eN(e.status)),r=0===l.length?"No objective-labeled Linear tickets were found.":0===m.length?i?"All actionable objective tickets already have active sessions.":"All objective tickets are already in a terminal state.":"The controller decided that no ticket should be started right now.",a=y||r;return await tL({jobId:e.job.id,projectSlug:o.project.slug,objectiveKey:o.objective.key,body:["No actionable objective tickets.",`Reason: ${a}`,S,T||null,R,v||null].filter(e=>!!e).join("\n\n")}),{output:["No actionable objective tickets.",`Reason: ${a}`,S,R].filter(e=>!!e).join("\n"),error:"",durationMs:Date.now()-t,status:"success"}}if("work"!==_)throw Error(`Objective worker controller returned an invalid decision: ${h.output}`);let O="string"==typeof g?.ticketId?g.ticketId.trim():"",k=m.find(e=>e.id===O)??null;if(!k)throw Error(`Objective worker controller selected an unknown ticket: ${O||"(empty)"}`);let D=await G({projectId:o.project.id,projectSlug:o.project.slug,issue:{id:k.id,identifier:k.identifier,title:k.title,status:k.status,assignee:k.assignee},agentId:e.sessionAgent.id}),x=k.url?`[${k.identifier}](${k.url})`:k.identifier;return await tL({jobId:e.job.id,projectSlug:o.project.slug,objectiveKey:o.objective.key,body:[`Started work on ${x}: ${k.title}`,y?`Reason: ${y}`:null,S,T||null,R,v||null,`Linear run: ${D.run.id}`].filter(e=>!!e).join("\n\n")}),{output:[`Started work on ${k.identifier}: ${k.title}`,y?`Reason: ${y}`:null,S,R,`Linear run: ${D.run.id}`,`Chat run: ${D.chatRunId}`].filter(e=>!!e).join("\n"),error:"",durationMs:Date.now()-t,status:"success"}}catch(e){return{output:"",error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}async function tO(e,t,i={}){if("objective_linear_ticket"===e.executionMode){let t=await tw(e),r=await tj(e,t.id);return tN({job:e,controllerContext:r,sessionAgent:t,cliArgs:e.cliArgs,onSpawn:i.onSpawn})}return tI({...t,prompt:e.prompt,cliArgs:e.cliArgs,onSpawn:i.onSpawn})}async function tk(e,t){let i=A(),r=new Date().toISOString(),a=ty(e.provider||"claude",e.model||null);i.updateRun(t.id,{status:"running",startedAt:r,hostCommand:a});let n=await tE(e),s=`You are a condition gate. Your job is to determine whether the following condition expression evaluates to "yes" (pass) or "no" (fail).
461
-
462
- Rules:
463
- - If the condition is a boolean literal or expression (e.g. "true", "return True", "1 == 1"), evaluate it as code and respond based on its result.
464
- - If the condition is a natural-language statement, judge whether it holds.
465
- - If the condition is an instruction (e.g. "say yes", "always pass"), follow it.
466
- - Respond with ONLY "yes" or "no" (lowercase, nothing else).
467
-
468
- Condition: ${e.condition}`,o=ty(n.provider,n.model);o!==a&&i.updateRun(t.id,{hostCommand:o});let l=await tI({...n,prompt:s,cliArgs:e.cliArgs,onSpawn:e=>{i.updateRun(t.id,{hostPid:e})}}),d=l.output.trim().toLowerCase(),u=/\byes\b/.test(d);if("success"!==l.status||!u){i.updateRun(t.id,{status:"success",output:`Gate: ${d}
469
- (condition not met — skipped action)`,durationMs:l.durationMs,finishedAt:new Date().toISOString()}),i.updateJob(e.id,{lastOutcome:"success",lastRunAt:Date.now()});return}i.updateRun(t.id,{output:`Gate: yes
470
- Executing action prompt...`,hostPid:null});let c=await tO(e,n,{onSpawn:e=>{i.updateRun(t.id,{hostPid:e})}});i.updateRun(t.id,{status:c.status,output:`Gate: yes
471
- ---
472
- ${c.output}`,error:c.error||void 0,durationMs:l.durationMs+c.durationMs,finishedAt:new Date().toISOString()}),i.updateJob(e.id,{lastOutcome:c.status,lastRunAt:Date.now()})}async function tD(e,t){let i=A(),r=new Date().toISOString(),a=ty(e.provider||"claude",e.model||null);i.updateRun(t.id,{status:"running",startedAt:r,hostCommand:a});let n=await tE(e),s=ty(n.provider,n.model);s!==a&&i.updateRun(t.id,{hostCommand:s});let o=await tO(e,n,{onSpawn:e=>{i.updateRun(t.id,{hostPid:e})}});i.updateRun(t.id,{status:o.status,output:o.output,error:o.error||void 0,durationMs:o.durationMs,finishedAt:new Date().toISOString()}),i.updateJob(e.id,{lastOutcome:o.status,lastRunAt:Date.now()})}function tx(){tp&&!tf&&(tf=!0,setTimeout(()=>{tf=!1,t$()},0))}async function t$(){if(tp&&!th){th=!0;try{for(;tm;)tm=!1,await tp()}finally{th=!1,tm&&tx()}}}async function tC(){let e=A(),t=await S(e),i=e.listQueuedRuns(200),r=0;for(let t of i){let i=e.getJob(t.jobId);i&&(!function(e,t){(e.condition?tk:tD)(e,t).catch(i=>{let r=A();r.updateRun(t.id,{status:"failed",error:`Dispatch error: ${i instanceof Error?i.message:String(i)}`,finishedAt:new Date().toISOString()}),r.updateJob(e.id,{lastOutcome:"failed"})})}(i,t),r++)}return{queued:t.queued,skipped:t.skipped,dispatched:r}}e.s(["processPromptJobs",0,tC,"registerPromptJobPump",0,function(e){tp=e,tm&&tx()},"requestPromptJobPump",0,function(){return tm=!0,!!tp&&(tx(),!0)}],845248)}];
473
-
474
- //# sourceMappingURL=apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js.map