@mndrk/agx 2.0.48 → 2.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  3. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  4. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  5. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  12. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/agents.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +1 -1
  28. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +13 -7
  34. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +1 -1
  58. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +2 -2
  83. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +14 -6
  85. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +13 -5
  87. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +3 -4
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +3 -4
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +3 -4
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +3 -4
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +3 -4
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +3 -4
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +4 -5
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +2 -2
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  154. package/cloud-runtime/standalone/.next/server/app/automations.rsc +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  162. package/cloud-runtime/standalone/.next/server/app/board.rsc +1 -1
  163. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  165. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  169. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  170. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +1 -1
  171. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +1 -1
  175. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/folders.html +2 -2
  178. package/cloud-runtime/standalone/.next/server/app/folders.rsc +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/folders.segments/_full.segment.rsc +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  181. package/cloud-runtime/standalone/.next/server/app/folders.segments/_index.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/folders.segments/_tree.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/index.rsc +2 -2
  187. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  188. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
  189. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  191. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  195. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +1 -1
  199. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +1 -1
  200. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  203. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/projects.rsc +1 -1
  205. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  207. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +1 -1
  208. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  209. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/settings.rsc +1 -1
  213. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  214. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  218. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  220. package/cloud-runtime/standalone/.next/server/app/skills.rsc +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  225. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  226. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  227. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  228. package/cloud-runtime/standalone/.next/server/app/status.rsc +1 -1
  229. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  235. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  236. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +1 -1
  239. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  240. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  244. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a300f072._.js → [root-of-the-server]__02a4a323._.js} +2 -2
  245. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__05dedbe1._.js +64 -0
  246. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4ce74056._.js → [root-of-the-server]__05f0bfbf._.js} +2 -2
  247. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c22dd3a6._.js → [root-of-the-server]__08c82fe8._.js} +2 -2
  248. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3fae531a._.js → [root-of-the-server]__09e37b59._.js} +2 -2
  249. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1a1f66b1._.js → [root-of-the-server]__0e83aabc._.js} +2 -2
  250. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__27da58f0._.js +67 -0
  251. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9ffa67b7._.js → [root-of-the-server]__2ae8b938._.js} +2 -2
  252. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2cfd21b8._.js +108 -0
  253. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f9f7f2df._.js → [root-of-the-server]__3c1403f2._.js} +2 -2
  254. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__143fdf69._.js → [root-of-the-server]__40e9e2e8._.js} +2 -2
  255. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42e602eb._.js +49 -0
  256. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a7b2350e._.js → [root-of-the-server]__456840d0._.js} +2 -2
  257. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5c2848bb._.js +64 -0
  258. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__667c658f._.js +52 -0
  259. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a92b882._.js +49 -0
  260. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c9baa7c._.js +64 -0
  261. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c21747df._.js → [root-of-the-server]__719eddc2._.js} +2 -2
  262. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__36d15de5._.js → [root-of-the-server]__7ee3dfe1._.js} +2 -2
  263. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d324f8a1._.js → [root-of-the-server]__80964fad._.js} +2 -2
  264. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__bab85495._.js → [root-of-the-server]__862cf77d._.js} +2 -2
  265. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a280fa63._.js → [root-of-the-server]__8b5b9860._.js} +2 -2
  266. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3170b7bf._.js → [root-of-the-server]__8d475640._.js} +2 -2
  267. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__958dded3._.js +49 -0
  268. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ab655b9f._.js → [root-of-the-server]__96c424d5._.js} +2 -2
  269. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5c55f67a._.js → [root-of-the-server]__976ebe46._.js} +2 -2
  270. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__179cb224._.js → [root-of-the-server]__a1cab8fe._.js} +2 -2
  271. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__20a2cb22._.js → [root-of-the-server]__a31dd756._.js} +2 -2
  272. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a3955224._.js → [root-of-the-server]__ad53dc3f._.js} +2 -2
  273. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ac6326b6._.js → [root-of-the-server]__b8eeb177._.js} +2 -2
  274. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fcfa3690._.js → [root-of-the-server]__c10e827d._.js} +2 -2
  275. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e58e9f91._.js → [root-of-the-server]__c11e0040._.js} +2 -2
  276. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c40b6f69._.js +49 -0
  277. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c7d3c7ab._.js +52 -0
  278. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__cdc52544._.js +49 -0
  279. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8cbd8c56._.js → [root-of-the-server]__d1c698b6._.js} +12 -12
  280. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9ea98bd._.js +52 -0
  281. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ef27f8cd._.js → [root-of-the-server]__df886e3c._.js} +2 -2
  282. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ca4987eb._.js → [root-of-the-server]__e0b6f424._.js} +2 -2
  283. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c8890cd6._.js → [root-of-the-server]__f43ecbc2._.js} +2 -2
  284. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f51c7b72._.js +5 -0
  285. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f662fd1e._.js +20 -0
  286. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__538b0bdd._.js → [root-of-the-server]__f961230c._.js} +2 -2
  287. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b627cb83._.js → [root-of-the-server]__feec5b54._.js} +2 -2
  288. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d16caed5._.js → [root-of-the-server]__ff6ce4b1._.js} +2 -2
  289. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9ce15e._.js +5 -0
  290. package/cloud-runtime/standalone/.next/server/chunks/_26ffc857._.js +121 -0
  291. package/cloud-runtime/standalone/.next/server/chunks/_4d07f8db._.js +1 -1
  292. package/cloud-runtime/standalone/.next/server/chunks/_66d0cf73._.js +6 -0
  293. package/cloud-runtime/standalone/.next/server/chunks/_9b10087f._.js +3 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/_a13c0bef._.js +121 -0
  295. package/cloud-runtime/standalone/.next/server/chunks/{lib_98ae187c._.js → lib_2cd3429c._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/lib_a2a83df5._.js +55 -0
  297. package/cloud-runtime/standalone/.next/server/chunks/lib_a658c9ef._.js +34 -0
  298. package/cloud-runtime/standalone/.next/server/chunks/lib_ba38ea08._.js +55 -0
  299. package/cloud-runtime/standalone/.next/server/chunks/lib_orchestrator_chat-processor_ts_4c335719._.js +27 -29
  300. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +6 -102
  301. package/cloud-runtime/standalone/.next/server/chunks/src_graph_schedule-runner_ts_43a13c69._.js +13 -0
  302. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
  303. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  304. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  305. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  306. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  307. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  308. package/cloud-runtime/standalone/.next/static/chunks/{442eb8ef62bef9f9.js → 5545da2ad239c0b6.js} +3 -3
  309. package/cloud-runtime/standalone/app/api/chat/route.ts +5 -163
  310. package/cloud-runtime/standalone/app/api/schedules/route.ts +11 -2
  311. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +0 -13
  312. package/cloud-runtime/standalone/lib/chat/project-context.ts +169 -0
  313. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +2 -0
  314. package/cloud-runtime/standalone/lib/orchestrator/schedule-runtime.ts +76 -0
  315. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +201 -16
  316. package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +128 -35
  317. package/cloud-runtime/standalone/state/automations/.state/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.json +4 -4
  318. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
  319. package/cloud-runtime/standalone/vault/agx/issues/ESO-327/design-doc.md +202 -0
  320. package/cloud-runtime/standalone/worker/index.js +34516 -1717
  321. package/cloud-runtime/standalone/worker/index.ts +3 -0
  322. package/package.json +1 -1
  323. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__067034dd._.js +0 -67
  324. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__152b2000._.js +0 -61
  325. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__33865410._.js +0 -3
  326. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c53437e._.js +0 -110
  327. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6dbe939c._.js +0 -49
  328. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7012e83d._.js +0 -66
  329. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da645a5e._.js +0 -15
  330. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b3df16._.js +0 -3
  331. package/cloud-runtime/standalone/.next/server/chunks/_2a5aeb76._.js +0 -3
  332. package/cloud-runtime/standalone/.next/server/chunks/_4689976f._.js +0 -6
  333. package/cloud-runtime/standalone/.next/server/chunks/_682c9d81._.js +0 -6
  334. package/cloud-runtime/standalone/.next/server/chunks/_6e7f0ae4._.js +0 -6
  335. package/cloud-runtime/standalone/.next/server/chunks/_a32a5cdd._.js +0 -6
  336. package/cloud-runtime/standalone/.next/server/chunks/_af7bd752._.js +0 -3
  337. package/cloud-runtime/standalone/.next/server/chunks/_fe32a267._.js +0 -3
  338. package/cloud-runtime/standalone/.next/server/chunks/lib_2492d514._.js +0 -55
  339. package/cloud-runtime/standalone/.next/server/chunks/lib_3c080873._.js +0 -34
  340. package/cloud-runtime/standalone/.next/server/chunks/lib_9f439b27._.js +0 -70
  341. package/cloud-runtime/standalone/.next/server/chunks/src_graph_12d46a92._.js +0 -3
  342. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +0 -8
  343. /package/cloud-runtime/standalone/.next/static/{gty0FO80D_lbq3o9lSpQQ → ZkFZnP5h74O7GgdHudXgH}/_buildManifest.js +0 -0
  344. /package/cloud-runtime/standalone/.next/static/{gty0FO80D_lbq3o9lSpQQ → ZkFZnP5h74O7GgdHudXgH}/_clientMiddlewareManifest.json +0 -0
  345. /package/cloud-runtime/standalone/.next/static/{gty0FO80D_lbq3o9lSpQQ → ZkFZnP5h74O7GgdHudXgH}/_ssgManifest.js +0 -0
@@ -0,0 +1,52 @@
1
+ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},97812,e=>{"use strict";var t=e.i(960447),r=e.i(259833);e.i(201037);var a=e.i(200866),n=e.i(434542);let o=new Set(["replan","rollback"]);class i extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}}class s extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class d extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class u extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function p(e){return null==e?null:JSON.stringify(e)}function c(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function l(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function g(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function h(e){if(!(0,n.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,n.getAutomationRepository)(),r=(0,a.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function m(e){let r=e.trim();if(!r)return null;let a=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
2
+ FROM execution_graphs
3
+ WHERE id = ?
4
+ LIMIT 1`).get(r);return a?.taskId??null}function f(e){let{type:t,status:r,metrics:a,output:n,...o}=e;return{type:t,status:r,config:o,output:n??null,metrics:a??null}}function E(e){let t={...g(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=l(e.timestamp)),t}function _(e){return{query(t,r){let a=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(a.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:a.all(...(r??[]).map(e=>e))}}}}class I{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let a=this.getDb(),n=_(a);t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = OFF");try{return(0,r.transaction)(a,()=>{let r=n.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new u(e.taskId,r.id);for(let[t,r]of(n.query(`INSERT INTO execution_graphs
5
+ (id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at)
6
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
7
+ ON CONFLICT (id) DO UPDATE SET
8
+ task_id = excluded.task_id,
9
+ graph_version = excluded.graph_version,
10
+ mode = excluded.mode,
11
+ policy = excluded.policy,
12
+ done_criteria = excluded.done_criteria,
13
+ schedule = excluded.schedule,
14
+ created_at = excluded.created_at,
15
+ updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,p(e.policy),p(e.doneCriteria),p(e.schedule??null),e.createdAt,e.updatedAt]),n.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),n.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let a=f(r);n.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
16
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,a.type,a.status,p(a.config),p(a.output),p(a.metrics)])}for(let t of e.edges)n.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
17
+ VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,p(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(n,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(n,e.id,t);t?.skipTaskBinding||n.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let a=this.getGraphForTask(n,e.taskId);if(!a)throw new s(e.id);return h(a),a})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(_(t),e)}updateNodeRuntime(e,t,a){let n=this.getDb(),o=_(n);return(0,r.transaction)(n,()=>{if(!o.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new s(e);let r=Object.keys(t);if(0===r.length){let t=o.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:l(t.rows[0].updated_at)}}let a=r.map(()=>"?").join(", "),n=o.query(`SELECT node_id, type, status, config, output, metrics
18
+ FROM graph_nodes WHERE graph_id = ? AND node_id IN (${a})`,[e,...r]),i=new Map;for(let e of n.rows)i.set(e.node_id,e);let u=r.filter(e=>!i.has(e));if(u.length>0)throw new d(e,u);for(let a of r){let r=t[a],n=i.get(a);if(!n||!r)continue;let s={...g(c(n.config)),...g(r.configPatch)};void 0!==r.startedAt&&(s.startedAt=r.startedAt),void 0!==r.completedAt&&(s.completedAt=r.completedAt),void 0!==r.actualMinutes&&(s.actualMinutes=r.actualMinutes),o.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
19
+ WHERE graph_id = ? AND node_id = ?`,[r.status??n.status,p(r.metrics??c(n.metrics)),p(r.output??c(n.output)),p(s),e,a])}let h=o.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:h.rows[0].graph_version,updatedAt:l(h.rows[0].updated_at)}})}updateGraphStructure(e,t,a){let n=this.getDb(),o=_(n);return(0,r.transaction)(n,()=>{let r=o.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new s(e);if(t.nodes)for(let[r,a]of(o.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=f(a);o.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
20
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,p(t.config),p(t.output),p(t.metrics)])}if(t.edges)for(let r of(o.query("DELETE FROM graph_edges WHERE graph_id = ?",[e]),t.edges))o.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
21
+ VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,p(r.dataMapping??null)]);let a=o.query(`UPDATE execution_graphs
22
+ SET mode = ?, policy = ?, done_criteria = ?, schedule = ?, updated_at = datetime('now')
23
+ WHERE id = ?
24
+ RETURNING graph_version, updated_at`,[t.mode??r.mode,p(t.policy??c(r.policy)??{}),p(t.doneCriteria??c(r.done_criteria)??{}),p(t.schedule??c(r.schedule)??null),e]);if(void 0!==t.schedule){let e=this.getGraphForTask(o,r.task_id);e?.schedule&&h(e)}return{graphVersion:a.rows[0].graph_version,updatedAt:l(a.rows[0].updated_at)}})}appendEvent(e,t){let r=this.getDb();this.appendEventInternal(_(r),e,t)}getGraphForTask(e,t){let r=e.query(`SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at
25
+ FROM execution_graphs WHERE task_id = ? ORDER BY updated_at DESC LIMIT 1`,[t]).rows[0];if(!r)return null;let i=e.query(`SELECT node_id, type, status, config, output, metrics
26
+ FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),s=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
+ FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),d=e.query(`SELECT event_type, payload, timestamp
28
+ FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of i.rows)u[e.node_id]=function(e){let t={...g(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let a=c(e.output);return null!==a&&(t.output=a),t}(e);let p=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),h=[],m=[];for(let e of d.rows){let t=E(e);o.has(t.eventType)?h.push(t):m.push(t)}var f={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,nodes:u,edges:p,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:h,runtimeEvents:m,createdAt:l(r.created_at),updatedAt:l(r.updated_at)};if(!(0,n.isAutomationFrontmatterEnabled)())return f;let _=(0,n.getAutomationRepository)().getAutomation(f.id);return _&&"execution_graph"===_.definition.target.type?{...f,schedule:(0,a.automationRecordToGraphSchedule)(_,f.schedule)}:f}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,p(r),r.timestamp])}}function S(){return new I}let y=new I;function R(e,t){return y.createGraph(e,t)}function T(e){return y.getGraph(e)}function v(e,t,r){return y.updateNodeRuntime(e,t,r)}function A(e,t,r){return y.updateGraphStructure(e,t,r)}function k(e,t){return y.appendEvent(e,t)}function w(e,r={}){let a=["graph_id = ?"],n=[e];r.eventType&&(a.push("event_type = ?"),n.push(r.eventType)),r.since&&(a.push("timestamp >= ?"),n.push(r.since));let o=r.limit??1e3,i=`SELECT event_type, payload, timestamp
30
+ FROM graph_events
31
+ WHERE ${a.join(" AND ")}
32
+ ORDER BY timestamp ASC, event_type ASC
33
+ LIMIT ?`;return n.push(o),_((0,t.getSQLiteDb)()).query(i,n).rows.map(e=>E(e))}function C(e){let r=e.trim();if(!r)return null;if((0,n.isAutomationFrontmatterEnabled)()){let e=(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})[0];if(e?.definition.target.type==="execution_graph"){let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(r)return{graphId:t,taskId:r}}if(!(0,n.isAutomationDualReadEnabled)())return null}return(0,t.getSQLiteDb)().prepare(`SELECT id AS graphId, task_id AS taskId
34
+ FROM execution_graphs
35
+ WHERE schedule IS NOT NULL
36
+ AND json_extract(schedule, '$.rootMessageId') = ?
37
+ AND json_extract(schedule, '$.state') = 'active'
38
+ ORDER BY updated_at DESC
39
+ LIMIT 1`).get(r)??null}function N(){let e=new Set;if((0,n.isAutomationFrontmatterEnabled)()){for(let t of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"}))"execution_graph"===t.definition.target.type&&t.definition.target.rootMessageId&&e.add(t.definition.target.rootMessageId);if(!(0,n.isAutomationDualReadEnabled)())return[...e]}for(let r of(0,t.getSQLiteDb)().prepare(`SELECT json_extract(schedule, '$.rootMessageId') AS rootMessageId
40
+ FROM execution_graphs
41
+ WHERE schedule IS NOT NULL
42
+ AND json_extract(schedule, '$.state') = 'active'`).all())r.rootMessageId&&e.add(r.rootMessageId);return[...e]}function b(e){let r=e.trim();if(!r)return 0;let a=0;if((0,n.isAutomationFrontmatterEnabled)()){for(let e of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(!r)continue;let n=T(r);n?.schedule&&(y.updateGraphStructure(n.id,{mode:n.mode,nodes:n.nodes,edges:n.edges,policy:n.policy,doneCriteria:n.doneCriteria,schedule:{...n.schedule,state:"stopped",tickInProgress:!1}},n.graphVersion),a+=1)}if(a>0||!(0,n.isAutomationDualReadEnabled)())return a}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
43
+ SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
44
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
45
+ WHERE schedule IS NOT NULL
46
+ AND json_extract(schedule, '$.rootMessageId') = ?
47
+ AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>d,"GraphNotFoundError",()=>s,"GraphStore",()=>I,"GraphTaskAlreadyBoundError",()=>u,"GraphVersionConflictError",()=>i,"appendEvent",()=>k,"createGraph",()=>R,"createGraphStore",()=>S,"deactivateSchedulesByRootMessageId",()=>b,"getActiveScheduleForRootMessageId",()=>C,"getActiveScheduleRootMessageIds",()=>N,"getGraph",()=>T,"getGraphEvents",()=>w,"getTaskIdForGraphId",()=>m,"updateGraphStructure",()=>A,"updateNodeRuntime",()=>v])},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},12616,e=>{"use strict";function t(e,t){return`---
48
+ ${Object.entries(e).map(([e,t])=>`${e}: ${null==t?"":String(t)}`).join("\n")}
49
+ ---
50
+ ${t}`}e.s(["buildMarkdownWithFrontmatter",()=>t])},833872,e=>{"use strict";var t=e.i(457431),r=e.i(762294),a=e.i(390081),n=e.i(12616);async function o(e){let o=e.nowIso??new Date().toISOString(),i=(0,t.createAdminDbClient)(),s=await a.db.getTask(e.taskId,e.userId),d={status:e.status,stage:"PROGRESS",updated_at:o};if(Object.prototype.hasOwnProperty.call(e,"startedAt")&&(d.started_at=e.startedAt??null),Object.prototype.hasOwnProperty.call(e,"completedAt")&&(d.completed_at=e.completedAt??null),s){let{frontmatter:t,body:a}=(0,r.parseFrontmatter)(String(s.content||""));t.status=e.status,t.stage="PROGRESS",e.clearError&&delete t.error,d.content=(0,n.buildMarkdownWithFrontmatter)(t,a)}let u=i.from("tasks").update(d).eq("id",e.taskId);e.userId&&(u=u.eq("user_id",e.userId));let{error:p}=await u;if(p)throw p}e.s(["syncTaskProgressForGraphExecution",()=>o])},306838,e=>{"use strict";var t=e.i(89171),r=e.i(949041),a=e.i(390081);async function n(e){let n=r.LOCAL_USER.id,o=await a.db.getTask(e.taskId,n);return o?{ok:!0,actor:{actorId:n,actorType:"service"},task:o,projectId:e.requestedProjectId??o.project_id??null}:{ok:!1,response:t.NextResponse.json({error:"Task not found"},{status:404})}}e.s(["authorizeGraphMutation",()=>n])},273122,277036,e=>{"use strict";function t(){return new Date().toISOString()}function r(e,t,r){return{actorId:e.actorId,actorType:e.actorType,action:t,...r?{projectId:r}:{}}}function a(e){return{eventType:"graph_created",timestamp:e.timestamp??t(),mode:e.mode,nodeCount:e.nodeCount,edgeCount:e.edgeCount,audit:r(e.actor,"graph_create",e.projectId)}}function n(e){return{eventType:"node_status",nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,timestamp:e.timestamp??t(),...e.reason?{reason:e.reason}:{},audit:r(e.actor,"node_status_transition",e.projectId)}}function o(e){return{eventType:"gate_verification",nodeId:e.nodeId,timestamp:e.timestamp??t(),result:e.result,audit:r(e.actor,"gate_verification",e.projectId)}}function i(e){return{eventType:"budget_consumed",budgetType:e.budgetType,remaining:e.remaining,triggerNodeId:e.triggerNodeId,timestamp:e.timestamp??t(),audit:r(e.actor,"budget_consumption",e.projectId)}}function s(e){return{eventType:"replan",fromVersion:e.fromVersion,toVersion:e.toVersion,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),triggeredAtNodeId:e.triggeredAtNodeId,changes:e.changes,audit:r(e.actor,"graph_replan",e.projectId)}}function d(e){return{eventType:"rollback",toCheckpoint:e.toCheckpoint,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),audit:r(e.actor,"graph_rollback",e.projectId)}}e.s(["buildBudgetConsumedEvent",()=>i,"buildGateVerificationEvent",()=>o,"buildGraphCreatedEvent",()=>a,"buildNodeStatusEvent",()=>n,"buildReplanEvent",()=>s,"buildRollbackEvent",()=>d],273122);let u={graphCreateCount:0,replanCount:0,rollbackCount:0,migrationFailureCount:0,gatePassCount:0,gateFailCount:0};function p(){u.graphCreateCount+=1}function c(){u.replanCount+=1}function l(){u.rollbackCount+=1}function g(){u.migrationFailureCount+=1}function h(e){if(e){u.gatePassCount+=1;return}u.gateFailCount+=1}e.s(["recordGateVerificationResult",()=>h,"recordGraphCreate",()=>p,"recordMigrationFailure",()=>g,"recordReplan",()=>c,"recordRollback",()=>l],277036)},339760,e=>{"use strict";var t=e.i(469719),r=e.i(273122),a=e.i(963279),n=e.i(886582),o=e.i(306838),i=e.i(277036),s=e.i(97812),d=e.i(97681);let u=t.z.object({error:t.z.string().min(1),nodeIds:t.z.array(t.z.string())});async function p(e){try{await (0,s.appendEvent)(e.graphId,(0,r.buildNodeStatusEvent)({actor:e.actor,nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,reason:e.reason,projectId:e.projectId}))}catch(e){console.error("Failed to append rejected node transition event",e)}}async function c(e){let t=await (0,o.authorizeGraphMutation)({request:e.request,taskId:e.taskId,action:e.action,requestedProjectId:e.requestedProjectId});if(!t.ok)return t.response;let c=await (0,s.getGraph)(e.taskId);if(!c)return(0,n.jsonWithSchema)(a.ErrorResponseSchema,{error:"Graph not found"},{status:404});let l=c.nodes[e.nodeId];if(!l)return(0,n.jsonWithSchema)(a.ErrorResponseSchema,{error:"Node not found"},{status:404});if(e.allowedFromStatuses&&!e.allowedFromStatuses.includes(l.status))return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:`Rejected: node must be in one of [${e.allowedFromStatuses.join(", ")}] to ${e.action}`}),(0,n.jsonWithSchema)(a.ErrorResponseSchema,{error:`Cannot ${e.action} node ${e.nodeId}: current status is ${l.status}`},{status:400});try{(0,d.assertValidNodeStatusTransition)(l.type,l.status,e.targetStatus)}catch{return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected invalid transition"}),(0,n.jsonWithSchema)(a.ErrorResponseSchema,{error:`Invalid node transition for ${e.nodeId}: ${l.status} -> ${e.targetStatus}`},{status:400})}if("gate"===l.type&&"pending"===l.status&&"passed"===e.targetStatus&&!function(e){if("gate"!==e.type)return!1;let t=e.verificationStrategy.checks??[];return"progress"===e.gateType&&0===t.length&&"auto"===e.verificationStrategy.type}(l))return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected required gate bypass"}),(0,n.jsonWithSchema)(a.ErrorResponseSchema,{error:`Required gate transition blocked for node ${e.nodeId}`},{status:400});try{let o={...e.patch??{},status:e.targetStatus};e.resetWorkAttempts&&"work"===l.type&&(o.configPatch={...o.configPatch??{},attempts:0});let d={[e.nodeId]:{...o}},u=await (0,s.updateNodeRuntime)(c.id,d,e.ifMatchGraphVersion??c.graphVersion),p=new Date().toISOString();if(await (0,s.appendEvent)(c.id,(0,r.buildNodeStatusEvent)({actor:t.actor,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:e.reason,timestamp:p,projectId:t.projectId})),("gate"===l.type||"node_verify"===e.action)&&("passed"===e.targetStatus||"failed"===e.targetStatus)){let a="passed"===e.targetStatus;(0,i.recordGateVerificationResult)(a),await (0,s.appendEvent)(c.id,(0,r.buildGateVerificationEvent)({actor:t.actor,nodeId:e.nodeId,timestamp:p,result:{passed:a,checks:e.gateChecks??[],verifiedAt:p,verifiedBy:"user"===t.actor.actorType?"human":"agent"},projectId:t.projectId}))}if(e.consumeVerifyBudget||"node_verify"===e.action){let a=Math.max(0,c.policy.verifyBudgetRemaining-1);await (0,s.appendEvent)(c.id,(0,r.buildBudgetConsumedEvent)({actor:t.actor,budgetType:"verify",remaining:a,triggerNodeId:e.nodeId,timestamp:p,projectId:t.projectId}))}return(0,n.jsonWithSchema)(a.NodeMutationResponseSchema,{graphId:c.id,nodeId:e.nodeId,graphVersion:u.graphVersion,updatedAt:u.updatedAt})}catch(e){if(e instanceof s.GraphVersionConflictError)return(0,n.graphConflictResponse)(e);if(e instanceof s.GraphNodeNotFoundError)return(0,n.jsonWithSchema)(u,{error:e.message,nodeIds:e.nodeIds},{status:404});return console.error("Error mutating node status:",e),(0,n.jsonWithSchema)(a.ErrorResponseSchema,{error:"Failed to mutate node status"},{status:500})}}e.s(["applyNodeStatusMutation",()=>c])},669253,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),o=e.i(561916),i=e.i(174677),s=e.i(869741),d=e.i(316795),u=e.i(487718),p=e.i(995169),c=e.i(47587),l=e.i(666012),g=e.i(570101),h=e.i(626937),m=e.i(10372),f=e.i(193695);e.i(52474);var E=e.i(600220),_=e.i(457431),I=e.i(963279),S=e.i(886582),y=e.i(339760),R=e.i(97812),T=e.i(833872);async function v(e,{params:t}){var r;let{id:a,nodeId:n}=await t,o=(0,S.normalizeTaskId)(a),i=(0,S.normalizeNodeId)(n);if(!o||!i)return(0,S.jsonWithSchema)(I.ErrorResponseSchema,{error:"Invalid taskId or nodeId"},{status:400});let s=await (0,S.parseJsonBody)(e,I.StartNodeRequestSchema);if(!s.ok)return s.response;let d=s.data,u=await (0,R.getGraph)(o),p=u?.nodes[i],c=u?.nodes[i]?.status,l="done"===c&&p?.type==="work"&&(r=String(p.title||""),"plan"===i||/generate.*execution.*plan/i.test(r)),g="blocked"===c||l?"pending":"running",h=await (0,y.applyNodeStatusMutation)({request:e,taskId:o,nodeId:i,action:"node_start",requestedProjectId:d.projectId??d.project_id,ifMatchGraphVersion:d.ifMatchGraphVersion,targetStatus:g,reason:"blocked"===c?"manual unblock and requeue":l?"manual plan rerun and requeue":"manual node start",resetWorkAttempts:!0,patch:"running"===g?{startedAt:d.startedAt??new Date().toISOString()}:{}});if(h.status>=200&&h.status<300)try{let e=(0,_.createAdminDbClient)(),t=new Date().toISOString();await (0,T.syncTaskProgressForGraphExecution)({taskId:o,status:"queued",nowIso:t,completedAt:null,clearError:!0}),await e.from("execution_graphs").update({execution_state:"running",updated_at:t}).eq("task_id",o)}catch(e){console.error("Failed to requeue task after node start:",e)}return h}e.s(["POST",()=>v],828818);var A=e.i(828818);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/nodes/[nodeId]/start/route",pathname:"/api/tasks/[id]/nodes/[nodeId]/start",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/tasks/[id]/nodes/[nodeId]/start/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:w,workUnitAsyncStorage:C,serverHooks:N}=k;function b(){return(0,a.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:C})}async function x(e,t,a){k.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/tasks/[id]/nodes/[nodeId]/start/route";_=_.replace(/\/index$/,"")||"/";let I=await k.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,params:y,nextConfig:R,parsedUrl:T,isDraftMode:v,prerenderManifest:A,routerServerContext:w,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,resolvedPathname:b,clientReferenceManifest:x,serverActionsManifest:O}=I,D=(0,s.normalizeAppPath)(_),M=!!(A.dynamicRoutes[D]||A.routes[b]),j=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,T,!1):t.end("This page could not be found"),null);if(M&&!v){let e=!!A.routes[b],t=A.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await j();throw new f.NoFallbackError}}let F=null;!M||k.isDev||v||(F="/index"===(F=b)?"/":F);let q=!0===k.isDev||!M,G=M&&!q;O&&x&&(0,i.setManifestsSingleton)({page:_,clientReferenceManifest:x,serverActionsManifest:O});let L=e.method||"GET",P=(0,o.getTracer)(),U=P.getActiveScopeSpan(),H={params:y,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>k.onRequestError(e,t,a,n,w)},sharedContext:{buildId:S}},V=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let i=async e=>k.handle(W,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=P.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${L} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${_}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),d=async n=>{var o,d;let u=async({previousCacheEntry:r})=>{try{if(!s&&C&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=H.renderOpts.fetchMetrics;let d=H.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let u=H.renderOpts.collectedTags;if(!M)return await (0,l.sendResponse)(V,$,o,H.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,a=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:C})},!1,w),t}},p=await k.handleResponse({req:e,nextConfig:R,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(d=p.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",C?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),v&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,g.fromNodeOutgoingHttpHeaders)(p.value.headers);return s&&M||f.delete(m.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,h.getCacheControlHeader)(p.cacheControl)),await (0,l.sendResponse)(V,$,new Response(p.value.body,{headers:f,status:p.value.status||200})),null};U?await d(U):await P.withPropagatedContext(e.headers,()=>P.trace(p.BaseServerSpan.handleRequest,{spanName:`${L} ${_}`,kind:o.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},d))}catch(t){if(t instanceof f.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:C})},!1,w),M)throw t;return await (0,l.sendResponse)(V,$,new Response(null,{status:500})),null}}e.s(["handler",()=>x,"patchFetch",()=>b,"routeModule",()=>k,"serverHooks",()=>N,"workAsyncStorage",()=>w,"workUnitAsyncStorage",()=>C],669253)}];
51
+
52
+ //# sourceMappingURL=%5Broot-of-the-server%5D__c7d3c7ab._.js.map
@@ -0,0 +1,49 @@
1
+ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},97812,e=>{"use strict";var t=e.i(960447),r=e.i(259833);e.i(201037);var a=e.i(200866),o=e.i(434542);let n=new Set(["replan","rollback"]);class i extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}}class s extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class d extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class u extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function p(e){return null==e?null:JSON.stringify(e)}function c(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function l(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function h(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,o.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,o.getAutomationRepository)(),r=(0,a.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function m(e){let r=e.trim();if(!r)return null;let a=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
2
+ FROM execution_graphs
3
+ WHERE id = ?
4
+ LIMIT 1`).get(r);return a?.taskId??null}function f(e){let{type:t,status:r,metrics:a,output:o,...n}=e;return{type:t,status:r,config:n,output:o??null,metrics:a??null}}function E(e){let t={...h(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=l(e.timestamp)),t}function _(e){return{query(t,r){let a=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(a.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:a.all(...(r??[]).map(e=>e))}}}}class I{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let a=this.getDb(),o=_(a);t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = OFF");try{return(0,r.transaction)(a,()=>{let r=o.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new u(e.taskId,r.id);for(let[t,r]of(o.query(`INSERT INTO execution_graphs
5
+ (id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at)
6
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
7
+ ON CONFLICT (id) DO UPDATE SET
8
+ task_id = excluded.task_id,
9
+ graph_version = excluded.graph_version,
10
+ mode = excluded.mode,
11
+ policy = excluded.policy,
12
+ done_criteria = excluded.done_criteria,
13
+ schedule = excluded.schedule,
14
+ created_at = excluded.created_at,
15
+ updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,p(e.policy),p(e.doneCriteria),p(e.schedule??null),e.createdAt,e.updatedAt]),o.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),o.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let a=f(r);o.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
16
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,a.type,a.status,p(a.config),p(a.output),p(a.metrics)])}for(let t of e.edges)o.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
17
+ VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,p(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(o,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(o,e.id,t);t?.skipTaskBinding||o.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let a=this.getGraphForTask(o,e.taskId);if(!a)throw new s(e.id);return g(a),a})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(_(t),e)}updateNodeRuntime(e,t,a){let o=this.getDb(),n=_(o);return(0,r.transaction)(o,()=>{if(!n.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new s(e);let r=Object.keys(t);if(0===r.length){let t=n.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:l(t.rows[0].updated_at)}}let a=r.map(()=>"?").join(", "),o=n.query(`SELECT node_id, type, status, config, output, metrics
18
+ FROM graph_nodes WHERE graph_id = ? AND node_id IN (${a})`,[e,...r]),i=new Map;for(let e of o.rows)i.set(e.node_id,e);let u=r.filter(e=>!i.has(e));if(u.length>0)throw new d(e,u);for(let a of r){let r=t[a],o=i.get(a);if(!o||!r)continue;let s={...h(c(o.config)),...h(r.configPatch)};void 0!==r.startedAt&&(s.startedAt=r.startedAt),void 0!==r.completedAt&&(s.completedAt=r.completedAt),void 0!==r.actualMinutes&&(s.actualMinutes=r.actualMinutes),n.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
19
+ WHERE graph_id = ? AND node_id = ?`,[r.status??o.status,p(r.metrics??c(o.metrics)),p(r.output??c(o.output)),p(s),e,a])}let g=n.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:g.rows[0].graph_version,updatedAt:l(g.rows[0].updated_at)}})}updateGraphStructure(e,t,a){let o=this.getDb(),n=_(o);return(0,r.transaction)(o,()=>{let r=n.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new s(e);if(t.nodes)for(let[r,a]of(n.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=f(a);n.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
20
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,p(t.config),p(t.output),p(t.metrics)])}if(t.edges)for(let r of(n.query("DELETE FROM graph_edges WHERE graph_id = ?",[e]),t.edges))n.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
21
+ VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,p(r.dataMapping??null)]);let a=n.query(`UPDATE execution_graphs
22
+ SET mode = ?, policy = ?, done_criteria = ?, schedule = ?, updated_at = datetime('now')
23
+ WHERE id = ?
24
+ RETURNING graph_version, updated_at`,[t.mode??r.mode,p(t.policy??c(r.policy)??{}),p(t.doneCriteria??c(r.done_criteria)??{}),p(t.schedule??c(r.schedule)??null),e]);if(void 0!==t.schedule){let e=this.getGraphForTask(n,r.task_id);e?.schedule&&g(e)}return{graphVersion:a.rows[0].graph_version,updatedAt:l(a.rows[0].updated_at)}})}appendEvent(e,t){let r=this.getDb();this.appendEventInternal(_(r),e,t)}getGraphForTask(e,t){let r=e.query(`SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at
25
+ FROM execution_graphs WHERE task_id = ? ORDER BY updated_at DESC LIMIT 1`,[t]).rows[0];if(!r)return null;let i=e.query(`SELECT node_id, type, status, config, output, metrics
26
+ FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),s=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
+ FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),d=e.query(`SELECT event_type, payload, timestamp
28
+ FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of i.rows)u[e.node_id]=function(e){let t={...h(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let a=c(e.output);return null!==a&&(t.output=a),t}(e);let p=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),g=[],m=[];for(let e of d.rows){let t=E(e);n.has(t.eventType)?g.push(t):m.push(t)}var f={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,nodes:u,edges:p,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:g,runtimeEvents:m,createdAt:l(r.created_at),updatedAt:l(r.updated_at)};if(!(0,o.isAutomationFrontmatterEnabled)())return f;let _=(0,o.getAutomationRepository)().getAutomation(f.id);return _&&"execution_graph"===_.definition.target.type?{...f,schedule:(0,a.automationRecordToGraphSchedule)(_,f.schedule)}:f}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,p(r),r.timestamp])}}function S(){return new I}let y=new I;function R(e,t){return y.createGraph(e,t)}function v(e){return y.getGraph(e)}function T(e,t,r){return y.updateNodeRuntime(e,t,r)}function A(e,t,r){return y.updateGraphStructure(e,t,r)}function C(e,t){return y.appendEvent(e,t)}function N(e,r={}){let a=["graph_id = ?"],o=[e];r.eventType&&(a.push("event_type = ?"),o.push(r.eventType)),r.since&&(a.push("timestamp >= ?"),o.push(r.since));let n=r.limit??1e3,i=`SELECT event_type, payload, timestamp
30
+ FROM graph_events
31
+ WHERE ${a.join(" AND ")}
32
+ ORDER BY timestamp ASC, event_type ASC
33
+ LIMIT ?`;return o.push(n),_((0,t.getSQLiteDb)()).query(i,o).rows.map(e=>E(e))}function k(e){let r=e.trim();if(!r)return null;if((0,o.isAutomationFrontmatterEnabled)()){let e=(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})[0];if(e?.definition.target.type==="execution_graph"){let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(r)return{graphId:t,taskId:r}}if(!(0,o.isAutomationDualReadEnabled)())return null}return(0,t.getSQLiteDb)().prepare(`SELECT id AS graphId, task_id AS taskId
34
+ FROM execution_graphs
35
+ WHERE schedule IS NOT NULL
36
+ AND json_extract(schedule, '$.rootMessageId') = ?
37
+ AND json_extract(schedule, '$.state') = 'active'
38
+ ORDER BY updated_at DESC
39
+ LIMIT 1`).get(r)??null}function w(){let e=new Set;if((0,o.isAutomationFrontmatterEnabled)()){for(let t of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"}))"execution_graph"===t.definition.target.type&&t.definition.target.rootMessageId&&e.add(t.definition.target.rootMessageId);if(!(0,o.isAutomationDualReadEnabled)())return[...e]}for(let r of(0,t.getSQLiteDb)().prepare(`SELECT json_extract(schedule, '$.rootMessageId') AS rootMessageId
40
+ FROM execution_graphs
41
+ WHERE schedule IS NOT NULL
42
+ AND json_extract(schedule, '$.state') = 'active'`).all())r.rootMessageId&&e.add(r.rootMessageId);return[...e]}function x(e){let r=e.trim();if(!r)return 0;let a=0;if((0,o.isAutomationFrontmatterEnabled)()){for(let e of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(!r)continue;let o=v(r);o?.schedule&&(y.updateGraphStructure(o.id,{mode:o.mode,nodes:o.nodes,edges:o.edges,policy:o.policy,doneCriteria:o.doneCriteria,schedule:{...o.schedule,state:"stopped",tickInProgress:!1}},o.graphVersion),a+=1)}if(a>0||!(0,o.isAutomationDualReadEnabled)())return a}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
43
+ SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
44
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
45
+ WHERE schedule IS NOT NULL
46
+ AND json_extract(schedule, '$.rootMessageId') = ?
47
+ AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>d,"GraphNotFoundError",()=>s,"GraphStore",()=>I,"GraphTaskAlreadyBoundError",()=>u,"GraphVersionConflictError",()=>i,"appendEvent",()=>C,"createGraph",()=>R,"createGraphStore",()=>S,"deactivateSchedulesByRootMessageId",()=>x,"getActiveScheduleForRootMessageId",()=>k,"getActiveScheduleRootMessageIds",()=>w,"getGraph",()=>v,"getGraphEvents",()=>N,"getTaskIdForGraphId",()=>m,"updateGraphStructure",()=>A,"updateNodeRuntime",()=>T])},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},306838,e=>{"use strict";var t=e.i(89171),r=e.i(949041),a=e.i(390081);async function o(e){let o=r.LOCAL_USER.id,n=await a.db.getTask(e.taskId,o);return n?{ok:!0,actor:{actorId:o,actorType:"service"},task:n,projectId:e.requestedProjectId??n.project_id??null}:{ok:!1,response:t.NextResponse.json({error:"Task not found"},{status:404})}}e.s(["authorizeGraphMutation",()=>o])},273122,277036,e=>{"use strict";function t(){return new Date().toISOString()}function r(e,t,r){return{actorId:e.actorId,actorType:e.actorType,action:t,...r?{projectId:r}:{}}}function a(e){return{eventType:"graph_created",timestamp:e.timestamp??t(),mode:e.mode,nodeCount:e.nodeCount,edgeCount:e.edgeCount,audit:r(e.actor,"graph_create",e.projectId)}}function o(e){return{eventType:"node_status",nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,timestamp:e.timestamp??t(),...e.reason?{reason:e.reason}:{},audit:r(e.actor,"node_status_transition",e.projectId)}}function n(e){return{eventType:"gate_verification",nodeId:e.nodeId,timestamp:e.timestamp??t(),result:e.result,audit:r(e.actor,"gate_verification",e.projectId)}}function i(e){return{eventType:"budget_consumed",budgetType:e.budgetType,remaining:e.remaining,triggerNodeId:e.triggerNodeId,timestamp:e.timestamp??t(),audit:r(e.actor,"budget_consumption",e.projectId)}}function s(e){return{eventType:"replan",fromVersion:e.fromVersion,toVersion:e.toVersion,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),triggeredAtNodeId:e.triggeredAtNodeId,changes:e.changes,audit:r(e.actor,"graph_replan",e.projectId)}}function d(e){return{eventType:"rollback",toCheckpoint:e.toCheckpoint,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),audit:r(e.actor,"graph_rollback",e.projectId)}}e.s(["buildBudgetConsumedEvent",()=>i,"buildGateVerificationEvent",()=>n,"buildGraphCreatedEvent",()=>a,"buildNodeStatusEvent",()=>o,"buildReplanEvent",()=>s,"buildRollbackEvent",()=>d],273122);let u={graphCreateCount:0,replanCount:0,rollbackCount:0,migrationFailureCount:0,gatePassCount:0,gateFailCount:0};function p(){u.graphCreateCount+=1}function c(){u.replanCount+=1}function l(){u.rollbackCount+=1}function h(){u.migrationFailureCount+=1}function g(e){if(e){u.gatePassCount+=1;return}u.gateFailCount+=1}e.s(["recordGateVerificationResult",()=>g,"recordGraphCreate",()=>p,"recordMigrationFailure",()=>h,"recordReplan",()=>c,"recordRollback",()=>l],277036)},339760,e=>{"use strict";var t=e.i(469719),r=e.i(273122),a=e.i(963279),o=e.i(886582),n=e.i(306838),i=e.i(277036),s=e.i(97812),d=e.i(97681);let u=t.z.object({error:t.z.string().min(1),nodeIds:t.z.array(t.z.string())});async function p(e){try{await (0,s.appendEvent)(e.graphId,(0,r.buildNodeStatusEvent)({actor:e.actor,nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,reason:e.reason,projectId:e.projectId}))}catch(e){console.error("Failed to append rejected node transition event",e)}}async function c(e){let t=await (0,n.authorizeGraphMutation)({request:e.request,taskId:e.taskId,action:e.action,requestedProjectId:e.requestedProjectId});if(!t.ok)return t.response;let c=await (0,s.getGraph)(e.taskId);if(!c)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Graph not found"},{status:404});let l=c.nodes[e.nodeId];if(!l)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Node not found"},{status:404});if(e.allowedFromStatuses&&!e.allowedFromStatuses.includes(l.status))return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:`Rejected: node must be in one of [${e.allowedFromStatuses.join(", ")}] to ${e.action}`}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Cannot ${e.action} node ${e.nodeId}: current status is ${l.status}`},{status:400});try{(0,d.assertValidNodeStatusTransition)(l.type,l.status,e.targetStatus)}catch{return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected invalid transition"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Invalid node transition for ${e.nodeId}: ${l.status} -> ${e.targetStatus}`},{status:400})}if("gate"===l.type&&"pending"===l.status&&"passed"===e.targetStatus&&!function(e){if("gate"!==e.type)return!1;let t=e.verificationStrategy.checks??[];return"progress"===e.gateType&&0===t.length&&"auto"===e.verificationStrategy.type}(l))return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected required gate bypass"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Required gate transition blocked for node ${e.nodeId}`},{status:400});try{let n={...e.patch??{},status:e.targetStatus};e.resetWorkAttempts&&"work"===l.type&&(n.configPatch={...n.configPatch??{},attempts:0});let d={[e.nodeId]:{...n}},u=await (0,s.updateNodeRuntime)(c.id,d,e.ifMatchGraphVersion??c.graphVersion),p=new Date().toISOString();if(await (0,s.appendEvent)(c.id,(0,r.buildNodeStatusEvent)({actor:t.actor,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:e.reason,timestamp:p,projectId:t.projectId})),("gate"===l.type||"node_verify"===e.action)&&("passed"===e.targetStatus||"failed"===e.targetStatus)){let a="passed"===e.targetStatus;(0,i.recordGateVerificationResult)(a),await (0,s.appendEvent)(c.id,(0,r.buildGateVerificationEvent)({actor:t.actor,nodeId:e.nodeId,timestamp:p,result:{passed:a,checks:e.gateChecks??[],verifiedAt:p,verifiedBy:"user"===t.actor.actorType?"human":"agent"},projectId:t.projectId}))}if(e.consumeVerifyBudget||"node_verify"===e.action){let a=Math.max(0,c.policy.verifyBudgetRemaining-1);await (0,s.appendEvent)(c.id,(0,r.buildBudgetConsumedEvent)({actor:t.actor,budgetType:"verify",remaining:a,triggerNodeId:e.nodeId,timestamp:p,projectId:t.projectId}))}return(0,o.jsonWithSchema)(a.NodeMutationResponseSchema,{graphId:c.id,nodeId:e.nodeId,graphVersion:u.graphVersion,updatedAt:u.updatedAt})}catch(e){if(e instanceof s.GraphVersionConflictError)return(0,o.graphConflictResponse)(e);if(e instanceof s.GraphNodeNotFoundError)return(0,o.jsonWithSchema)(u,{error:e.message,nodeIds:e.nodeIds},{status:404});return console.error("Error mutating node status:",e),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Failed to mutate node status"},{status:500})}}e.s(["applyNodeStatusMutation",()=>c])},333225,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),o=e.i(759756),n=e.i(561916),i=e.i(174677),s=e.i(869741),d=e.i(316795),u=e.i(487718),p=e.i(995169),c=e.i(47587),l=e.i(666012),h=e.i(570101),g=e.i(626937),m=e.i(10372),f=e.i(193695);e.i(52474);var E=e.i(600220),_=e.i(963279),I=e.i(886582),S=e.i(339760);async function y(e,{params:t}){let{id:r,nodeId:a}=await t,o=(0,I.normalizeTaskId)(r),n=(0,I.normalizeNodeId)(a);if(!o||!n)return(0,I.jsonWithSchema)(_.ErrorResponseSchema,{error:"Invalid taskId or nodeId"},{status:400});let i=await (0,I.parseJsonBody)(e,_.CompleteNodeRequestSchema);if(!i.ok)return i.response;let s=i.data;return(0,S.applyNodeStatusMutation)({request:e,taskId:o,nodeId:n,action:"node_complete",requestedProjectId:s.projectId??s.project_id,ifMatchGraphVersion:s.ifMatchGraphVersion,targetStatus:"done",reason:"node completed",patch:{output:s.output,metrics:s.metrics,completedAt:s.completedAt??new Date().toISOString(),...void 0!==s.actualMinutes?{actualMinutes:s.actualMinutes}:{}}})}e.s(["POST",()=>y],755764);var R=e.i(755764);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/nodes/[nodeId]/complete/route",pathname:"/api/tasks/[id]/nodes/[nodeId]/complete",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/tasks/[id]/nodes/[nodeId]/complete/route.ts",nextConfigOutput:"standalone",userland:R}),{workAsyncStorage:T,workUnitAsyncStorage:A,serverHooks:C}=v;function N(){return(0,a.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:A})}async function k(e,t,a){v.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/tasks/[id]/nodes/[nodeId]/complete/route";_=_.replace(/\/index$/,"")||"/";let I=await v.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,params:y,nextConfig:R,parsedUrl:T,isDraftMode:A,prerenderManifest:C,routerServerContext:N,isOnDemandRevalidate:k,revalidateOnlyGenerated:w,resolvedPathname:x,clientReferenceManifest:b,serverActionsManifest:O}=I,M=(0,s.normalizeAppPath)(_),D=!!(C.dynamicRoutes[M]||C.routes[x]),j=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,T,!1):t.end("This page could not be found"),null);if(D&&!A){let e=!!C.routes[x],t=C.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await j();throw new f.NoFallbackError}}let F=null;!D||v.isDev||A||(F="/index"===(F=x)?"/":F);let L=!0===v.isDev||!D,G=D&&!L;O&&b&&(0,i.setManifestsSingleton)({page:_,clientReferenceManifest:b,serverActionsManifest:O});let q=e.method||"GET",P=(0,n.getTracer)(),U=P.getActiveScopeSpan(),H={params:y,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:L,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,o)=>v.onRequestError(e,t,a,o,N)},sharedContext:{buildId:S}},V=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let i=async e=>v.handle(W,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=P.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${_}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var n,d;let u=async({previousCacheEntry:r})=>{try{if(!s&&k&&w&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=H.renderOpts.fetchMetrics;let d=H.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let u=H.renderOpts.collectedTags;if(!D)return await (0,l.sendResponse)(V,$,n,H.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,a=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await v.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:k})},!1,N),t}},p=await v.handleResponse({req:e,nextConfig:R,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:w,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!D)return null;if((null==p||null==(n=p.value)?void 0:n.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(d=p.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",k?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(p.value.headers);return s&&D||f.delete(m.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,g.getCacheControlHeader)(p.cacheControl)),await (0,l.sendResponse)(V,$,new Response(p.value.body,{headers:f,status:p.value.status||200})),null};U?await d(U):await P.withPropagatedContext(e.headers,()=>P.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${_}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},d))}catch(t){if(t instanceof f.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:k})},!1,N),D)throw t;return await (0,l.sendResponse)(V,$,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>N,"routeModule",()=>v,"serverHooks",()=>C,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>A],333225)}];
48
+
49
+ //# sourceMappingURL=%5Broot-of-the-server%5D__cdc52544._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},942969,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let a=Object.values(r);return a.length>0?a[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function a(e,t){e.exec(`PRAGMA ${t}`)}function i(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function s(e,t){return(...r)=>{e.exec("BEGIN");try{let a=t(...r);return e.exec("COMMIT"),a}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>a,"transaction",()=>i,"transactionFn",()=>s])},828237,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(942969);e.i(522734);var r=e.i(446786),a=e.i(814747);let i="3.35.0",s=["json1"],o=["fts5"],n=["nfs","smb","cifs","efs","fuse.sshfs"];function l(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function u(u,d){let c=[],p=u.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),a=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(a[e]||0);if(0!==t)return t}return 0}(p.v,i)&&c.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${i}`,found:p.v,required:`>= ${i}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),s))l(u,e)||c.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of o)l(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let f=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let i=a.default.resolve(t),{execSync:s}=e.r(233405);if("darwin"===r.default.platform()){let e=s(`df -T "${i}" 2>/dev/null || df "${i}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(d);f&&n.some(e=>f.toLowerCase().includes(e))&&c.push({kind:"filesystem_error",message:`Database path '${d}' is on a network filesystem (${f})`,path:d,found:f,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):c.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){c.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return c}e.s(["validateSQLiteEnvironment",()=>u])},40793,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),r=e.i(942969),a=e.i(666680);let i={randomUUID:a.randomUUID},s=new Uint8Array(256),o=s.length,n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));let l=function(e,t,r){if(i.randomUUID&&!t&&!e)return i.randomUUID();var l=e,u=r;let d=(l=l||{}).random??l.rng?.()??(o>s.length-16&&((0,a.randomFillSync)(s),o=0),s.slice(o,o+=16));if(d.length<16)throw Error("Random bytes length must be >= 16");if(d[6]=15&d[6]|64,d[8]=63&d[8]|128,t){if((u=u||0)<0||u+16>t.length)throw RangeError(`UUID byte range ${u}:${u+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[u+e]=d[e];return t}return function(e,t=0){return(n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]).toLowerCase()}(d)};var u=e.i(814747),d=e.i(522734),c=e.i(446786),p=e.i(828237);process.env.AGX_MAX_WORKERS;class f{timestamps=[];lastWarning=0;WARNING_COOLDOWN_MS=6e4;record(){this.timestamps.push(Date.now())}check(){let e=Date.now(),t=e-1e4;this.timestamps=this.timestamps.filter(e=>e>=t);let r=this.timestamps.length/10,a=r>=40;return a&&e-this.lastWarning>this.WARNING_COOLDOWN_MS&&(this.lastWarning=e,console.warn(`[limits] Write QPS at ${r.toFixed(1)} — approaching ceiling of 50. See docs/LIMITS.md for mitigation steps.`)),{qps:r,warning:a}}}var h=e.i(157306);let E=process.env.AGX_DATA_DIR||u.default.join(c.default.homedir(),".agx");function m(){let e=Number(process.env.AGX_QUEUE_STALE_MS);return Number.isFinite(e)&&e>0?e:6e5}class _{db;workers=new Map;pollingInterval=null;writeRateInterval=null;writeMonitor=new f;workerId;constructor(e){this.workerId=l();const r=e||process.env.SQLITE_QUEUE_PATH||u.default.join(E,"agx-queue.db"),a=u.default.dirname(r);d.default.existsSync(a)||d.default.mkdirSync(a,{recursive:!0}),this.db=new t.DatabaseSync(r);const i=(0,p.validateSQLiteEnvironment)(this.db,r);if(i.length>0){const e=i.map(e=>e.message).join("; ");console.error(`[SQLiteQueueAdapter] Startup validation failed: ${e}`)}}async start(){this.initSchema(),this.startPolling()}async stop(){this.stopPolling(),this.db.close()}initSchema(){this.db.exec(`
1
+ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},942969,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let a=Object.values(r);return a.length>0?a[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function a(e,t){e.exec(`PRAGMA ${t}`)}function s(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function i(e,t){return(...r)=>{e.exec("BEGIN");try{let a=t(...r);return e.exec("COMMIT"),a}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>a,"transaction",()=>s,"transactionFn",()=>i])},828237,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(942969);e.i(522734);var r=e.i(446786),a=e.i(814747);let s="3.35.0",i=["json1"],o=["fts5"],n=["nfs","smb","cifs","efs","fuse.sshfs"];function l(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function u(u,d){let c=[],p=u.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),a=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(a[e]||0);if(0!==t)return t}return 0}(p.v,s)&&c.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${s}`,found:p.v,required:`>= ${s}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),i))l(u,e)||c.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of o)l(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let f=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let s=a.default.resolve(t),{execSync:i}=e.r(233405);if("darwin"===r.default.platform()){let e=i(`df -T "${s}" 2>/dev/null || df "${s}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(d);f&&n.some(e=>f.toLowerCase().includes(e))&&c.push({kind:"filesystem_error",message:`Database path '${d}' is on a network filesystem (${f})`,path:d,found:f,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):c.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){c.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return c}e.s(["validateSQLiteEnvironment",()=>u])},648392,e=>{"use strict";var t=e.i(65768);function r(e){return t.vaultStore.listKnowledgeEntries(e)}function a(e){return t.vaultStore.storeKnowledgeEntries(e)}e.s(["listKnowledgeEntries",()=>r,"storeKnowledgeEntries",()=>a])},40793,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),r=e.i(942969),a=e.i(666680);let s={randomUUID:a.randomUUID},i=new Uint8Array(256),o=i.length,n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));let l=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();var l=e,u=r;let d=(l=l||{}).random??l.rng?.()??(o>i.length-16&&((0,a.randomFillSync)(i),o=0),i.slice(o,o+=16));if(d.length<16)throw Error("Random bytes length must be >= 16");if(d[6]=15&d[6]|64,d[8]=63&d[8]|128,t){if((u=u||0)<0||u+16>t.length)throw RangeError(`UUID byte range ${u}:${u+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[u+e]=d[e];return t}return function(e,t=0){return(n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]).toLowerCase()}(d)};var u=e.i(814747),d=e.i(522734),c=e.i(446786),p=e.i(828237);process.env.AGX_MAX_WORKERS;class f{timestamps=[];lastWarning=0;WARNING_COOLDOWN_MS=6e4;record(){this.timestamps.push(Date.now())}check(){let e=Date.now(),t=e-1e4;this.timestamps=this.timestamps.filter(e=>e>=t);let r=this.timestamps.length/10,a=r>=40;return a&&e-this.lastWarning>this.WARNING_COOLDOWN_MS&&(this.lastWarning=e,console.warn(`[limits] Write QPS at ${r.toFixed(1)} — approaching ceiling of 50. See docs/LIMITS.md for mitigation steps.`)),{qps:r,warning:a}}}var h=e.i(157306);let E=process.env.AGX_DATA_DIR||u.default.join(c.default.homedir(),".agx");function m(){let e=Number(process.env.AGX_QUEUE_STALE_MS);return Number.isFinite(e)&&e>0?e:6e5}class _{db;workers=new Map;pollingInterval=null;writeRateInterval=null;writeMonitor=new f;workerId;constructor(e){this.workerId=l();const r=e||process.env.SQLITE_QUEUE_PATH||u.default.join(E,"agx-queue.db"),a=u.default.dirname(r);d.default.existsSync(a)||d.default.mkdirSync(a,{recursive:!0}),this.db=new t.DatabaseSync(r);const s=(0,p.validateSQLiteEnvironment)(this.db,r);if(s.length>0){const e=s.map(e=>e.message).join("; ");console.error(`[SQLiteQueueAdapter] Startup validation failed: ${e}`)}}async start(){this.initSchema(),this.startPolling()}async stop(){this.stopPolling(),this.db.close()}initSchema(){this.db.exec(`
2
2
  CREATE TABLE IF NOT EXISTS agx_jobs (
3
3
  id TEXT PRIMARY KEY,
4
4
  queue TEXT NOT NULL,
@@ -16,28 +16,28 @@ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(
16
16
  error TEXT
17
17
  );
18
18
  CREATE INDEX IF NOT EXISTS idx_jobs_fetch ON agx_jobs (queue, status, start_after, priority DESC, created_at ASC);
19
- `);let e=new Set((0,r.pragmaAll)(this.db,"table_info(agx_jobs)").map(e=>e.name));e.has("failed_at")||this.db.exec("ALTER TABLE agx_jobs ADD COLUMN failed_at INTEGER"),e.has("error")||this.db.exec("ALTER TABLE agx_jobs ADD COLUMN error TEXT")}async send(e,t,r){let a=l(),i=Date.now(),s=r?.startAfter?r.startAfter instanceof Date?r.startAfter.getTime():r.startAfter:i;return this.db.prepare(`
19
+ `);let e=new Set((0,r.pragmaAll)(this.db,"table_info(agx_jobs)").map(e=>e.name));e.has("failed_at")||this.db.exec("ALTER TABLE agx_jobs ADD COLUMN failed_at INTEGER"),e.has("error")||this.db.exec("ALTER TABLE agx_jobs ADD COLUMN error TEXT")}async send(e,t,r){let a=l(),s=Date.now(),i=r?.startAfter?r.startAfter instanceof Date?r.startAfter.getTime():r.startAfter:s;return this.db.prepare(`
20
20
  INSERT INTO agx_jobs (
21
21
  id, queue, data, status, created_at, start_after, retry_limit, priority
22
22
  ) VALUES (?, ?, ?, 'pending', ?, ?, ?, ?)
23
- `).run(a,e,JSON.stringify(t),i,s,r?.retryLimit??3,r?.priority??0),this.writeMonitor.record(),(0,h.writeDebugLog)("queue.send",{queue:e,jobId:a,startAfter:s,retryLimit:r?.retryLimit??3,priority:r?.priority??0,data:t}),a}async work(e,t,r){(0,h.writeDebugLog)("queue.worker.register",{queue:e,batchSize:r?.batchSize??1,pollInterval:r?.pollInterval??null,workerId:this.workerId}),this.workers.set(e,{handler:t,options:r||{},running:!0})}startPolling(){this.pollingInterval||(this.pollingInterval=setInterval(()=>this.poll(),1e3),this.writeRateInterval=setInterval(()=>this.writeMonitor.check(),1e4))}stopPolling(){this.pollingInterval&&(clearInterval(this.pollingInterval),this.pollingInterval=null),this.writeRateInterval&&(clearInterval(this.writeRateInterval),this.writeRateInterval=null)}poll(){for(let[e,t]of this.workers)t.running&&this.processQueue(e,t)}processQueue(e,t){let a=t.options.batchSize||1,i=Date.now(),s=i-m(),o=(0,r.transaction)(this.db,()=>{let t=this.reapStaleJobs(e,i,s);t.length>0&&(0,h.writeDebugLog)("queue.reap_stale",{queue:e,workerId:this.workerId,staleBefore:s,jobs:t});let r=this.db.prepare(`
23
+ `).run(a,e,JSON.stringify(t),s,i,r?.retryLimit??3,r?.priority??0),this.writeMonitor.record(),(0,h.writeDebugLog)("queue.send",{queue:e,jobId:a,startAfter:i,retryLimit:r?.retryLimit??3,priority:r?.priority??0,data:t}),a}async work(e,t,r){(0,h.writeDebugLog)("queue.worker.register",{queue:e,batchSize:r?.batchSize??1,pollInterval:r?.pollInterval??null,workerId:this.workerId}),this.workers.set(e,{handler:t,options:r||{},running:!0})}startPolling(){this.pollingInterval||(this.pollingInterval=setInterval(()=>this.poll(),1e3),this.writeRateInterval=setInterval(()=>this.writeMonitor.check(),1e4))}stopPolling(){this.pollingInterval&&(clearInterval(this.pollingInterval),this.pollingInterval=null),this.writeRateInterval&&(clearInterval(this.writeRateInterval),this.writeRateInterval=null)}poll(){for(let[e,t]of this.workers)t.running&&this.processQueue(e,t)}processQueue(e,t){let a=t.options.batchSize||1,s=Date.now(),i=s-m(),o=(0,r.transaction)(this.db,()=>{let t=this.reapStaleJobs(e,s,i);t.length>0&&(0,h.writeDebugLog)("queue.reap_stale",{queue:e,workerId:this.workerId,staleBefore:i,jobs:t});let r=this.db.prepare(`
24
24
  SELECT id, data FROM agx_jobs
25
25
  WHERE queue = ?
26
26
  AND (status = 'pending' OR status = 'retry')
27
27
  AND start_after <= ?
28
28
  ORDER BY priority DESC, created_at ASC
29
29
  LIMIT ?
30
- `).all(e,i,a);if(0===r.length)return[];let o=r.map(e=>e.id),n=this.db.prepare(`
30
+ `).all(e,s,a);if(0===r.length)return[];let o=r.map(e=>e.id),n=this.db.prepare(`
31
31
  UPDATE agx_jobs
32
32
  SET status = 'active', started_at = ?, worker_id = ?
33
33
  WHERE id = ?
34
- `);for(let e of o)n.run(i,this.workerId,e);return r.map(t=>({id:t.id,name:e,data:JSON.parse(t.data)}))});o.length>0&&((0,h.writeDebugLog)("queue.claim",{queue:e,workerId:this.workerId,jobIds:o.map(e=>e.id)}),this.executeJobs(o,t.handler))}async executeJobs(e,t){try{await t(e),this.completeJobs(e.map(e=>e.id)),(0,h.writeDebugLog)("queue.complete",{jobIds:e.map(e=>e.id)})}catch(t){this.failJobs(e.map(e=>e.id),t.message||String(t)),(0,h.writeDebugLog)("queue.fail",{jobIds:e.map(e=>e.id),error:t})}}completeJobs(e){let t=Date.now(),a=this.db.prepare(`
34
+ `);for(let e of o)n.run(s,this.workerId,e);return r.map(t=>({id:t.id,name:e,data:JSON.parse(t.data)}))});o.length>0&&((0,h.writeDebugLog)("queue.claim",{queue:e,workerId:this.workerId,jobIds:o.map(e=>e.id)}),this.executeJobs(o,t.handler))}async executeJobs(e,t){try{await t(e),this.completeJobs(e.map(e=>e.id)),(0,h.writeDebugLog)("queue.complete",{jobIds:e.map(e=>e.id)})}catch(t){this.failJobs(e.map(e=>e.id),t.message||String(t)),(0,h.writeDebugLog)("queue.fail",{jobIds:e.map(e=>e.id),error:t})}}completeJobs(e){let t=Date.now(),a=this.db.prepare(`
35
35
  UPDATE agx_jobs
36
36
  SET status = 'completed', completed_at = ?, worker_id = NULL
37
37
  WHERE id = ?
38
- `);(0,r.transaction)(this.db,()=>{for(let r of e)a.run(t,r)})}failJobs(e,t){let a=Date.now(),i=this.db.prepare(`
38
+ `);(0,r.transaction)(this.db,()=>{for(let r of e)a.run(t,r)})}failJobs(e,t){let a=Date.now(),s=this.db.prepare(`
39
39
  SELECT id, retry_count, retry_limit FROM agx_jobs WHERE id = ?
40
- `),s=this.db.prepare(`
40
+ `),i=this.db.prepare(`
41
41
  UPDATE agx_jobs
42
42
  SET status = 'retry', retry_count = retry_count + 1,
43
43
  start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
@@ -49,7 +49,7 @@ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(
49
49
  UPDATE agx_jobs
50
50
  SET status = 'failed', failed_at = ?, started_at = NULL, worker_id = NULL, error = ?
51
51
  WHERE id = ?
52
- `);(0,r.transaction)(this.db,()=>{for(let r of e){let e=i.get(r);if(e&&e.retry_count<e.retry_limit){let i=(e.retry_count+1)*2e3;s.run(a+i,t,r)}else o.run(a,t,r)}})}reapStaleJobs(e,t,r){let a=this.db.prepare(`
52
+ `);(0,r.transaction)(this.db,()=>{for(let r of e){let e=s.get(r);if(e&&e.retry_count<e.retry_limit){let s=(e.retry_count+1)*2e3;i.run(a+s,t,r)}else o.run(a,t,r)}})}reapStaleJobs(e,t,r){let a=this.db.prepare(`
53
53
  SELECT id, retry_count, retry_limit
54
54
  FROM agx_jobs
55
55
  WHERE queue = ?
@@ -57,7 +57,7 @@ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(
57
57
  AND started_at IS NOT NULL
58
58
  AND started_at <= ?
59
59
  ORDER BY started_at ASC
60
- `).all(e,r);if(0===a.length)return[];let i=this.db.prepare(`
60
+ `).all(e,r);if(0===a.length)return[];let s=this.db.prepare(`
61
61
  UPDATE agx_jobs
62
62
  SET status = 'retry',
63
63
  retry_count = retry_count + 1,
@@ -66,7 +66,7 @@ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(
66
66
  worker_id = NULL,
67
67
  error = ?
68
68
  WHERE id = ?
69
- `),s=this.db.prepare(`
69
+ `),i=this.db.prepare(`
70
70
  UPDATE agx_jobs
71
71
  SET status = 'failed',
72
72
  failed_at = ?,
@@ -74,6 +74,6 @@ module.exports=[522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(
74
74
  worker_id = NULL,
75
75
  error = ?
76
76
  WHERE id = ?
77
- `),o=[];for(let e of a){let r=`Job exceeded active timeout of ${m()}ms`;e.retry_count<e.retry_limit?(i.run(t,r,e.id),o.push({id:e.id,fromStatus:"active",toStatus:"retry",retryCount:e.retry_count+1})):(s.run(t,r,e.id),o.push({id:e.id,fromStatus:"active",toStatus:"failed",retryCount:e.retry_count}))}return o}}let g=null;async function L(){return g||(g=new _,await g.start()),g}async function b(){g&&(await g.stop(),g=null)}e.s(["QUEUE_NAMES",0,{TASK_PROCESS:"agx.task.process",CHAT_RUN_PROCESS:"agx.chat.process",TASK_CLEANUP:"agx.task.cleanup"},"getQueue",()=>L,"stopQueue",()=>b],40793)}];
77
+ `),o=[];for(let e of a){let r=`Job exceeded active timeout of ${m()}ms`;e.retry_count<e.retry_limit?(s.run(t,r,e.id),o.push({id:e.id,fromStatus:"active",toStatus:"retry",retryCount:e.retry_count+1})):(i.run(t,r,e.id),o.push({id:e.id,fromStatus:"active",toStatus:"failed",retryCount:e.retry_count}))}return o}}let g=null;async function L(){return g||(g=new _,await g.start()),g}async function b(){g&&(await g.stop(),g=null)}e.s(["QUEUE_NAMES",0,{TASK_PROCESS:"agx.task.process",CHAT_RUN_PROCESS:"agx.chat.process",TASK_CLEANUP:"agx.task.cleanup"},"getQueue",()=>L,"stopQueue",()=>b],40793)}];
78
78
 
79
- //# sourceMappingURL=%5Broot-of-the-server%5D__8cbd8c56._.js.map
79
+ //# sourceMappingURL=%5Broot-of-the-server%5D__d1c698b6._.js.map
@@ -0,0 +1,52 @@
1
+ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},97812,e=>{"use strict";var t=e.i(960447),r=e.i(259833);e.i(201037);var a=e.i(200866),o=e.i(434542);let n=new Set(["replan","rollback"]);class i extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}}class s extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class d extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class u extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function p(e){return null==e?null:JSON.stringify(e)}function c(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function l(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function h(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,o.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,o.getAutomationRepository)(),r=(0,a.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function m(e){let r=e.trim();if(!r)return null;let a=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
2
+ FROM execution_graphs
3
+ WHERE id = ?
4
+ LIMIT 1`).get(r);return a?.taskId??null}function f(e){let{type:t,status:r,metrics:a,output:o,...n}=e;return{type:t,status:r,config:n,output:o??null,metrics:a??null}}function E(e){let t={...h(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=l(e.timestamp)),t}function _(e){return{query(t,r){let a=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(a.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:a.all(...(r??[]).map(e=>e))}}}}class I{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let a=this.getDb(),o=_(a);t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = OFF");try{return(0,r.transaction)(a,()=>{let r=o.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new u(e.taskId,r.id);for(let[t,r]of(o.query(`INSERT INTO execution_graphs
5
+ (id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at)
6
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
7
+ ON CONFLICT (id) DO UPDATE SET
8
+ task_id = excluded.task_id,
9
+ graph_version = excluded.graph_version,
10
+ mode = excluded.mode,
11
+ policy = excluded.policy,
12
+ done_criteria = excluded.done_criteria,
13
+ schedule = excluded.schedule,
14
+ created_at = excluded.created_at,
15
+ updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,p(e.policy),p(e.doneCriteria),p(e.schedule??null),e.createdAt,e.updatedAt]),o.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),o.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let a=f(r);o.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
16
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,a.type,a.status,p(a.config),p(a.output),p(a.metrics)])}for(let t of e.edges)o.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
17
+ VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,p(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(o,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(o,e.id,t);t?.skipTaskBinding||o.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let a=this.getGraphForTask(o,e.taskId);if(!a)throw new s(e.id);return g(a),a})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(_(t),e)}updateNodeRuntime(e,t,a){let o=this.getDb(),n=_(o);return(0,r.transaction)(o,()=>{if(!n.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new s(e);let r=Object.keys(t);if(0===r.length){let t=n.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:l(t.rows[0].updated_at)}}let a=r.map(()=>"?").join(", "),o=n.query(`SELECT node_id, type, status, config, output, metrics
18
+ FROM graph_nodes WHERE graph_id = ? AND node_id IN (${a})`,[e,...r]),i=new Map;for(let e of o.rows)i.set(e.node_id,e);let u=r.filter(e=>!i.has(e));if(u.length>0)throw new d(e,u);for(let a of r){let r=t[a],o=i.get(a);if(!o||!r)continue;let s={...h(c(o.config)),...h(r.configPatch)};void 0!==r.startedAt&&(s.startedAt=r.startedAt),void 0!==r.completedAt&&(s.completedAt=r.completedAt),void 0!==r.actualMinutes&&(s.actualMinutes=r.actualMinutes),n.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
19
+ WHERE graph_id = ? AND node_id = ?`,[r.status??o.status,p(r.metrics??c(o.metrics)),p(r.output??c(o.output)),p(s),e,a])}let g=n.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:g.rows[0].graph_version,updatedAt:l(g.rows[0].updated_at)}})}updateGraphStructure(e,t,a){let o=this.getDb(),n=_(o);return(0,r.transaction)(o,()=>{let r=n.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new s(e);if(t.nodes)for(let[r,a]of(n.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=f(a);n.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
20
+ VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,p(t.config),p(t.output),p(t.metrics)])}if(t.edges)for(let r of(n.query("DELETE FROM graph_edges WHERE graph_id = ?",[e]),t.edges))n.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
21
+ VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,p(r.dataMapping??null)]);let a=n.query(`UPDATE execution_graphs
22
+ SET mode = ?, policy = ?, done_criteria = ?, schedule = ?, updated_at = datetime('now')
23
+ WHERE id = ?
24
+ RETURNING graph_version, updated_at`,[t.mode??r.mode,p(t.policy??c(r.policy)??{}),p(t.doneCriteria??c(r.done_criteria)??{}),p(t.schedule??c(r.schedule)??null),e]);if(void 0!==t.schedule){let e=this.getGraphForTask(n,r.task_id);e?.schedule&&g(e)}return{graphVersion:a.rows[0].graph_version,updatedAt:l(a.rows[0].updated_at)}})}appendEvent(e,t){let r=this.getDb();this.appendEventInternal(_(r),e,t)}getGraphForTask(e,t){let r=e.query(`SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at
25
+ FROM execution_graphs WHERE task_id = ? ORDER BY updated_at DESC LIMIT 1`,[t]).rows[0];if(!r)return null;let i=e.query(`SELECT node_id, type, status, config, output, metrics
26
+ FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),s=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
+ FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),d=e.query(`SELECT event_type, payload, timestamp
28
+ FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of i.rows)u[e.node_id]=function(e){let t={...h(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let a=c(e.output);return null!==a&&(t.output=a),t}(e);let p=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),g=[],m=[];for(let e of d.rows){let t=E(e);n.has(t.eventType)?g.push(t):m.push(t)}var f={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,nodes:u,edges:p,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:g,runtimeEvents:m,createdAt:l(r.created_at),updatedAt:l(r.updated_at)};if(!(0,o.isAutomationFrontmatterEnabled)())return f;let _=(0,o.getAutomationRepository)().getAutomation(f.id);return _&&"execution_graph"===_.definition.target.type?{...f,schedule:(0,a.automationRecordToGraphSchedule)(_,f.schedule)}:f}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,p(r),r.timestamp])}}function S(){return new I}let y=new I;function R(e,t){return y.createGraph(e,t)}function T(e){return y.getGraph(e)}function v(e,t,r){return y.updateNodeRuntime(e,t,r)}function A(e,t,r){return y.updateGraphStructure(e,t,r)}function k(e,t){return y.appendEvent(e,t)}function w(e,r={}){let a=["graph_id = ?"],o=[e];r.eventType&&(a.push("event_type = ?"),o.push(r.eventType)),r.since&&(a.push("timestamp >= ?"),o.push(r.since));let n=r.limit??1e3,i=`SELECT event_type, payload, timestamp
30
+ FROM graph_events
31
+ WHERE ${a.join(" AND ")}
32
+ ORDER BY timestamp ASC, event_type ASC
33
+ LIMIT ?`;return o.push(n),_((0,t.getSQLiteDb)()).query(i,o).rows.map(e=>E(e))}function C(e){let r=e.trim();if(!r)return null;if((0,o.isAutomationFrontmatterEnabled)()){let e=(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})[0];if(e?.definition.target.type==="execution_graph"){let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(r)return{graphId:t,taskId:r}}if(!(0,o.isAutomationDualReadEnabled)())return null}return(0,t.getSQLiteDb)().prepare(`SELECT id AS graphId, task_id AS taskId
34
+ FROM execution_graphs
35
+ WHERE schedule IS NOT NULL
36
+ AND json_extract(schedule, '$.rootMessageId') = ?
37
+ AND json_extract(schedule, '$.state') = 'active'
38
+ ORDER BY updated_at DESC
39
+ LIMIT 1`).get(r)??null}function N(){let e=new Set;if((0,o.isAutomationFrontmatterEnabled)()){for(let t of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"}))"execution_graph"===t.definition.target.type&&t.definition.target.rootMessageId&&e.add(t.definition.target.rootMessageId);if(!(0,o.isAutomationDualReadEnabled)())return[...e]}for(let r of(0,t.getSQLiteDb)().prepare(`SELECT json_extract(schedule, '$.rootMessageId') AS rootMessageId
40
+ FROM execution_graphs
41
+ WHERE schedule IS NOT NULL
42
+ AND json_extract(schedule, '$.state') = 'active'`).all())r.rootMessageId&&e.add(r.rootMessageId);return[...e]}function x(e){let r=e.trim();if(!r)return 0;let a=0;if((0,o.isAutomationFrontmatterEnabled)()){for(let e of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(!r)continue;let o=T(r);o?.schedule&&(y.updateGraphStructure(o.id,{mode:o.mode,nodes:o.nodes,edges:o.edges,policy:o.policy,doneCriteria:o.doneCriteria,schedule:{...o.schedule,state:"stopped",tickInProgress:!1}},o.graphVersion),a+=1)}if(a>0||!(0,o.isAutomationDualReadEnabled)())return a}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
43
+ SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
44
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
45
+ WHERE schedule IS NOT NULL
46
+ AND json_extract(schedule, '$.rootMessageId') = ?
47
+ AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>d,"GraphNotFoundError",()=>s,"GraphStore",()=>I,"GraphTaskAlreadyBoundError",()=>u,"GraphVersionConflictError",()=>i,"appendEvent",()=>k,"createGraph",()=>R,"createGraphStore",()=>S,"deactivateSchedulesByRootMessageId",()=>x,"getActiveScheduleForRootMessageId",()=>C,"getActiveScheduleRootMessageIds",()=>N,"getGraph",()=>T,"getGraphEvents",()=>w,"getTaskIdForGraphId",()=>m,"updateGraphStructure",()=>A,"updateNodeRuntime",()=>v])},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},12616,e=>{"use strict";function t(e,t){return`---
48
+ ${Object.entries(e).map(([e,t])=>`${e}: ${null==t?"":String(t)}`).join("\n")}
49
+ ---
50
+ ${t}`}e.s(["buildMarkdownWithFrontmatter",()=>t])},833872,e=>{"use strict";var t=e.i(457431),r=e.i(762294),a=e.i(390081),o=e.i(12616);async function n(e){let n=e.nowIso??new Date().toISOString(),i=(0,t.createAdminDbClient)(),s=await a.db.getTask(e.taskId,e.userId),d={status:e.status,stage:"PROGRESS",updated_at:n};if(Object.prototype.hasOwnProperty.call(e,"startedAt")&&(d.started_at=e.startedAt??null),Object.prototype.hasOwnProperty.call(e,"completedAt")&&(d.completed_at=e.completedAt??null),s){let{frontmatter:t,body:a}=(0,r.parseFrontmatter)(String(s.content||""));t.status=e.status,t.stage="PROGRESS",e.clearError&&delete t.error,d.content=(0,o.buildMarkdownWithFrontmatter)(t,a)}let u=i.from("tasks").update(d).eq("id",e.taskId);e.userId&&(u=u.eq("user_id",e.userId));let{error:p}=await u;if(p)throw p}e.s(["syncTaskProgressForGraphExecution",()=>n])},306838,e=>{"use strict";var t=e.i(89171),r=e.i(949041),a=e.i(390081);async function o(e){let o=r.LOCAL_USER.id,n=await a.db.getTask(e.taskId,o);return n?{ok:!0,actor:{actorId:o,actorType:"service"},task:n,projectId:e.requestedProjectId??n.project_id??null}:{ok:!1,response:t.NextResponse.json({error:"Task not found"},{status:404})}}e.s(["authorizeGraphMutation",()=>o])},273122,277036,e=>{"use strict";function t(){return new Date().toISOString()}function r(e,t,r){return{actorId:e.actorId,actorType:e.actorType,action:t,...r?{projectId:r}:{}}}function a(e){return{eventType:"graph_created",timestamp:e.timestamp??t(),mode:e.mode,nodeCount:e.nodeCount,edgeCount:e.edgeCount,audit:r(e.actor,"graph_create",e.projectId)}}function o(e){return{eventType:"node_status",nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,timestamp:e.timestamp??t(),...e.reason?{reason:e.reason}:{},audit:r(e.actor,"node_status_transition",e.projectId)}}function n(e){return{eventType:"gate_verification",nodeId:e.nodeId,timestamp:e.timestamp??t(),result:e.result,audit:r(e.actor,"gate_verification",e.projectId)}}function i(e){return{eventType:"budget_consumed",budgetType:e.budgetType,remaining:e.remaining,triggerNodeId:e.triggerNodeId,timestamp:e.timestamp??t(),audit:r(e.actor,"budget_consumption",e.projectId)}}function s(e){return{eventType:"replan",fromVersion:e.fromVersion,toVersion:e.toVersion,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),triggeredAtNodeId:e.triggeredAtNodeId,changes:e.changes,audit:r(e.actor,"graph_replan",e.projectId)}}function d(e){return{eventType:"rollback",toCheckpoint:e.toCheckpoint,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),audit:r(e.actor,"graph_rollback",e.projectId)}}e.s(["buildBudgetConsumedEvent",()=>i,"buildGateVerificationEvent",()=>n,"buildGraphCreatedEvent",()=>a,"buildNodeStatusEvent",()=>o,"buildReplanEvent",()=>s,"buildRollbackEvent",()=>d],273122);let u={graphCreateCount:0,replanCount:0,rollbackCount:0,migrationFailureCount:0,gatePassCount:0,gateFailCount:0};function p(){u.graphCreateCount+=1}function c(){u.replanCount+=1}function l(){u.rollbackCount+=1}function h(){u.migrationFailureCount+=1}function g(e){if(e){u.gatePassCount+=1;return}u.gateFailCount+=1}e.s(["recordGateVerificationResult",()=>g,"recordGraphCreate",()=>p,"recordMigrationFailure",()=>h,"recordReplan",()=>c,"recordRollback",()=>l],277036)},339760,e=>{"use strict";var t=e.i(469719),r=e.i(273122),a=e.i(963279),o=e.i(886582),n=e.i(306838),i=e.i(277036),s=e.i(97812),d=e.i(97681);let u=t.z.object({error:t.z.string().min(1),nodeIds:t.z.array(t.z.string())});async function p(e){try{await (0,s.appendEvent)(e.graphId,(0,r.buildNodeStatusEvent)({actor:e.actor,nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,reason:e.reason,projectId:e.projectId}))}catch(e){console.error("Failed to append rejected node transition event",e)}}async function c(e){let t=await (0,n.authorizeGraphMutation)({request:e.request,taskId:e.taskId,action:e.action,requestedProjectId:e.requestedProjectId});if(!t.ok)return t.response;let c=await (0,s.getGraph)(e.taskId);if(!c)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Graph not found"},{status:404});let l=c.nodes[e.nodeId];if(!l)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Node not found"},{status:404});if(e.allowedFromStatuses&&!e.allowedFromStatuses.includes(l.status))return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:`Rejected: node must be in one of [${e.allowedFromStatuses.join(", ")}] to ${e.action}`}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Cannot ${e.action} node ${e.nodeId}: current status is ${l.status}`},{status:400});try{(0,d.assertValidNodeStatusTransition)(l.type,l.status,e.targetStatus)}catch{return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected invalid transition"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Invalid node transition for ${e.nodeId}: ${l.status} -> ${e.targetStatus}`},{status:400})}if("gate"===l.type&&"pending"===l.status&&"passed"===e.targetStatus&&!function(e){if("gate"!==e.type)return!1;let t=e.verificationStrategy.checks??[];return"progress"===e.gateType&&0===t.length&&"auto"===e.verificationStrategy.type}(l))return await p({graphId:c.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected required gate bypass"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Required gate transition blocked for node ${e.nodeId}`},{status:400});try{let n={...e.patch??{},status:e.targetStatus};e.resetWorkAttempts&&"work"===l.type&&(n.configPatch={...n.configPatch??{},attempts:0});let d={[e.nodeId]:{...n}},u=await (0,s.updateNodeRuntime)(c.id,d,e.ifMatchGraphVersion??c.graphVersion),p=new Date().toISOString();if(await (0,s.appendEvent)(c.id,(0,r.buildNodeStatusEvent)({actor:t.actor,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:e.reason,timestamp:p,projectId:t.projectId})),("gate"===l.type||"node_verify"===e.action)&&("passed"===e.targetStatus||"failed"===e.targetStatus)){let a="passed"===e.targetStatus;(0,i.recordGateVerificationResult)(a),await (0,s.appendEvent)(c.id,(0,r.buildGateVerificationEvent)({actor:t.actor,nodeId:e.nodeId,timestamp:p,result:{passed:a,checks:e.gateChecks??[],verifiedAt:p,verifiedBy:"user"===t.actor.actorType?"human":"agent"},projectId:t.projectId}))}if(e.consumeVerifyBudget||"node_verify"===e.action){let a=Math.max(0,c.policy.verifyBudgetRemaining-1);await (0,s.appendEvent)(c.id,(0,r.buildBudgetConsumedEvent)({actor:t.actor,budgetType:"verify",remaining:a,triggerNodeId:e.nodeId,timestamp:p,projectId:t.projectId}))}return(0,o.jsonWithSchema)(a.NodeMutationResponseSchema,{graphId:c.id,nodeId:e.nodeId,graphVersion:u.graphVersion,updatedAt:u.updatedAt})}catch(e){if(e instanceof s.GraphVersionConflictError)return(0,o.graphConflictResponse)(e);if(e instanceof s.GraphNodeNotFoundError)return(0,o.jsonWithSchema)(u,{error:e.message,nodeIds:e.nodeIds},{status:404});return console.error("Error mutating node status:",e),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Failed to mutate node status"},{status:500})}}e.s(["applyNodeStatusMutation",()=>c])},959344,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),o=e.i(759756),n=e.i(561916),i=e.i(174677),s=e.i(869741),d=e.i(316795),u=e.i(487718),p=e.i(995169),c=e.i(47587),l=e.i(666012),h=e.i(570101),g=e.i(626937),m=e.i(10372),f=e.i(193695);e.i(52474);var E=e.i(600220),_=e.i(457431),I=e.i(963279),S=e.i(886582),y=e.i(339760),R=e.i(833872);async function T(e,{params:t}){let{id:r,nodeId:a}=await t,o=(0,S.normalizeTaskId)(r),n=(0,S.normalizeNodeId)(a);if(!o||!n)return(0,S.jsonWithSchema)(I.ErrorResponseSchema,{error:"Invalid taskId or nodeId"},{status:400});let i=await (0,S.parseJsonBody)(e,I.StartNodeRequestSchema);if(!i.ok)return i.response;let s=i.data,d=await (0,y.applyNodeStatusMutation)({request:e,taskId:o,nodeId:n,action:"node_resume",requestedProjectId:s.projectId??s.project_id,ifMatchGraphVersion:s.ifMatchGraphVersion,targetStatus:"running",reason:"manual node resume",resetWorkAttempts:!0,allowedFromStatuses:["paused","stopped"],patch:{}});if(d.status>=200&&d.status<300)try{let e=(0,_.createAdminDbClient)(),t=new Date().toISOString();await (0,R.syncTaskProgressForGraphExecution)({taskId:o,status:"queued",nowIso:t,completedAt:null,clearError:!0}),await e.from("execution_graphs").update({execution_state:"running",updated_at:t}).eq("task_id",o)}catch(e){console.error("Failed to requeue task after node resume:",e)}return d}e.s(["POST",()=>T],892551);var v=e.i(892551);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/nodes/[nodeId]/resume/route",pathname:"/api/tasks/[id]/nodes/[nodeId]/resume",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/tasks/[id]/nodes/[nodeId]/resume/route.ts",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:k,workUnitAsyncStorage:w,serverHooks:C}=A;function N(){return(0,a.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:w})}async function x(e,t,a){A.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/tasks/[id]/nodes/[nodeId]/resume/route";_=_.replace(/\/index$/,"")||"/";let I=await A.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,params:y,nextConfig:R,parsedUrl:T,isDraftMode:v,prerenderManifest:k,routerServerContext:w,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,resolvedPathname:x,clientReferenceManifest:b,serverActionsManifest:O}=I,D=(0,s.normalizeAppPath)(_),M=!!(k.dynamicRoutes[D]||k.routes[x]),j=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,T,!1):t.end("This page could not be found"),null);if(M&&!v){let e=!!k.routes[x],t=k.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await j();throw new f.NoFallbackError}}let F=null;!M||A.isDev||v||(F="/index"===(F=x)?"/":F);let q=!0===A.isDev||!M,G=M&&!q;O&&b&&(0,i.setManifestsSingleton)({page:_,clientReferenceManifest:b,serverActionsManifest:O});let L=e.method||"GET",P=(0,n.getTracer)(),U=P.getActiveScopeSpan(),H={params:y,prerenderManifest:k,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,o)=>A.onRequestError(e,t,a,o,w)},sharedContext:{buildId:S}},V=new d.NodeNextRequest(e),$=new d.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let i=async e=>A.handle(W,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=P.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${L} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${_}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),d=async o=>{var n,d;let u=async({previousCacheEntry:r})=>{try{if(!s&&C&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=H.renderOpts.fetchMetrics;let d=H.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let u=H.renderOpts.collectedTags;if(!M)return await (0,l.sendResponse)(V,$,n,H.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[m.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,a=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:C})},!1,w),t}},p=await A.handleResponse({req:e,nextConfig:R,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:s});if(!M)return null;if((null==p||null==(n=p.value)?void 0:n.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(d=p.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",C?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),v&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,h.fromNodeOutgoingHttpHeaders)(p.value.headers);return s&&M||f.delete(m.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,g.getCacheControlHeader)(p.cacheControl)),await (0,l.sendResponse)(V,$,new Response(p.value.body,{headers:f,status:p.value.status||200})),null};U?await d(U):await P.withPropagatedContext(e.headers,()=>P.trace(p.BaseServerSpan.handleRequest,{spanName:`${L} ${_}`,kind:n.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},d))}catch(t){if(t instanceof f.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:C})},!1,w),M)throw t;return await (0,l.sendResponse)(V,$,new Response(null,{status:500})),null}}e.s(["handler",()=>x,"patchFetch",()=>N,"routeModule",()=>A,"serverHooks",()=>C,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>w],959344)}];
51
+
52
+ //# sourceMappingURL=%5Broot-of-the-server%5D__d9ea98bd._.js.map
@@ -44,6 +44,6 @@ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/pro
44
44
  updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
45
45
  WHERE schedule IS NOT NULL
46
46
  AND json_extract(schedule, '$.rootMessageId') = ?
47
- AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>d,"GraphNotFoundError",()=>n,"GraphStore",()=>y,"GraphTaskAlreadyBoundError",()=>l,"GraphVersionConflictError",()=>o,"appendEvent",()=>S,"createGraph",()=>w,"createGraphStore",()=>v,"deactivateSchedulesByRootMessageId",()=>x,"getActiveScheduleForRootMessageId",()=>b,"getActiveScheduleRootMessageIds",()=>N,"getGraph",()=>A,"getGraphEvents",()=>I,"getTaskIdForGraphId",()=>h,"updateGraphStructure",()=>T,"updateNodeRuntime",()=>k])},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},810010,e=>{"use strict";function t(e){let t=e?.trim();return t?t.replace(/\/+$/,""):null}let r="http://localhost:41741";function a(){return t("http://localhost:3000")??t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??r}function i(){return t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??t("http://localhost:3000")??r}function s(){let e=new Set([r,"http://127.0.0.1:41741"]);for(let r of["http://localhost:3000",process.env.AGX_BOARD_URL,process.env.NEXT_PUBLIC_AGX_BOARD_URL]){let a=t(r);a&&e.add(a)}return Array.from(e)}e.s(["getAllowedOrigins",()=>s,"getConfiguredAppBaseUrl",()=>a,"getConfiguredBoardBaseUrl",()=>i])},633938,e=>{"use strict";var t=e.i(492952);function r(e){let r=[];for(let a of e){if(!a.id){let e=String(a.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:a.name,path:a.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",a.id),i=e?.content.trim()||String(a.notes??"").trim();i&&r.push({repoId:a.id,repoName:a.name,path:a.path??null,content:i,producer:"human"})}return r}e.s(["listResolvedRepoKnowledge",()=>r])},669803,e=>{"use strict";var t=e.i(254799),r=e.i(457431),a=e.i(960447),i=e.i(633938),s=e.i(877581),o=e.i(492952),n=e.i(42304),d=e.i(762294);async function l(e){let t=(0,r.createAdminDbClient)(),{data:a,error:i}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(i){let e="string"==typeof i.message?i.message:"";if("42P01"===i.code||"PGRST205"===i.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw i}return a||[]}async function u(e){let t=(0,r.createAdminDbClient)(),a=e.user_id,i=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);a&&i.eq("user_id",a);let[{data:s,error:n}]=await Promise.all([i]);if(n)throw n;return{task:s||[],project:[],global:o.vaultStore.getLearnings("global")||[]}}async function p(e){let t,a=e.stage;if(!a)return{prompt:null};let i=(0,r.createAdminDbClient)(),s=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!s&&e.project_id)try{let t=await (0,d.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(s=t.workflow_id)}catch{}s||(s=d.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await i.from("workflow_nodes").select("*").eq("workflow_id",s).eq("name",a).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,a=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:a};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:a}}}catch{}try{let t=[];t.push(i.from("stage_prompts").select("*").eq("stage",a).eq("is_default",!0).eq("workflow_id",s).maybeSingle()),e.user_id&&t.push(i.from("stage_prompts").select("*").eq("stage",a).eq("user_id",e.user_id).eq("workflow_id",s).maybeSingle());let r=await Promise.all(t),o=r[0]?.data||null,n=e.user_id?r[1]?.data:null,d=n?.prompt||o?.prompt||null;if(d)return{prompt:d,swarm:n?.swarm??o?.swarm??!1,provider:n?.provider||o?.provider,model:n?.model||o?.model,swarm_models:n?.swarm_models||o?.swarm_models}}catch{}let o=d.defaultStagePrompts[a];return o?.prompt?{prompt:o.prompt,swarm:o.swarm??!1,provider:o.provider,model:o.model,swarm_models:o.swarm_models}:{prompt:null}}async function c(e,t){let r=e.project_id,a=e.project||void 0,o=null;if(r&&(o=await (0,d.getProjectWithRepos)(r,e.user_id)),!o&&a){let t=await (0,d.getProjectBySlug)(a,e.user_id);if(t){let e=await (0,d.getProjectRepos)(t.id);o={...t,repos:e}}}if(!o)return null;let n=await (0,d.getProjectMemory)(o.id,"human"),l=(0,s.getKnowledgeNote)("project",o.id);if(o.repos.length>0){let e=(0,i.listResolvedRepoKnowledge)(o.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,a=t.get(r.repoId)??[];a.push(e),t.set(r.repoId,a)}o={...o,repos:o.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:o,repos:o.repos??[],learnings:[...n.map(e=>e.content),...l?.content?[`[System-generated] ${l.content}`]:[]]}}async function g(e){let r,[i,s,o,g]=await Promise.all([l(e.id),u(e),p(e),e.user_id?(0,d.getUserSettings)(e.user_id):Promise.resolve(null)]),m=await c(e,s.project),{frontmatter:h}=(0,d.parseFrontmatter)(e.content),_=(0,n.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:h}),f=h.no_memory?[]:function(e,t=5){try{return(0,a.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(_),E=(r=JSON.stringify(i.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),y="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",v=o.prompt??null,R={};if(v&&y){R[y]=v;let e=y.toLowerCase();R[e]||(R[e]=v)}let w=v&&y?[{stage:y,prompt:v}]:[];return{comments:i,learnings:s,agent_memories:f,stage_config:o,stage_prompt:v,stage_prompts:R,stage_objective:v,stageObjective:v,stagePrompts:w,project_context:m,comments_digest:E,user_settings:g}}e.s(["buildTaskContext",()=>g])},67675,e=>{"use strict";e.i(254799);var t=e.i(810010),r=e.i(457431);let a=[/rm\s+(-rf?|--recursive)\s+[\/~]/i,/rm\s+-rf?\s+\*/i,/chmod\s+(777|a\+rwx)/i,/chown\s+.*\s+\//i,/>\s*\/dev\/sd[a-z]/i,/\.env/i,/credentials?\.json/i,/api[_-]?key/i,/secret[_-]?key/i,/private[_-]?key/i,/password/i,/curl.*\|\s*(ba)?sh/i,/wget.*\|\s*(ba)?sh/i,/nc\s+-l/i,/socat/i,/sudo\s+/i,/su\s+-/i,/mkfs\./i,/dd\s+if=/i,/eval\s*\(/i,/exec\s*\(/i,/child_process/i,/__import__/i,/base64.*>/i,/xxd/i,/tar.*-c.*\|.*curl/i];function i(e){let t=[];for(let r of a)r.test(e)&&t.push(r.source);let r="low";return/rm\s+(-rf?|--recursive)\s*[\/~\*]|sudo\s+|mkfs\.|dd\s+if=/i.test(e)?r="critical":/curl.*\|\s*(ba)?sh|wget.*\|\s*(ba)?sh|chmod\s+(777|a\+rwx)|\.env\b/i.test(e)?r="high":/password|api[_-]?key|secret[_-]?key|private[_-]?key|credentials?\.json/i.test(e)&&(r="medium"),{isDangerous:t.length>0,patterns:t,severity:r}}async function s(e){let t=(0,r.createAdminDbClient)(),{data:a,error:i}=await t.from("task_audit_log").insert({user_id:e.user_id,task_id:e.task_id,action:e.action,payload:e.payload,signature:e.signature,ip_address:e.ip_address,user_agent:e.user_agent,result:e.result||"pending"}).select("id").single();if(i)throw console.error("Failed to write audit log:",i),Error("Audit log write failed");return a.id}[...(0,t.getAllowedOrigins)()],e.s(["detectDangerousOperations",()=>i,"writeAuditLog",()=>s])},123297,383131,e=>{"use strict";function t(e,t){if(void 0===e)return t;let r=e.trim().toLowerCase();return"1"===r||"true"===r||"yes"===r||"on"===r||"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r&&t}function r(){return t(process.env.AGX_GRAPH_DUAL_WRITE,!0)}function a(){return t(process.env.AGX_GRAPH_PARITY_LOGGING,!0)}function i(){return!t(process.env.AGX_GRAPH_READ_PATH_KILL_SWITCH,!1)&&"v2"===(process.env.AGX_GRAPH_READ_PATH_MODE||"v1").trim().toLowerCase()}e.s(["isDualWriteEnabled",()=>r,"isParityLoggingEnabled",()=>a,"isV2ReadPathEnabled",()=>i],383131);let s=new Set(["done","passed","failed","skipped"]),o=new Set(["running","awaiting_human","blocked"]),n=new Set(["done","passed","skipped"]);function d(e,t){let r=String(e||"").trim().toUpperCase();return"INTAKE"===r||"PROGRESS"===r||"DONE"===r?r:t}function l(e){let t,r=Object.values(e.nodes);if(0===r.length)return"queued";let a=r.filter(e=>"gate"===e.type&&e.required).every(e=>"passed"===e.status||"skipped"===e.status);return 0!==(t=e.doneCriteria?.completionSinkNodeIds??[]).length&&t.every(t=>{let r=e.nodes[t];return!!(r&&n.has(r.status))})&&a||r.every(e=>s.has(e.status))&&a?"completed":r.some(e=>"failed"===e.status)?"failed":r.some(e=>"blocked"===e.status)?"blocked":r.some(e=>o.has(e.status))||r.filter(e=>"done"===e.status||"passed"===e.status).length>0?"in_progress":"queued"}function u(e,t="INTAKE"){let r,a,i=l(e),o="completed"===(r=l(e))?"DONE":"in_progress"===r||"blocked"===r||"failed"===r?"PROGRESS":t,n="completed"===i?100:0===(a=Object.values(e.nodes)).length?0:Math.max(0,Math.min(100,Math.round(a.filter(e=>s.has(e.status)).length/a.length*100)));return{status:i,stage:o,progressPercent:n}}function p(e){var t;let r,i,s,o,n,l=(t={taskId:e.task.id,source:e.source,legacy:{status:e.task.status,stage:e.task.stage,progressPercent:e.legacyProgressPercent??null},v2:u(e.graph,d(e.task.stage||"INTAKE","INTAKE"))},i=[],s="queued"===(r=String(t.legacy.status||"").trim().toLowerCase())||"in_progress"===r||"blocked"===r||"completed"===r||"failed"===r?r:"queued",o=d(t.legacy.stage,"INTAKE"),n=Number.isFinite(Number(t.legacy.progressPercent))?Number(t.legacy.progressPercent):null,(s!==t.v2.status&&i.push({field:"status",legacy:s,v2:t.v2.status}),o!==t.v2.stage&&i.push({field:"stage",legacy:o,v2:t.v2.stage}),null!==n&&n!==t.v2.progressPercent&&i.push({field:"progressPercent",legacy:n,v2:t.v2.progressPercent}),0===i.length)?null:{taskId:t.taskId,source:t.source,diffs:i});return l&&a()&&console.warn("[graph-parity-diff]",JSON.stringify(l)),l}e.s(["logParityDiff",()=>p,"projectLegacyCompatFromGraph",()=>u],123297)},437645,e=>{"use strict";var t=e.i(762294),r=e.i(383131),a=e.i(123297),i=e.i(97812);function s(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function o(e){if(s(e.depends_on).length||"string"!=typeof e?.content)return e;let{frontmatter:r}=(0,t.parseFrontmatter)(e.content||""),a=s(r.depends_on);return a.length?{...e,depends_on:a}:e}function n(e){return"blocked"!==e.status||e.blocked_reason||e.stage&&"intake"!==e.stage.toLowerCase()?e.blocked_reason:"Awaiting approval"}async function d(e){if(!(0,r.isV2ReadPathEnabled)())return{...o(e),blocked_reason:n(e),read_path_source:"v1"};try{let t=await (0,i.getGraph)(e.id);if(!t)return{...o(e),read_path_source:"v1"};let r=(0,a.projectLegacyCompatFromGraph)(t,e.stage||"INTAKE"),s="queued"===r.status&&e.status&&"queued"!==e.status?e.status:r.status,d="completed"===s?"DONE":r.stage;(0,a.logParityDiff)({source:"read_path",task:e,graph:t});let l={...o(e),status:s,stage:d};return{...l,blocked_reason:n(l),read_path_source:"v2"}}catch(t){return console.error("Failed to project task from v2 graph; using v1 compatibility mode",t),{...o(e),read_path_source:"v1"}}}async function l(e){return Promise.all(e.map(e=>d(e)))}e.s(["projectTaskReadModel",()=>d,"projectTaskReadModels",()=>l])},688144,e=>{"use strict";var t=e.i(254799),r=e.i(579042);let a=/^\s*---\s*\r?\n[\s\S]*?\r?\n---\s*/,i=/^#\s+(.+?)(?:\r?\n|$)/;function s(e){return"string"==typeof e?e.trim():""}function o(e,t){let r=s(t),o=s(e);if(!o)return r;let n=o.replace(a,"").trim();if(!n)return r;let d=n.match(i);if(!d)return n;let l=n.slice(d[0].length).trim();return l||d[1].trim()||r}let n={...r.DEFAULT_EXECUTION_POLICY,replanBudgetInitial:3,replanBudgetRemaining:3,verifyBudgetInitial:5,verifyBudgetRemaining:5,maxConcurrentAutoChecks:1,maxConcurrent:1,priorityMode:"fifo"};function d(e,r){let a=new Date().toISOString(),i={type:"root",status:"pending",deps:[],title:e.title||"Untitled task",objective:function(e){let t=s(e.description);if(t)return o(t,e.title);let r=s(e.content);if(r)return o(r,e.title);let a=s(e.objective);return a?o(a,e.title):s(e.title)}(e),graphCreated:!1,criteria:[]};return{id:r?.graphId??(0,t.randomUUID)(),taskId:e.id,graphVersion:1,mode:"SIMPLE",nodes:{root:i,plan:{type:"work",status:"pending",deps:["root"],title:"Generate execution plan",description:"Analyze the task and generate a detailed execution graph with work nodes, gates, and dependencies.",attempts:0,maxAttempts:2,retryPolicy:{backoffMs:5e3,onExhaust:"escalate"}},"plan-approval":{type:"gate",status:"pending",gateType:"approval_gate",required:!0,deps:["plan"],verificationStrategy:{type:"human"}}},edges:[{from:"root",to:"plan",type:"hard",condition:"always"},{from:"plan",to:"plan-approval",type:"hard",condition:"always"}],policy:{...n},doneCriteria:{allRequiredGatesPassed:!0,noRunnableOrPendingWork:!0,completionSinkNodeIds:["plan-approval"]},versionHistory:[],runtimeEvents:[],createdAt:a,updatedAt:a}}e.s(["createRootOnlyGraph",()=>d],688144)},577731,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),i=e.i(759756),s=e.i(561916),o=e.i(174677),n=e.i(869741),d=e.i(316795),l=e.i(487718),u=e.i(995169),p=e.i(47587),c=e.i(666012),g=e.i(570101),m=e.i(626937),h=e.i(10372),_=e.i(193695);e.i(52474);var f=e.i(600220),E=e.i(89171),y=e.i(390081),v=e.i(762294),R=e.i(457431),w=e.i(949041),A=e.i(67675),k=e.i(669803),T=e.i(691595),S=e.i(383131),I=e.i(688144),b=e.i(123297),N=e.i(97812),x=e.i(461860);async function C(e){if(!(0,S.isDualWriteEnabled)())return{enabled:!1,result:"disabled"};try{let t=await (0,N.getGraph)(e.id);if(t)return(0,b.logParityDiff)({source:"task_create_dual_write",task:e,graph:t}),{enabled:!0,result:"existing",graphId:t.id};let r=(0,I.createRootOnlyGraph)({id:e.id,title:e.title||void 0,description:e.description||void 0,content:e.content||void 0}),a=(0,x.validateGraph)(r);if(!a.valid)return{enabled:!0,result:"failed",error:`validateGraph failed: ${JSON.stringify(a.errors)}`};let i=await (0,N.createGraph)(r);return(0,b.logParityDiff)({source:"task_create_dual_write",task:e,graph:i}),{enabled:!0,result:"created",graphId:i.id}}catch(t){if(t instanceof N.GraphTaskAlreadyBoundError){let r=await (0,N.getGraph)(e.id);return r&&(0,b.logParityDiff)({source:"task_create_dual_write",task:e,graph:r}),{enabled:!0,result:"existing",graphId:t.existingGraphId}}return{enabled:!0,result:"failed",error:t instanceof Error?t.message:String(t)}}}var O=e.i(437645);async function D(e){try{let t=w.LOCAL_USER.id,{searchParams:r}=new URL(e.url),a=r.get("project")||void 0,i="1"===r.get("orphan"),s=r.get("status"),o=r.get("slug"),n=r.get("search")||void 0;if(o){let e=await y.db.getTaskBySlug(o,t);if(!e)return E.NextResponse.json({error:"Task not found"},{status:404});let r=await (0,O.projectTaskReadModel)(e),a=await (0,k.buildTaskContext)(e),i=(0,v.resolveTaskConfig)(e,a.stage_config,a.user_settings),s={...r,...a,resolved_provider:i.provider,resolved_model:i.model??void 0,resolved_swarm:i.swarm,resolved_swarm_models:i.swarm_models};return E.NextResponse.json({task:s,stage_prompt:s.stage_prompt,stage_prompts:s.stage_prompts,stage_objective:s.stage_objective,stageObjective:s.stageObjective,stagePrompts:s.stagePrompts})}let d=await y.db.getTasks(t,{project:a,status:s||void 0,search:n,orphan:i}),l=await (0,O.projectTaskReadModels)(d);return E.NextResponse.json({tasks:l})}catch(e){return console.error("Error fetching tasks:",e),E.NextResponse.json({error:"Failed to fetch tasks"},{status:500})}}async function P(e){try{let t=w.LOCAL_USER.id,r=await e.json(),{content:a,swarm_models:i,project_id:s,title:o}=r,n=Array.isArray(r?.depends_on)?r.depends_on:"string"==typeof r?.depends_on?[r.depends_on]:void 0;if(!a)return E.NextResponse.json({error:"Content is required"},{status:400});let d=(0,A.detectDangerousOperations)(a);if(d.isDangerous&&"critical"===d.severity)return E.NextResponse.json({error:"Task contains potentially dangerous operations",dangerous:!0,severity:d.severity,patterns:d.patterns,message:"This task has been blocked. Please review and remove dangerous commands."},{status:400});let l=await y.db.createTask(a,t,{swarmModels:i,dependsOn:n,projectId:"string"==typeof s?s:void 0,title:"string"==typeof o?o:void 0});await (0,T.attemptStartTask)(l.id,t);let u=await y.db.getTask(l.id,t)||l,p=await C(u);if("failed"===p.result&&console.error("Task dual-write graph creation failed",{taskId:u.id,error:p.error}),p.graphId){let e=(0,R.createAdminDbClient)();await e.from("tasks").update({graph_id:p.graphId}).eq("id",u.id),u.graph_id=p.graphId}let c=await (0,k.buildTaskContext)(u),{comments_digest:g,stage_config:m}=c,h=(0,v.resolveTaskConfig)(u,m,c.user_settings),_=e.headers.get("x-forwarded-for")?.split(",")[0].trim()||e.headers.get("x-real-ip")||void 0,f=e.headers.get("user-agent")||void 0;await (0,A.writeAuditLog)({user_id:t,task_id:u.id,action:"dispatch",payload:{title:u.title,stage:u.stage,engine:u.engine,provider:h.provider,model:h.model??void 0,swarm:h.swarm,swarm_models:h.swarm_models,project:u.project,dangerous:d.isDangerous?{severity:d.severity,patterns:d.patterns}:null},signature:"unsigned",ip_address:_,user_agent:f,result:"pending"});let S={...u,...c,resolved_provider:h.provider,resolved_model:h.model??void 0,resolved_swarm:h.swarm,resolved_swarm_models:h.swarm_models},I={id:u.id,task:S,stage_prompt:S.stage_prompt,stage_prompts:S.stage_prompts,stage_objective:S.stage_objective,stageObjective:S.stageObjective,stagePrompts:S.stagePrompts,graph_dual_write:p};return d.isDangerous&&(I.warning={message:"Task contains potentially dangerous operations. Daemon may prompt for confirmation.",severity:d.severity,patterns:d.patterns}),E.NextResponse.json(I,{status:201})}catch(e){return console.error("Error creating task:",e),E.NextResponse.json({error:"Failed to create task"},{status:500})}}e.s(["GET",()=>D,"POST",()=>P],465651);var L=e.i(465651);let M=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/route",pathname:"/api/tasks",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/tasks/route.ts",nextConfigOutput:"standalone",userland:L}),{workAsyncStorage:j,workUnitAsyncStorage:G,serverHooks:U}=M;function q(){return(0,a.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:G})}async function F(e,t,a){M.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/tasks/route";E=E.replace(/\/index$/,"")||"/";let y=await M.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:w,parsedUrl:A,isDraftMode:k,prerenderManifest:T,routerServerContext:S,isOnDemandRevalidate:I,revalidateOnlyGenerated:b,resolvedPathname:N,clientReferenceManifest:x,serverActionsManifest:C}=y,O=(0,n.normalizeAppPath)(E),D=!!(T.dynamicRoutes[O]||T.routes[N]),P=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!T.routes[N],t=T.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await P();throw new _.NoFallbackError}}let L=null;!D||M.isDev||k||(L="/index"===(L=N)?"/":L);let j=!0===M.isDev||!D,G=D&&!j;C&&x&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:x,serverActionsManifest:C});let U=e.method||"GET",q=(0,s.getTracer)(),F=q.getActiveScopeSpan(),H={params:R,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>M.onRequestError(e,t,a,i,S)},sharedContext:{buildId:v}},B=new d.NodeNextRequest(e),W=new d.NodeNextResponse(t),$=l.NextRequestAdapter.fromNodeNextRequest(B,(0,l.signalFromNodeResponse)(t));try{let o=async e=>M.handle($,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${E}`)}),n=!!(0,i.getRequestMeta)(e,"minimalMode"),d=async i=>{var s,d;let l=async({previousCacheEntry:r})=>{try{if(!n&&I&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(i);e.fetchMetrics=H.renderOpts.fetchMetrics;let d=H.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let l=H.renderOpts.collectedTags;if(!D)return await (0,c.sendResponse)(B,W,s,H.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,a=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await M.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:I})},!1,S),t}},u=await M.handleResponse({req:e,nextConfig:w,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:n});if(!D)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});n||t.setHeader("x-nextjs-cache",I?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let _=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return n&&D||_.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||_.get("Cache-Control")||_.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,W,new Response(u.value.body,{headers:_,status:u.value.status||200})),null};F?await d(F):await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${E}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},d))}catch(t){if(t instanceof _.NoFallbackError||await M.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:I})},!1,S),D)throw t;return await (0,c.sendResponse)(B,W,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>q,"routeModule",()=>M,"serverHooks",()=>U,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>G],577731)}];
47
+ AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>d,"GraphNotFoundError",()=>n,"GraphStore",()=>y,"GraphTaskAlreadyBoundError",()=>l,"GraphVersionConflictError",()=>o,"appendEvent",()=>S,"createGraph",()=>w,"createGraphStore",()=>v,"deactivateSchedulesByRootMessageId",()=>x,"getActiveScheduleForRootMessageId",()=>b,"getActiveScheduleRootMessageIds",()=>N,"getGraph",()=>A,"getGraphEvents",()=>I,"getTaskIdForGraphId",()=>h,"updateGraphStructure",()=>T,"updateNodeRuntime",()=>k])},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},633938,e=>{"use strict";var t=e.i(492952);function r(e){let r=[];for(let a of e){if(!a.id){let e=String(a.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:a.name,path:a.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",a.id),i=e?.content.trim()||String(a.notes??"").trim();i&&r.push({repoId:a.id,repoName:a.name,path:a.path??null,content:i,producer:"human"})}return r}e.s(["listResolvedRepoKnowledge",()=>r])},669803,e=>{"use strict";var t=e.i(254799),r=e.i(457431),a=e.i(960447),i=e.i(633938),s=e.i(877581),o=e.i(492952),n=e.i(42304),d=e.i(762294);async function l(e){let t=(0,r.createAdminDbClient)(),{data:a,error:i}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(i){let e="string"==typeof i.message?i.message:"";if("42P01"===i.code||"PGRST205"===i.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw i}return a||[]}async function u(e){let t=(0,r.createAdminDbClient)(),a=e.user_id,i=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);a&&i.eq("user_id",a);let[{data:s,error:n}]=await Promise.all([i]);if(n)throw n;return{task:s||[],project:[],global:o.vaultStore.getLearnings("global")||[]}}async function p(e){let t,a=e.stage;if(!a)return{prompt:null};let i=(0,r.createAdminDbClient)(),s=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!s&&e.project_id)try{let t=await (0,d.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(s=t.workflow_id)}catch{}s||(s=d.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await i.from("workflow_nodes").select("*").eq("workflow_id",s).eq("name",a).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,a=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:a};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:a}}}catch{}try{let t=[];t.push(i.from("stage_prompts").select("*").eq("stage",a).eq("is_default",!0).eq("workflow_id",s).maybeSingle()),e.user_id&&t.push(i.from("stage_prompts").select("*").eq("stage",a).eq("user_id",e.user_id).eq("workflow_id",s).maybeSingle());let r=await Promise.all(t),o=r[0]?.data||null,n=e.user_id?r[1]?.data:null,d=n?.prompt||o?.prompt||null;if(d)return{prompt:d,swarm:n?.swarm??o?.swarm??!1,provider:n?.provider||o?.provider,model:n?.model||o?.model,swarm_models:n?.swarm_models||o?.swarm_models}}catch{}let o=d.defaultStagePrompts[a];return o?.prompt?{prompt:o.prompt,swarm:o.swarm??!1,provider:o.provider,model:o.model,swarm_models:o.swarm_models}:{prompt:null}}async function c(e,t){let r=e.project_id,a=e.project||void 0,o=null;if(r&&(o=await (0,d.getProjectWithRepos)(r,e.user_id)),!o&&a){let t=await (0,d.getProjectBySlug)(a,e.user_id);if(t){let e=await (0,d.getProjectRepos)(t.id);o={...t,repos:e}}}if(!o)return null;let n=await (0,d.getProjectMemory)(o.id,"human"),l=(0,s.getKnowledgeNote)("project",o.id);if(o.repos.length>0){let e=(0,i.listResolvedRepoKnowledge)(o.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,a=t.get(r.repoId)??[];a.push(e),t.set(r.repoId,a)}o={...o,repos:o.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:o,repos:o.repos??[],learnings:[...n.map(e=>e.content),...l?.content?[`[System-generated] ${l.content}`]:[]]}}async function g(e){let r,[i,s,o,g]=await Promise.all([l(e.id),u(e),p(e),e.user_id?(0,d.getUserSettings)(e.user_id):Promise.resolve(null)]),m=await c(e,s.project),{frontmatter:h}=(0,d.parseFrontmatter)(e.content),_=(0,n.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:h}),f=h.no_memory?[]:function(e,t=5){try{return(0,a.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(_),E=(r=JSON.stringify(i.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),y="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",v=o.prompt??null,R={};if(v&&y){R[y]=v;let e=y.toLowerCase();R[e]||(R[e]=v)}let w=v&&y?[{stage:y,prompt:v}]:[];return{comments:i,learnings:s,agent_memories:f,stage_config:o,stage_prompt:v,stage_prompts:R,stage_objective:v,stageObjective:v,stagePrompts:w,project_context:m,comments_digest:E,user_settings:g}}e.s(["buildTaskContext",()=>g])},810010,e=>{"use strict";function t(e){let t=e?.trim();return t?t.replace(/\/+$/,""):null}let r="http://localhost:41741";function a(){return t("http://localhost:3000")??t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??r}function i(){return t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??t("http://localhost:3000")??r}function s(){let e=new Set([r,"http://127.0.0.1:41741"]);for(let r of["http://localhost:3000",process.env.AGX_BOARD_URL,process.env.NEXT_PUBLIC_AGX_BOARD_URL]){let a=t(r);a&&e.add(a)}return Array.from(e)}e.s(["getAllowedOrigins",()=>s,"getConfiguredAppBaseUrl",()=>a,"getConfiguredBoardBaseUrl",()=>i])},67675,e=>{"use strict";e.i(254799);var t=e.i(810010),r=e.i(457431);let a=[/rm\s+(-rf?|--recursive)\s+[\/~]/i,/rm\s+-rf?\s+\*/i,/chmod\s+(777|a\+rwx)/i,/chown\s+.*\s+\//i,/>\s*\/dev\/sd[a-z]/i,/\.env/i,/credentials?\.json/i,/api[_-]?key/i,/secret[_-]?key/i,/private[_-]?key/i,/password/i,/curl.*\|\s*(ba)?sh/i,/wget.*\|\s*(ba)?sh/i,/nc\s+-l/i,/socat/i,/sudo\s+/i,/su\s+-/i,/mkfs\./i,/dd\s+if=/i,/eval\s*\(/i,/exec\s*\(/i,/child_process/i,/__import__/i,/base64.*>/i,/xxd/i,/tar.*-c.*\|.*curl/i];function i(e){let t=[];for(let r of a)r.test(e)&&t.push(r.source);let r="low";return/rm\s+(-rf?|--recursive)\s*[\/~\*]|sudo\s+|mkfs\.|dd\s+if=/i.test(e)?r="critical":/curl.*\|\s*(ba)?sh|wget.*\|\s*(ba)?sh|chmod\s+(777|a\+rwx)|\.env\b/i.test(e)?r="high":/password|api[_-]?key|secret[_-]?key|private[_-]?key|credentials?\.json/i.test(e)&&(r="medium"),{isDangerous:t.length>0,patterns:t,severity:r}}async function s(e){let t=(0,r.createAdminDbClient)(),{data:a,error:i}=await t.from("task_audit_log").insert({user_id:e.user_id,task_id:e.task_id,action:e.action,payload:e.payload,signature:e.signature,ip_address:e.ip_address,user_agent:e.user_agent,result:e.result||"pending"}).select("id").single();if(i)throw console.error("Failed to write audit log:",i),Error("Audit log write failed");return a.id}[...(0,t.getAllowedOrigins)()],e.s(["detectDangerousOperations",()=>i,"writeAuditLog",()=>s])},123297,383131,e=>{"use strict";function t(e,t){if(void 0===e)return t;let r=e.trim().toLowerCase();return"1"===r||"true"===r||"yes"===r||"on"===r||"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r&&t}function r(){return t(process.env.AGX_GRAPH_DUAL_WRITE,!0)}function a(){return t(process.env.AGX_GRAPH_PARITY_LOGGING,!0)}function i(){return!t(process.env.AGX_GRAPH_READ_PATH_KILL_SWITCH,!1)&&"v2"===(process.env.AGX_GRAPH_READ_PATH_MODE||"v1").trim().toLowerCase()}e.s(["isDualWriteEnabled",()=>r,"isParityLoggingEnabled",()=>a,"isV2ReadPathEnabled",()=>i],383131);let s=new Set(["done","passed","failed","skipped"]),o=new Set(["running","awaiting_human","blocked"]),n=new Set(["done","passed","skipped"]);function d(e,t){let r=String(e||"").trim().toUpperCase();return"INTAKE"===r||"PROGRESS"===r||"DONE"===r?r:t}function l(e){let t,r=Object.values(e.nodes);if(0===r.length)return"queued";let a=r.filter(e=>"gate"===e.type&&e.required).every(e=>"passed"===e.status||"skipped"===e.status);return 0!==(t=e.doneCriteria?.completionSinkNodeIds??[]).length&&t.every(t=>{let r=e.nodes[t];return!!(r&&n.has(r.status))})&&a||r.every(e=>s.has(e.status))&&a?"completed":r.some(e=>"failed"===e.status)?"failed":r.some(e=>"blocked"===e.status)?"blocked":r.some(e=>o.has(e.status))||r.filter(e=>"done"===e.status||"passed"===e.status).length>0?"in_progress":"queued"}function u(e,t="INTAKE"){let r,a,i=l(e),o="completed"===(r=l(e))?"DONE":"in_progress"===r||"blocked"===r||"failed"===r?"PROGRESS":t,n="completed"===i?100:0===(a=Object.values(e.nodes)).length?0:Math.max(0,Math.min(100,Math.round(a.filter(e=>s.has(e.status)).length/a.length*100)));return{status:i,stage:o,progressPercent:n}}function p(e){var t;let r,i,s,o,n,l=(t={taskId:e.task.id,source:e.source,legacy:{status:e.task.status,stage:e.task.stage,progressPercent:e.legacyProgressPercent??null},v2:u(e.graph,d(e.task.stage||"INTAKE","INTAKE"))},i=[],s="queued"===(r=String(t.legacy.status||"").trim().toLowerCase())||"in_progress"===r||"blocked"===r||"completed"===r||"failed"===r?r:"queued",o=d(t.legacy.stage,"INTAKE"),n=Number.isFinite(Number(t.legacy.progressPercent))?Number(t.legacy.progressPercent):null,(s!==t.v2.status&&i.push({field:"status",legacy:s,v2:t.v2.status}),o!==t.v2.stage&&i.push({field:"stage",legacy:o,v2:t.v2.stage}),null!==n&&n!==t.v2.progressPercent&&i.push({field:"progressPercent",legacy:n,v2:t.v2.progressPercent}),0===i.length)?null:{taskId:t.taskId,source:t.source,diffs:i});return l&&a()&&console.warn("[graph-parity-diff]",JSON.stringify(l)),l}e.s(["logParityDiff",()=>p,"projectLegacyCompatFromGraph",()=>u],123297)},437645,e=>{"use strict";var t=e.i(762294),r=e.i(383131),a=e.i(123297),i=e.i(97812);function s(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function o(e){if(s(e.depends_on).length||"string"!=typeof e?.content)return e;let{frontmatter:r}=(0,t.parseFrontmatter)(e.content||""),a=s(r.depends_on);return a.length?{...e,depends_on:a}:e}function n(e){return"blocked"!==e.status||e.blocked_reason||e.stage&&"intake"!==e.stage.toLowerCase()?e.blocked_reason:"Awaiting approval"}async function d(e){if(!(0,r.isV2ReadPathEnabled)())return{...o(e),blocked_reason:n(e),read_path_source:"v1"};try{let t=await (0,i.getGraph)(e.id);if(!t)return{...o(e),read_path_source:"v1"};let r=(0,a.projectLegacyCompatFromGraph)(t,e.stage||"INTAKE"),s="queued"===r.status&&e.status&&"queued"!==e.status?e.status:r.status,d="completed"===s?"DONE":r.stage;(0,a.logParityDiff)({source:"read_path",task:e,graph:t});let l={...o(e),status:s,stage:d};return{...l,blocked_reason:n(l),read_path_source:"v2"}}catch(t){return console.error("Failed to project task from v2 graph; using v1 compatibility mode",t),{...o(e),read_path_source:"v1"}}}async function l(e){return Promise.all(e.map(e=>d(e)))}e.s(["projectTaskReadModel",()=>d,"projectTaskReadModels",()=>l])},688144,e=>{"use strict";var t=e.i(254799),r=e.i(579042);let a=/^\s*---\s*\r?\n[\s\S]*?\r?\n---\s*/,i=/^#\s+(.+?)(?:\r?\n|$)/;function s(e){return"string"==typeof e?e.trim():""}function o(e,t){let r=s(t),o=s(e);if(!o)return r;let n=o.replace(a,"").trim();if(!n)return r;let d=n.match(i);if(!d)return n;let l=n.slice(d[0].length).trim();return l||d[1].trim()||r}let n={...r.DEFAULT_EXECUTION_POLICY,replanBudgetInitial:3,replanBudgetRemaining:3,verifyBudgetInitial:5,verifyBudgetRemaining:5,maxConcurrentAutoChecks:1,maxConcurrent:1,priorityMode:"fifo"};function d(e,r){let a=new Date().toISOString(),i={type:"root",status:"pending",deps:[],title:e.title||"Untitled task",objective:function(e){let t=s(e.description);if(t)return o(t,e.title);let r=s(e.content);if(r)return o(r,e.title);let a=s(e.objective);return a?o(a,e.title):s(e.title)}(e),graphCreated:!1,criteria:[]};return{id:r?.graphId??(0,t.randomUUID)(),taskId:e.id,graphVersion:1,mode:"SIMPLE",nodes:{root:i,plan:{type:"work",status:"pending",deps:["root"],title:"Generate execution plan",description:"Analyze the task and generate a detailed execution graph with work nodes, gates, and dependencies.",attempts:0,maxAttempts:2,retryPolicy:{backoffMs:5e3,onExhaust:"escalate"}},"plan-approval":{type:"gate",status:"pending",gateType:"approval_gate",required:!0,deps:["plan"],verificationStrategy:{type:"human"}}},edges:[{from:"root",to:"plan",type:"hard",condition:"always"},{from:"plan",to:"plan-approval",type:"hard",condition:"always"}],policy:{...n},doneCriteria:{allRequiredGatesPassed:!0,noRunnableOrPendingWork:!0,completionSinkNodeIds:["plan-approval"]},versionHistory:[],runtimeEvents:[],createdAt:a,updatedAt:a}}e.s(["createRootOnlyGraph",()=>d],688144)},577731,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),i=e.i(759756),s=e.i(561916),o=e.i(174677),n=e.i(869741),d=e.i(316795),l=e.i(487718),u=e.i(995169),p=e.i(47587),c=e.i(666012),g=e.i(570101),m=e.i(626937),h=e.i(10372),_=e.i(193695);e.i(52474);var f=e.i(600220),E=e.i(89171),y=e.i(390081),v=e.i(762294),R=e.i(457431),w=e.i(949041),A=e.i(67675),k=e.i(669803),T=e.i(691595),S=e.i(383131),I=e.i(688144),b=e.i(123297),N=e.i(97812),x=e.i(461860);async function C(e){if(!(0,S.isDualWriteEnabled)())return{enabled:!1,result:"disabled"};try{let t=await (0,N.getGraph)(e.id);if(t)return(0,b.logParityDiff)({source:"task_create_dual_write",task:e,graph:t}),{enabled:!0,result:"existing",graphId:t.id};let r=(0,I.createRootOnlyGraph)({id:e.id,title:e.title||void 0,description:e.description||void 0,content:e.content||void 0}),a=(0,x.validateGraph)(r);if(!a.valid)return{enabled:!0,result:"failed",error:`validateGraph failed: ${JSON.stringify(a.errors)}`};let i=await (0,N.createGraph)(r);return(0,b.logParityDiff)({source:"task_create_dual_write",task:e,graph:i}),{enabled:!0,result:"created",graphId:i.id}}catch(t){if(t instanceof N.GraphTaskAlreadyBoundError){let r=await (0,N.getGraph)(e.id);return r&&(0,b.logParityDiff)({source:"task_create_dual_write",task:e,graph:r}),{enabled:!0,result:"existing",graphId:t.existingGraphId}}return{enabled:!0,result:"failed",error:t instanceof Error?t.message:String(t)}}}var O=e.i(437645);async function D(e){try{let t=w.LOCAL_USER.id,{searchParams:r}=new URL(e.url),a=r.get("project")||void 0,i="1"===r.get("orphan"),s=r.get("status"),o=r.get("slug"),n=r.get("search")||void 0;if(o){let e=await y.db.getTaskBySlug(o,t);if(!e)return E.NextResponse.json({error:"Task not found"},{status:404});let r=await (0,O.projectTaskReadModel)(e),a=await (0,k.buildTaskContext)(e),i=(0,v.resolveTaskConfig)(e,a.stage_config,a.user_settings),s={...r,...a,resolved_provider:i.provider,resolved_model:i.model??void 0,resolved_swarm:i.swarm,resolved_swarm_models:i.swarm_models};return E.NextResponse.json({task:s,stage_prompt:s.stage_prompt,stage_prompts:s.stage_prompts,stage_objective:s.stage_objective,stageObjective:s.stageObjective,stagePrompts:s.stagePrompts})}let d=await y.db.getTasks(t,{project:a,status:s||void 0,search:n,orphan:i}),l=await (0,O.projectTaskReadModels)(d);return E.NextResponse.json({tasks:l})}catch(e){return console.error("Error fetching tasks:",e),E.NextResponse.json({error:"Failed to fetch tasks"},{status:500})}}async function P(e){try{let t=w.LOCAL_USER.id,r=await e.json(),{content:a,swarm_models:i,project_id:s,title:o}=r,n=Array.isArray(r?.depends_on)?r.depends_on:"string"==typeof r?.depends_on?[r.depends_on]:void 0;if(!a)return E.NextResponse.json({error:"Content is required"},{status:400});let d=(0,A.detectDangerousOperations)(a);if(d.isDangerous&&"critical"===d.severity)return E.NextResponse.json({error:"Task contains potentially dangerous operations",dangerous:!0,severity:d.severity,patterns:d.patterns,message:"This task has been blocked. Please review and remove dangerous commands."},{status:400});let l=await y.db.createTask(a,t,{swarmModels:i,dependsOn:n,projectId:"string"==typeof s?s:void 0,title:"string"==typeof o?o:void 0});await (0,T.attemptStartTask)(l.id,t);let u=await y.db.getTask(l.id,t)||l,p=await C(u);if("failed"===p.result&&console.error("Task dual-write graph creation failed",{taskId:u.id,error:p.error}),p.graphId){let e=(0,R.createAdminDbClient)();await e.from("tasks").update({graph_id:p.graphId}).eq("id",u.id),u.graph_id=p.graphId}let c=await (0,k.buildTaskContext)(u),{comments_digest:g,stage_config:m}=c,h=(0,v.resolveTaskConfig)(u,m,c.user_settings),_=e.headers.get("x-forwarded-for")?.split(",")[0].trim()||e.headers.get("x-real-ip")||void 0,f=e.headers.get("user-agent")||void 0;await (0,A.writeAuditLog)({user_id:t,task_id:u.id,action:"dispatch",payload:{title:u.title,stage:u.stage,engine:u.engine,provider:h.provider,model:h.model??void 0,swarm:h.swarm,swarm_models:h.swarm_models,project:u.project,dangerous:d.isDangerous?{severity:d.severity,patterns:d.patterns}:null},signature:"unsigned",ip_address:_,user_agent:f,result:"pending"});let S={...u,...c,resolved_provider:h.provider,resolved_model:h.model??void 0,resolved_swarm:h.swarm,resolved_swarm_models:h.swarm_models},I={id:u.id,task:S,stage_prompt:S.stage_prompt,stage_prompts:S.stage_prompts,stage_objective:S.stage_objective,stageObjective:S.stageObjective,stagePrompts:S.stagePrompts,graph_dual_write:p};return d.isDangerous&&(I.warning={message:"Task contains potentially dangerous operations. Daemon may prompt for confirmation.",severity:d.severity,patterns:d.patterns}),E.NextResponse.json(I,{status:201})}catch(e){return console.error("Error creating task:",e),E.NextResponse.json({error:"Failed to create task"},{status:500})}}e.s(["GET",()=>D,"POST",()=>P],465651);var L=e.i(465651);let M=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/route",pathname:"/api/tasks",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/tasks/route.ts",nextConfigOutput:"standalone",userland:L}),{workAsyncStorage:j,workUnitAsyncStorage:G,serverHooks:U}=M;function q(){return(0,a.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:G})}async function F(e,t,a){M.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/tasks/route";E=E.replace(/\/index$/,"")||"/";let y=await M.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:w,parsedUrl:A,isDraftMode:k,prerenderManifest:T,routerServerContext:S,isOnDemandRevalidate:I,revalidateOnlyGenerated:b,resolvedPathname:N,clientReferenceManifest:x,serverActionsManifest:C}=y,O=(0,n.normalizeAppPath)(E),D=!!(T.dynamicRoutes[O]||T.routes[N]),P=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!T.routes[N],t=T.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(w.experimental.adapterPath)return await P();throw new _.NoFallbackError}}let L=null;!D||M.isDev||k||(L="/index"===(L=N)?"/":L);let j=!0===M.isDev||!D,G=D&&!j;C&&x&&(0,o.setManifestsSingleton)({page:E,clientReferenceManifest:x,serverActionsManifest:C});let U=e.method||"GET",q=(0,s.getTracer)(),F=q.getActiveScopeSpan(),H={params:R,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:w.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>M.onRequestError(e,t,a,i,S)},sharedContext:{buildId:v}},B=new d.NodeNextRequest(e),W=new d.NodeNextResponse(t),$=l.NextRequestAdapter.fromNodeNextRequest(B,(0,l.signalFromNodeResponse)(t));try{let o=async e=>M.handle($,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${E}`)}),n=!!(0,i.getRequestMeta)(e,"minimalMode"),d=async i=>{var s,d;let l=async({previousCacheEntry:r})=>{try{if(!n&&I&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(i);e.fetchMetrics=H.renderOpts.fetchMetrics;let d=H.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let l=H.renderOpts.collectedTags;if(!D)return await (0,c.sendResponse)(B,W,s,H.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,a=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await M.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:I})},!1,S),t}},u=await M.handleResponse({req:e,nextConfig:w,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:n});if(!D)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(d=u.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});n||t.setHeader("x-nextjs-cache",I?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let _=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return n&&D||_.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||_.get("Cache-Control")||_.set("Cache-Control",(0,m.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(B,W,new Response(u.value.body,{headers:_,status:u.value.status||200})),null};F?await d(F):await q.withPropagatedContext(e.headers,()=>q.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${E}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},d))}catch(t){if(t instanceof _.NoFallbackError||await M.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:I})},!1,S),D)throw t;return await (0,c.sendResponse)(B,W,new Response(null,{status:500})),null}}e.s(["handler",()=>F,"patchFetch",()=>q,"routeModule",()=>M,"serverHooks",()=>U,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>G],577731)}];
48
48
 
49
- //# sourceMappingURL=%5Broot-of-the-server%5D__ef27f8cd._.js.map
49
+ //# sourceMappingURL=%5Broot-of-the-server%5D__df886e3c._.js.map