@mndrk/agx 2.0.56 → 2.2.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 (618) hide show
  1. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +2 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +15 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js +4 -3
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +2 -2
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +2 -2
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -3
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js +5 -4
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/app-paths-manifest.json +3 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/build-manifest.json +9 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/server-reference-manifest.json +4 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js +13 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.map +5 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.nft.json +1 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route_client-reference-manifest.js +3 -0
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +4 -4
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js +4 -4
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js +2 -2
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +2 -2
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +14 -13
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js +3 -3
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/app-paths-manifest.json +3 -0
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/build-manifest.json +9 -0
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/server-reference-manifest.json +4 -0
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +28 -0
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.map +5 -0
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -0
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route_client-reference-manifest.js +3 -0
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +9 -5
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +1 -1
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +4 -4
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +16 -15
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js +5 -5
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +2 -2
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +5 -4
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +15 -15
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +15 -15
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js +1 -1
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js.nft.json +1 -1
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +2 -2
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +2 -2
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  226. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
  227. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  228. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js +1 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +6 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js +1 -1
  234. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  235. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  236. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
  237. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  238. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  239. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  242. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
  243. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  244. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  245. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js +1 -1
  246. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  248. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  254. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
  255. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  257. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  271. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js +1 -1
  273. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  274. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  275. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +3 -3
  277. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  278. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  279. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  280. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  281. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  282. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  283. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  287. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  288. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +2 -2
  289. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  290. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  292. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  293. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js.nft.json +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  299. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  300. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  301. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  302. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  303. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  304. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
  307. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  310. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  311. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  313. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  314. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  315. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  316. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js +1 -1
  318. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js.nft.json +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  321. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  322. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  323. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  324. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  325. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  326. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  327. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
  329. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  330. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  331. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  332. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  333. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  334. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  335. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  336. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  337. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  338. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  339. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js +1 -1
  340. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  341. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  342. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +2 -0
  343. package/cloud-runtime/standalone/apps/local/.next/server/chunks/0jps_app_api_projects_[id]_objectives_[objectiveId]_worker_route_actions_0v8q3zz.js +3 -0
  344. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__0_au5u1._.js +3 -0
  345. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__13x93ar._.js +3 -0
  346. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0_10qfd._.js → [root-of-the-server]__0.6yz1u._.js} +2 -2
  347. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01lsgl~._.js +4 -0
  348. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0205scg._.js → [root-of-the-server]__03.9arn._.js} +2 -2
  349. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__03h0gqp._.js +3 -0
  350. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08jo91s._.js +9 -0
  351. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0o315az._.js → [root-of-the-server]__09j9jpf._.js} +2 -2
  352. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-nye63._.js → [root-of-the-server]__09jghbu._.js} +2 -2
  353. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0_7hiof._.js +43 -0
  354. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0.jam.l._.js → [root-of-the-server]__0a0cq38._.js} +2 -2
  355. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +54 -0
  356. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0c86535._.js +3 -0
  357. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0cj1krd._.js +3 -0
  358. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0aa-88e._.js → [root-of-the-server]__0dy3h2i._.js} +2 -2
  359. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0touqng._.js → [root-of-the-server]__0e8-2k_._.js} +2 -2
  360. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0enhv5p._.js +3 -0
  361. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f9byr.._.js +1 -1
  362. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0t2jk2r._.js → [root-of-the-server]__0g7hc1-._.js} +2 -2
  363. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +55 -0
  364. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__019q25b._.js → [root-of-the-server]__0gj~dap._.js} +7 -7
  365. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0e6cj2y._.js → [root-of-the-server]__0hc45jw._.js} +2 -2
  366. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +49 -0
  367. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hmw36u._.js +1 -1
  368. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +54 -0
  369. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0n.momw._.js +8 -0
  370. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tjo9we._.js +7 -0
  371. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-~t2br._.js → [root-of-the-server]__0v7jjvl._.js} +2 -2
  372. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +3 -0
  373. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__11nke7t._.js → [root-of-the-server]__0y3qxv1._.js} +2 -2
  374. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__10z8f9h._.js → [root-of-the-server]__0ygidxe._.js} +2 -2
  375. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +49 -0
  376. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zsv-tb._.js +8 -0
  377. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~nnfjr._.js +3 -0
  378. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~x4jbk._.js +3 -0
  379. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +229 -0
  380. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12qy318._.js +3 -0
  381. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_039.xxy._.js +1 -1
  382. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_06oeti1._.js +49 -0
  383. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0dyy7h.._.js +3 -0
  384. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gi7c9x._.js +2 -2
  385. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gr.psg._.js +1 -1
  386. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0sd8z0i._.js +21 -0
  387. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
  388. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~ah49q._.js +1 -1
  389. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_01kqgle._.js +11 -0
  390. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +36 -0
  391. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +397 -0
  392. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_a~bj0._.js +25 -0
  393. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +397 -0
  394. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0bjdpen._.js +29 -0
  395. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  396. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +41 -0
  397. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0h7wd0e._.js +29 -0
  398. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +397 -0
  399. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0ipg-p6._.js +3 -0
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0npxy21._.js +11 -0
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0uhfa93._.js +21 -0
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_12wpldq._.js +25 -0
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_worker_route_actions_116303i.js +3 -0
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01hd2_5._.js +3 -0
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +34 -0
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0ik933l._.js +55 -0
  407. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0o1v.j4._.js +79 -0
  408. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0pxj122._.js +55 -0
  409. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_0_8ch28._.js +10 -0
  410. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +41 -0
  411. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0.xgxyl._.js +4 -0
  412. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0yu3--n._.js +4 -0
  413. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0ze8hzc._.js +4 -0
  414. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_0p0aod1._.js +5 -5
  415. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_linear-worker_ts_0ycjwem._.js +5 -0
  416. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  417. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  418. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_067eb..._.js +3 -0
  419. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0hvpc.y._.js +3 -0
  420. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__039h7r.._.js +18 -0
  421. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0lno3km._.js +3 -0
  422. 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
  423. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0fl7_-o._.js → [root-of-the-server]__0nqqk26._.js} +2 -2
  424. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0tqn-o5._.js +18 -0
  425. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w.zmt6._.js +3 -0
  426. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w1mm2j._.js +3 -0
  427. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~nm7b6._.js +3 -0
  428. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__10h_7t0._.js +3 -0
  429. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13h-0om._.js +3 -0
  430. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +3 -0
  431. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_064h43p._.js → _05xj_bp._.js} +2 -2
  432. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +1 -1
  433. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0wk3skw._.js +1 -1
  434. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +25 -0
  435. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0nvzo3y._.js → apps_local_04dh2yh._.js} +2 -2
  436. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_075cq2j._.js → apps_local_0k4~c1x._.js} +2 -2
  437. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +3 -0
  438. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0_4hk8x._.js → apps_local_0v~bvwg._.js} +2 -2
  439. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  440. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_graph_[taskId]_page_tsx_0bctfd-._.js +1 -1
  441. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
  442. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +2 -2
  443. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  444. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +3 -0
  445. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_06czvz-._.js +1 -1
  446. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +12 -12
  447. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_orphans_page_tsx_0sdv.11._.js +1 -1
  448. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  449. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +8 -0
  450. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +1 -1
  451. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +6 -6
  452. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  453. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +2 -0
  454. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  455. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  456. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  457. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  458. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  459. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  460. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jonp-o8lh-4j.js → 0-cets4_axpvm.js} +1 -1
  461. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-wlbe.ripd2w.css +1 -0
  462. package/cloud-runtime/standalone/apps/local/.next/static/chunks/003q-y3exxalk.js +1 -0
  463. package/cloud-runtime/standalone/apps/local/.next/static/chunks/00e1ihnb6ap3t.js +16 -0
  464. package/cloud-runtime/standalone/apps/local/.next/static/chunks/00po4v2x~0x_z.js +1 -0
  465. package/cloud-runtime/standalone/apps/local/.next/static/chunks/013gtut17~fne.js +23 -0
  466. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +1 -0
  467. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +1 -0
  468. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_cjth28_11b2.js +16 -0
  469. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{11-u35xqxu~i-.js → 0aewbg0i704w7.js} +1 -1
  470. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{08~pgzjb13k_v.js → 0dnw31436wd~..js} +2 -2
  471. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e6rxcxy.l5c8.js +1 -0
  472. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0o9cxba_5mv2c.js → 0fonouj2i9qnb.js} +1 -1
  473. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gj98094p~zn4.js +1 -0
  474. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ime4btrg-g4l.js +1 -0
  475. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jglardpw~5uc.js +37 -0
  476. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rey9zfvm3yhd.js → 0jq0t4zip38wt.js} +1 -1
  477. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kn66yvx08813.css +1 -0
  478. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{07646a0h94826.js → 0l89kxqcf86on.js} +2 -2
  479. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{02zcxdul-1jaf.js → 0mig99af4~uos.js} +3 -3
  480. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ng6wy4ak35jg.js +1 -0
  481. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0n~jhoq~op4e5.js +16 -0
  482. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +5 -0
  483. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +1 -0
  484. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +1 -0
  485. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0mvqoz13v0o2a.js → 0wh6p5~ft5rma.js} +2 -2
  486. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xu_doej_wc-3.js +20 -0
  487. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00lise4d-u8d1.js → 1011~1x9nj4ny.js} +1 -1
  488. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +20 -0
  489. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16fyhcmwlw3th.js +6 -0
  490. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0uve8xrt~0a2e.js → 18e8w~~mvoh5o.js} +1 -1
  491. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +40 -5
  492. package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +10 -0
  493. package/cloud-runtime/standalone/apps/local/app/api/linear/worker/route.ts +151 -0
  494. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +0 -8
  495. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +6 -27
  496. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +89 -0
  497. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +13 -0
  498. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +4 -4
  499. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +5 -3
  500. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +7 -4
  501. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  502. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +236 -10
  503. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +9 -1
  504. package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +36 -8
  505. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +53 -24
  506. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +76 -2
  507. package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +17 -12
  508. package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +111 -0
  509. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +402 -0
  510. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerRunLog.tsx +190 -0
  511. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +215 -0
  512. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +208 -80
  513. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +8 -2
  514. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +211 -368
  515. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +213 -0
  516. package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +121 -6
  517. package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +1 -1
  518. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +242 -0
  519. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +2 -2
  520. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +1 -1
  521. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +288 -15
  522. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +24 -14
  523. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +118 -17
  524. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +16 -2
  525. package/cloud-runtime/standalone/apps/local/lib/objective-health-history.ts +198 -0
  526. package/cloud-runtime/standalone/apps/local/lib/project-objective-context.ts +10 -0
  527. package/cloud-runtime/standalone/apps/local/lib/project-objectives.ts +0 -9
  528. package/cloud-runtime/standalone/apps/local/skills-lock.json +20 -0
  529. package/cloud-runtime/standalone/apps/local/src/automations/adapters.ts +5 -0
  530. package/cloud-runtime/standalone/apps/local/src/automations/types.ts +5 -0
  531. package/cloud-runtime/standalone/apps/local/src/automations/validation.ts +12 -5
  532. package/cloud-runtime/standalone/apps/local/src/objectives/parser.ts +0 -2
  533. package/cloud-runtime/standalone/apps/local/src/objectives/serializer.ts +0 -2
  534. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-constants.ts +38 -0
  535. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-job.ts +47 -0
  536. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker.ts +482 -0
  537. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker-job.ts +47 -0
  538. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +511 -0
  539. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +51 -417
  540. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +19 -4
  541. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +12 -8
  542. package/cloud-runtime/standalone/apps/local/state/terminalTabs.ts +182 -106
  543. package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +71 -2
  544. package/cloud-runtime/standalone/apps/local/worker/index.js +11 -12
  545. package/package.json +1 -1
  546. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-0479y._.js +0 -54
  547. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08oj_ky._.js +0 -49
  548. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08y2lkj._.js +0 -3
  549. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +0 -3
  550. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g50c6p._.js +0 -237
  551. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gtv0rq._.js +0 -8
  552. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ksbs9p._.js +0 -3
  553. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0pz~m67._.js +0 -3
  554. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q93mk3._.js +0 -7
  555. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tdixb0._.js +0 -49
  556. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vhcrdv._.js +0 -229
  557. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0xdp_8-._.js +0 -237
  558. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11s20j6._.js +0 -3
  559. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12xhcor._.js +0 -54
  560. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_01rag2f._.js +0 -49
  561. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_03y4xss._.js +0 -21
  562. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0cm4i3i._.js +0 -3
  563. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0ijzgnb._.js +0 -3
  564. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~fjhfa._.js +0 -3
  565. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_12yasaj._.js +0 -9
  566. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_03q7_.q._.js +0 -21
  567. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0m3e2d~._.js +0 -30
  568. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0r-oiga._.js +0 -30
  569. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_00cwfvi._.js +0 -34
  570. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0hx7xyz._.js +0 -34
  571. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0rqcat4._.js +0 -55
  572. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0sc_lek._.js +0 -79
  573. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_135ddsu._.js +0 -55
  574. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_store_ts_0h.2qy9._.js +0 -43
  575. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_022nz2u._.js +0 -3
  576. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +0 -475
  577. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yvelwy.js +0 -3
  578. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0qzjdog._.js +0 -3
  579. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0a-mbbj._.js +0 -3
  580. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__07johgg._.js +0 -3
  581. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0bf346q._.js +0 -3
  582. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r3w68h._.js +0 -18
  583. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0x7k~pk._.js +0 -3
  584. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0y8j6el._.js +0 -18
  585. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0yme9fy._.js +0 -3
  586. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~7q5sw._.js +0 -3
  587. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13eqcxp._.js +0 -3
  588. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_09~glsn._.js +0 -3
  589. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0n80y4_._.js +0 -3
  590. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ndrb_0._.js +0 -8
  591. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ut3k~7._.js +0 -3
  592. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0vibfch._.js +0 -3
  593. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +0 -8
  594. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_04hvzn_._.js +0 -3
  595. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-_ukhpeg429c.js +0 -16
  596. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.4d8rshxivwh.js +0 -20
  597. package/cloud-runtime/standalone/apps/local/.next/static/chunks/02p3n7faotpr9.js +0 -16
  598. package/cloud-runtime/standalone/apps/local/.next/static/chunks/051-7k0nnm-vm.js +0 -1
  599. package/cloud-runtime/standalone/apps/local/.next/static/chunks/055bzj5jfgzr0.js +0 -1
  600. package/cloud-runtime/standalone/apps/local/.next/static/chunks/05c-~4v_jrblf.css +0 -1
  601. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09wzd7y~tk-3~.js +0 -1
  602. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0brmd4~76pthy.js +0 -20
  603. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +0 -1
  604. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0hudzktaaxr4g.js +0 -6
  605. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0hzq698w6f4m6.js +0 -1
  606. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0i.su2yr26wb6.js +0 -37
  607. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jsbvcyub73d9.js +0 -1
  608. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l2pt2td_87wr.js +0 -5
  609. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p7s38p3bcffh.js +0 -1
  610. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0q2dgbluvgxf2.js +0 -16
  611. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +0 -1
  612. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ucg8e2wkd8gf.js +0 -1
  613. package/cloud-runtime/standalone/apps/local/.next/static/chunks/104xjvrf6y-zq.js +0 -1
  614. package/cloud-runtime/standalone/apps/local/.next/static/chunks/15jlly_p-g4c8.js +0 -6
  615. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16nozeadjid9-.js +0 -5
  616. /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW → qPuactsz6OYimwT6dSdHn}/_buildManifest.js +0 -0
  617. /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW → qPuactsz6OYimwT6dSdHn}/_clientMiddlewareManifest.js +0 -0
  618. /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW → qPuactsz6OYimwT6dSdHn}/_ssgManifest.js +0 -0
@@ -1,475 +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=w({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=w(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=w(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=w(i,t);e.updateJob(i.id,{nextRunAt:s,lastRunAt:t})}return{queued:a,skipped:n}}function w(e,t){return(0,p.computeNextRun)(e.cronExpr,t)}var R=e.i(623775),N=e.i(864075),L=e.i(133439),k=e.i(374371);function O(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 O(t,"project");let i=String(e?.name??"").trim();return i?O(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-${O(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 B=e.i(200704),K=e.i(202322),H=e.i(295851),Y=e.i(251642);async function G(e){let t=(await (0,L.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,L.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,B.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,B.createChatRun)({id:l,threadId:e.threadId,rootMessageId:n,userId:N.LOCAL_USER.id,projectSlug:i||null,maxSteps:d.maxRounds,activeParticipantIds:[t.id],payload:d}),await (0,K.ensureOrchestratorRuntime)();let u=await (0,H.getQueue)();return await u.send(H.QUEUE_NAMES.CHAT_RUN_PROCESS,{chatRunId:l,userId:N.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 ew(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 eR(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 eN=new Set(["done","cancelled","canceled","duplicate"]);function eL(e){return eN.has(String(e??"").trim().toLowerCase())}async function ek(e){let t=await ew({refresh:e.refresh,projectSlug:e.projectSlug}),{issues:i}=await eR({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 eO=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 eB(e){return"string"==typeof e&&eC.has(e)?e:"on_track"}function eK(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:eK(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:eB(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=eK(i),a=eK(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:eB(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 eO.db.getProjectWithRepos(e,N.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 eO.db.getProjectWithRepos(e.projectId,N.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 eO.db.updateProject(e.projectId,N.LOCAL_USER.id,{metadata:s})}async function ts(e){return eO.db.updateProject(e.projectId,N.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,k.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,R.getAgent)(e,N.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,R.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,k.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 tw(e){return"string"==typeof e&&e.trim()?eB(e):null}async function tR(e,t){let i=await (0,L.loadDbParticipants)();if(e.agentId){let t=i.find(t=>t.id===e.agentId)??null;if(!t)throw Error(`Objective worker agent "${e.agentId}" is no longer available.`);return t}if(t){for(let e of(await (0,R.getTeamAgents)(t))){let t=i.find(t=>t.id===e.agent_id)??null;if(t)return t}throw Error("No agent in the assigned team is available to work this objective.")}if(!e.projectId)throw Error("Objective Linear worker requires a project context to resolve an agent.");for(let t of(await (0,R.getProjectAgents)(e.projectId))){let e=i.find(e=>e.id===t.agent_id)??null;if(e)return e}throw Error("No project agent is available to work objective Linear tickets.")}async function tN(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 tL(e,t){try{let i=await ta(t.projectId,t.objectiveId);if(!i)return;let r=[`**${e.jobName}** — ${e.status}`,"",e.result];e.reason&&r.push("",`Reason: ${e.reason}`),e.linearRunId&&r.push("",`Linear run: ${e.linearRunId}`),e.chatRunId&&r.push("",`Chat run: ${e.chatRunId}`),await tN({jobId:t.jobId,projectSlug:i.project.slug,objectiveKey:i.objective.key,body:r.join("\n")})}catch{}}async function tk(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([ek({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=>!eL(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_ticket" when one listed ticket is clearly the right next ticket to start now.','Choose "run_prompt" when the objective needs work not captured by an existing ticket (e.g. creating tickets, drafting docs, reviewing PRs).','Choose "stop" when no action should be taken right now.','If you choose "work_ticket", ticketId must exactly match one of the listed ids.','If you choose "run_prompt", provide a detailed prompt the executing agent will follow.'),n.join("\n")),h=await tI({...e.controllerContext,prompt:f,systemContext:'You are deciding what action an objective worker should take next.\nReturn ONLY raw JSON with no markdown fences or commentary.\nValid responses:\n{"action":"work_ticket","ticketId":"ticket-id-from-list","reason":"short reason","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\n{"action":"run_prompt","prompt":"detailed instructions for the agent to execute","reason":"short reason","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\n{"action":"stop","reason":"short reason","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\nRules:\n- "work_ticket": Use when a specific eligible Linear ticket should be worked now. ticketId must exactly match one of the listed ids in ELIGIBLE TICKETS.\n- "run_prompt": Use when the objective needs work not captured by an existing ticket — creating new tickets, drafting docs, reviewing PRs, research, or other non-ticket work. Provide a detailed prompt.\n- "stop": Use when no action should be taken right now.\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 an action."};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?.action?g.action.trim().toLowerCase():"string"==typeof g?.decision?g.decision.trim().toLowerCase():"",y="string"==typeof g?.reason?g.reason.trim():"",b=tS(g?.objectiveProgress),E=tw(g?.objectiveStatus),j=tS(g?.projectProgress),I=tw(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,w=null!==j&&I?tA("Project health",j,I):null,R=null!==b&&null!==E&&(b!==o.objective.progress||E!==o.objective.status),N=R?(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,L=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;R?await tn({projectId:o.project.id,currentMetadata:o.project.metadata,workspace:N,transformMetadata:e=>L?eZ(e,L):e}):L&&await ts({projectId:o.project.id,currentMetadata:o.project.metadata,snapshot:L});let k=await tO({action:"work"===_?"work_ticket":_,parsed:g,reason:y,job:e.job,controllerContext:e.controllerContext,sessionAgent:e.sessionAgent,objectiveContext:o,eligibleIssues:m,issues:l,healthSummaries:{objectiveHealthSummary:S,projectHealthSummary:w,objectiveNote:T,projectNote:v},cliArgs:e.cliArgs,onSpawn:e.onSpawn,startMs:t});return await tL(k,{jobId:e.job.id,projectId:e.job.projectId,objectiveId:e.job.objectiveId}),{output:k.result,error:"failed"===k.status?k.result:"",durationMs:Date.now()-t,status:k.status}}catch(e){return{output:"",error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}async function tO(e){let{action:t,parsed:i,reason:r,healthSummaries:a}=e;if("stop"===t){let t=e.issues.some(e=>!eL(e.status)),i=0===e.issues.length?"No objective-labeled Linear tickets were found.":0===e.eligibleIssues.length?t?"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.",n=r||i;return{action:"stop",jobName:e.job.name,reason:n,result:["No action taken.",`Reason: ${n}`,a.objectiveHealthSummary,a.objectiveNote||null,a.projectHealthSummary,a.projectNote||null].filter(e=>!!e).join("\n\n"),durationMs:Date.now()-e.startMs,status:"success"}}if("run_prompt"===t){let t="string"==typeof i?.prompt?i.prompt.trim():"";if(!t)return{action:"run_prompt",jobName:e.job.name,reason:r,result:"Controller returned run_prompt but provided no prompt text.",durationMs:Date.now()-e.startMs,status:"failed"};let n=await tI({...e.controllerContext,prompt:t,cliArgs:e.cliArgs,onSpawn:e.onSpawn}),s="success"===n.status?(n.output||"").split("\n").filter(Boolean).slice(0,10).join("\n")||"Prompt completed.":`Prompt failed: ${n.error||"unknown error"}`;return{action:"run_prompt",jobName:e.job.name,reason:r,result:[s,a.objectiveHealthSummary,a.projectHealthSummary].filter(e=>!!e).join("\n\n"),durationMs:Date.now()-e.startMs,status:n.status}}if("work_ticket"===t){let t="string"==typeof i?.ticketId?i.ticketId.trim():"",n=e.eligibleIssues.find(e=>e.id===t)??null;if(!n)return{action:"work_ticket",jobName:e.job.name,reason:r,result:`Controller selected an unknown ticket: ${t||"(empty)"}`,durationMs:Date.now()-e.startMs,status:"failed"};let s=await G({projectId:e.objectiveContext.project.id,projectSlug:e.objectiveContext.project.slug,issue:{id:n.id,identifier:n.identifier,title:n.title,status:n.status,assignee:n.assignee},agentId:e.sessionAgent.id}),o=n.url?`[${n.identifier}](${n.url})`:n.identifier;return{action:"work_ticket",jobName:e.job.name,reason:r,result:[`Started work on ${o}: ${n.title}`,r?`Reason: ${r}`:null,a.objectiveHealthSummary,a.objectiveNote||null,a.projectHealthSummary,a.projectNote||null,`Linear run: ${s.run.id}`].filter(e=>!!e).join("\n\n"),linearRunId:s.run.id,chatRunId:s.chatRunId,durationMs:Date.now()-e.startMs,status:"success"}}return{action:t||"unknown",jobName:e.job.name,reason:r,result:`Controller returned an invalid action: ${t||"(empty)"}`,durationMs:Date.now()-e.startMs,status:"failed"}}async function tD(e,t,i={}){if("objective_linear_ticket"===e.executionMode){let t=null;if(e.projectId&&e.objectiveId){let i=await ta(e.projectId,e.objectiveId);if(!(t=i?.objective.teamId??null))return await tL({action:"team_gate",jobName:e.name,status:"failed",result:"Execution blocked: no team assigned to this objective.",reason:"Assign a team before scheduled work can run.",durationMs:0},{jobId:e.id,projectId:e.projectId,objectiveId:e.objectiveId}),{output:"",error:"Execution blocked: no team assigned to this objective.",durationMs:0,status:"failed"}}let r=await tR(e,t),a=await tj(e,r.id);return tk({job:e,controllerContext:a,sessionAgent:r,cliArgs:e.cliArgs,onSpawn:i.onSpawn})}return tI({...t,prompt:e.prompt,cliArgs:e.cliArgs,onSpawn:i.onSpawn})}async function tx(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()}),e.objectiveId&&e.projectId&&await tL({action:"gated_skip",jobName:e.name,reason:"condition not met",result:`Gate: ${d}
470
- (condition not met — skipped action)`,durationMs:l.durationMs,status:"success"},{jobId:e.id,projectId:e.projectId,objectiveId:e.objectiveId});return}i.updateRun(t.id,{output:`Gate: yes
471
- Executing action prompt...`,hostPid:null});let c=await tD(e,n,{onSpawn:e=>{i.updateRun(t.id,{hostPid:e})}});i.updateRun(t.id,{status:c.status,output:`Gate: yes
472
- ---
473
- ${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()}),e.objectiveId&&e.projectId&&await tL({action:"prompt",jobName:e.name,reason:"condition gate passed",result:"success"===c.status?(c.output||"").split("\n").filter(Boolean).slice(0,3).join("\n")||"Task completed successfully.":`Task failed: ${c.error||"unknown error"}`,durationMs:l.durationMs+c.durationMs,status:c.status},{jobId:e.id,projectId:e.projectId,objectiveId:e.objectiveId})}async function t$(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 tD(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()}),e.objectiveId&&e.projectId&&await tL({action:"prompt",jobName:e.name,reason:"",result:"success"===o.status?(o.output||"").split("\n").filter(Boolean).slice(0,3).join("\n")||"Task completed successfully.":`Task failed: ${o.error||"unknown error"}`,durationMs:o.durationMs,status:o.status},{jobId:e.id,projectId:e.projectId,objectiveId:e.objectiveId})}function tC(){tp&&!tf&&(tf=!0,setTimeout(()=>{tf=!1,tM()},0))}async function tM(){if(tp&&!th){th=!0;try{for(;tm;)tm=!1,await tp()}finally{th=!1,tm&&tC()}}}async function tP(){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?tx:t$)(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,tP,"registerPromptJobPump",0,function(e){tp=e,tm&&tC()},"requestPromptJobPump",0,function(){return tm=!0,!!tp&&(tC(),!0)}],845248)}];
474
-
475
- //# sourceMappingURL=apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js.map