@mndrk/agx 2.0.32 → 2.0.33

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 (434) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +3 -4
  35. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +3 -3
  39. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/app-paths-manifest.json +3 -0
  54. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/build-manifest.json +11 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/server-reference-manifest.json +4 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +8 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.map +5 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route_client-reference-manifest.js +2 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +2 -2
  71. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +3 -2
  75. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +4 -3
  99. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +6 -6
  101. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +2 -3
  105. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +2 -3
  107. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +3 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  111. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +4 -4
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +2 -2
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +5 -5
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +6 -6
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +6 -6
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +3 -3
  173. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +3 -3
  175. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  182. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  183. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  187. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  189. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  190. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  191. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  195. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
  201. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  207. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  208. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  214. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  218. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  225. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  226. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  227. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  229. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  230. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  240. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  244. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  245. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  247. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  249. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  253. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  254. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  256. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  258. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  260. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  263. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  264. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  265. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  266. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  267. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  269. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  270. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  271. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  272. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +1 -0
  273. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +80 -0
  274. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0b3b6a47._.js +51 -0
  275. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__86f7d27b._.js → [root-of-the-server]__18423486._.js} +2 -2
  276. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dede3dcd._.js → [root-of-the-server]__19520d85._.js} +1 -1
  277. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__399b2ca9._.js → [root-of-the-server]__1c18c0d1._.js} +2 -2
  278. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +3 -0
  279. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +42 -0
  280. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6e59b27c._.js → [root-of-the-server]__32b13ba9._.js} +2 -2
  281. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1dd062c1._.js → [root-of-the-server]__3c1567b6._.js} +2 -2
  282. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__29ce9c60._.js → [root-of-the-server]__3c37453e._.js} +2 -2
  283. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__507a4363._.js → [root-of-the-server]__3faa64cd._.js} +2 -2
  284. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +80 -0
  285. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e446cb39._.js → [root-of-the-server]__4837d72a._.js} +2 -2
  286. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__10940c29._.js → [root-of-the-server]__49c03d66._.js} +2 -2
  287. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b40c7aab._.js → [root-of-the-server]__4a8d14c1._.js} +2 -2
  288. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__75bff965._.js → [root-of-the-server]__4c861686._.js} +2 -2
  289. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d8c6e3d._.js +58 -0
  290. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +1 -1
  291. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__94fa1edc._.js → [root-of-the-server]__588b6ab0._.js} +2 -2
  292. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ccfcbcd5._.js → [root-of-the-server]__5a348fba._.js} +2 -2
  293. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9dfaaf72._.js → [root-of-the-server]__61c99680._.js} +2 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c08bef05._.js → [root-of-the-server]__6acb940d._.js} +2 -2
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98535eb3._.js → [root-of-the-server]__7e79d86a._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c187704._.js → [root-of-the-server]__7ffcc20c._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5634f17._.js → [root-of-the-server]__875279cb._.js} +1 -1
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13677d96._.js → [root-of-the-server]__8b0ab82f._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5b93200._.js → [root-of-the-server]__8b461158._.js} +2 -2
  300. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +80 -0
  301. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +80 -0
  302. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e6ad07c3._.js → [root-of-the-server]__a67cd108._.js} +2 -2
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d8cedc8a._.js → [root-of-the-server]__abb032c1._.js} +2 -2
  304. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b3ed0a00._.js +46 -0
  305. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b63cb741._.js +63 -0
  306. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2388b2b3._.js → [root-of-the-server]__b9b3fde6._.js} +2 -2
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f4b70b67._.js → [root-of-the-server]__be4ad4b5._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +80 -0
  309. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5ca87ba0._.js → [root-of-the-server]__c480c9c2._.js} +2 -2
  310. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +79 -0
  311. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c99509c2._.js +101 -0
  312. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +1 -1
  313. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d6e1ee6e._.js +32 -0
  314. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__80655727._.js → [root-of-the-server]__e069c0a3._.js} +2 -2
  315. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5a2358a._.js → [root-of-the-server]__e1e51c02._.js} +2 -2
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__12afd8a3._.js → [root-of-the-server]__ef82dda1._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +25 -0
  318. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1b7932f._.js +36 -0
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d318eb0._.js → [root-of-the-server]__f701b208._.js} +24 -24
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2e596cc8._.js → [root-of-the-server]__fee58db1._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffffceac._.js +6 -0
  322. package/cloud-runtime/standalone/.next/server/chunks/_5462a047._.js +3 -0
  323. package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +57 -0
  324. package/cloud-runtime/standalone/.next/server/chunks/_c965f7b3._.js +3 -0
  325. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
  326. package/cloud-runtime/standalone/.next/server/chunks/{_3e0d34cc._.js → _d22934ab._.js} +24 -24
  327. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_knowledge-notes_route_actions_0ddf6109.js +3 -0
  328. package/cloud-runtime/standalone/.next/server/chunks/lib_7cad5c77._.js +64 -0
  329. package/cloud-runtime/standalone/.next/server/chunks/lib_87c06aeb._.js +25 -0
  330. package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
  331. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +1 -1
  332. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +45 -37
  333. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +45 -37
  334. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +12 -12
  335. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a8a8afdc._.js → [root-of-the-server]__04d1aa70._.js} +2 -2
  336. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9166c1d6._.js → [root-of-the-server]__2d80540b._.js} +2 -2
  337. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ffa2883._.js +1 -1
  338. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +1 -1
  339. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1322ced8._.js → [root-of-the-server]__a416df95._.js} +2 -2
  340. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__783669c3._.js → [root-of-the-server]__c108f06c._.js} +2 -2
  341. package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +1 -1
  342. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_0f4e70b1._.js → _41f60c52._.js} +2 -2
  343. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6b14826d._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6fc3736e._.js → _84879a01._.js} +2 -2
  345. package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +1 -1
  346. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_ff5799d6._.js → _9eeb2fa0._.js} +2 -2
  347. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_68ac991e._.js → _a1d30b20._.js} +2 -2
  348. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_5b2b8a85._.js → _c87c359c._.js} +2 -2
  349. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_fb292eed._.js → _dd31b6e0._.js} +2 -2
  350. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6de3f1de._.js → _f0ce6183._.js} +2 -2
  351. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +1 -1
  352. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bf855424._.js +3 -0
  355. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +1 -0
  356. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  357. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  358. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  359. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  360. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  361. package/cloud-runtime/standalone/.next/static/chunks/{a66e1891e808a664.js → 012e3e9699415997.js} +1 -1
  362. package/cloud-runtime/standalone/.next/static/chunks/031d99fbe758545a.js +1 -0
  363. package/cloud-runtime/standalone/.next/static/chunks/{87f099ea02aa419d.js → 116985039c24f1f8.js} +9 -9
  364. package/cloud-runtime/standalone/.next/static/chunks/2ee8d24314eec47c.js +1 -0
  365. package/cloud-runtime/standalone/.next/static/chunks/3a55441b018d52e4.js +1 -0
  366. package/cloud-runtime/standalone/.next/static/chunks/{cd308f61797939cd.js → 43f6157bc3db9c52.js} +2 -2
  367. package/cloud-runtime/standalone/.next/static/chunks/{58025a80caa3629d.js → 56a01238098d495d.js} +9 -9
  368. package/cloud-runtime/standalone/.next/static/chunks/{6fbe08eab578c7d3.js → 601996727991149e.js} +9 -9
  369. package/cloud-runtime/standalone/.next/static/chunks/851b1d97179bd39b.css +1 -0
  370. package/cloud-runtime/standalone/.next/static/chunks/90b581e9631d8cea.js +1 -0
  371. package/cloud-runtime/standalone/.next/static/chunks/b22947e6df238fd5.js +1 -0
  372. package/cloud-runtime/standalone/.next/static/chunks/{4200b512bdc226bc.js → b2dcd19ebe3af3f6.js} +9 -9
  373. package/cloud-runtime/standalone/.next/static/chunks/{e62d5fa120fdf21f.js → bc06988336ffd261.js} +1 -1
  374. package/cloud-runtime/standalone/.next/static/chunks/{1f415d0ce7ebbd08.js → c93b9643c81c134e.js} +1 -1
  375. package/cloud-runtime/standalone/.next/static/chunks/{88e24940a5d5d386.js → d78cc7d749043fef.js} +1 -1
  376. package/cloud-runtime/standalone/.next/static/chunks/ebaf4e8f04bae7b6.js +1 -0
  377. package/cloud-runtime/standalone/.next/static/chunks/f4909e7ae8229b1c.js +1 -0
  378. package/cloud-runtime/standalone/.next/static/chunks/fd221a50082e5128.js +1 -0
  379. package/cloud-runtime/standalone/app/api/chat/route.ts +36 -0
  380. package/cloud-runtime/standalone/app/api/knowledge-notes/route.ts +53 -0
  381. package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +210 -26
  382. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +62 -41
  383. package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +19 -9
  384. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +33 -28
  385. package/cloud-runtime/standalone/hooks/useGroupChat.ts +4 -0
  386. package/cloud-runtime/standalone/hooks/useProcessPolling.ts +4 -3
  387. package/cloud-runtime/standalone/hooks/useThreadState.ts +10 -2
  388. package/cloud-runtime/standalone/lib/cli-runner.ts +212 -14
  389. package/cloud-runtime/standalone/lib/db.ts +1 -1
  390. package/cloud-runtime/standalone/lib/debug-log.ts +48 -0
  391. package/cloud-runtime/standalone/lib/history-store.ts +78 -2
  392. package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +51 -0
  393. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +6 -0
  394. package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +117 -2
  395. package/cloud-runtime/standalone/transcri +0 -0
  396. package/cloud-runtime/standalone/worker/index.js +604 -165
  397. package/lib/cli/runCli.js +0 -97
  398. package/lib/commands/update.js +159 -17
  399. package/package.json +1 -1
  400. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +0 -46
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +0 -29
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +0 -52
  403. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +0 -55
  404. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +0 -20
  405. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +0 -52
  406. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +0 -67
  407. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +0 -8
  408. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +0 -52
  409. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4dc25d71._.js +0 -18
  410. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +0 -52
  411. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +0 -52
  412. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +0 -52
  413. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +0 -25
  414. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e45a2a1d._.js +0 -3
  415. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +0 -15
  416. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +0 -3
  417. package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +0 -57
  418. package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +0 -57
  419. package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +0 -18
  420. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +0 -3
  421. package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +0 -3
  422. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +0 -3
  423. package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +0 -1
  424. package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +0 -1
  425. package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +0 -1
  426. package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +0 -1
  427. package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +0 -1
  428. package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +0 -1
  429. package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +0 -1
  430. package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +0 -1
  431. package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +0 -1
  432. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_buildManifest.js +0 -0
  433. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_clientMiddlewareManifest.json +0 -0
  434. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_ssgManifest.js +0 -0
@@ -1,55 +0,0 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},85148,(e,t,r)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},49041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},21729,e=>{"use strict";var t=e.i(22734),r=e.i(46786),a=e.i(14747);let n="3.35.0",i=["json1"],o=["fts5"],s=["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 d(d,u){let c=[],p=d.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,n)&&c.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${n}`,found:p.v,required:`>= ${n}`,fix:"darwin"===r.default.platform()?"TURBOPACK unreachable":"apt-get install -y libsqlite3-dev && npm rebuild better-sqlite3"}),i))l(d,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(d,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let f=function(n){"linux"!==r.default.platform()&&r.default.platform();try{let i=a.default.resolve(n),{execSync:o}=e.r(33405);if("darwin"===r.default.platform());else{let e=t.default.readFileSync("/proc/mounts","utf-8"),r="",a="unknown";for(let t of e.split("\n")){let[,e,n]=t.split(/\s+/);e&&i.startsWith(e)&&e.length>r.length&&(r=e,a=n||"unknown")}return a}}catch{}return null}(u);f&&s.some(e=>f.toLowerCase().includes(e))&&c.push({kind:"filesystem_error",message:`Database path '${u}' is on a network filesystem (${f})`,path:u,found:f,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{d.pragma("journal_mode = wal"),d.pragma("foreign_keys = 1"),d.pragma("busy_timeout = 5000"),d.pragma("synchronous = 1"),d.pragma("cache_size = -64000");let e=d.pragma("journal_mode",{simple:!0}).toLowerCase(),t=new Set(["wal","delete"]);if(!t.has(e)){d.pragma("journal_mode = DELETE");let e=d.pragma("journal_mode",{simple:!0}).toLowerCase();t.has(e)?(d.pragma("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",()=>d])},57431,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(60447);return t()}e.i(49041),e.s(["createAdminDbClient",()=>t])},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},12616,e=>{"use strict";function t(e,t){return`---
2
- ${Object.entries(e).map(([e,t])=>`${e}: ${null==t?"":String(t)}`).join("\n")}
3
- ---
4
- ${t}`}e.s(["buildMarkdownWithFrontmatter",()=>t])},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},14499,e=>{"use strict";let t=Number(process.env.AGX_MAX_WORKERS)||10;function r(e){if(e>t)throw Error(`[limits] Requested ${e} workers exceeds MAX_WORKERS (${t}). See docs/LIMITS.md — exceeding this limit risks SQLITE_BUSY errors. Set AGX_MAX_WORKERS to override (requires architecture review).`);if(e<1)throw Error(`[limits] Worker count must be at least 1, got ${e}.`)}class a{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}}}e.s(["MAX_WORKERS",0,t,"WRITE_QPS_CEILING",0,50,"WRITE_RATE_SAMPLE_WINDOW_MS",0,1e4,"WriteRateMonitor",()=>a,"assertWorkerCount",()=>r])},68638,e=>{"use strict";var t=e.i(85148),r=e.i(66680);let a={randomUUID:r.randomUUID},n=new Uint8Array(256),i=n.length,o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let s=function(e,t,s){if(a.randomUUID&&!t&&!e)return a.randomUUID();var l=e,d=s;let u=(l=l||{}).random??l.rng?.()??(i>n.length-16&&((0,r.randomFillSync)(n),i=0),n.slice(i,i+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((d=d||0)<0||d+16>t.length)throw RangeError(`UUID byte range ${d}:${d+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[d+e]=u[e];return t}return function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(u)};var l=e.i(14747),d=e.i(22734),u=e.i(46786),c=e.i(21729),p=e.i(14499);let f=process.env.AGX_DATA_DIR||l.default.join(u.default.homedir(),".agx");class g{db;workers=new Map;pollingInterval=null;writeRateInterval=null;writeMonitor=new p.WriteRateMonitor;workerId;constructor(e){this.workerId=s();const r=e||process.env.SQLITE_QUEUE_PATH||l.default.join(f,"agx-queue.db"),a=l.default.dirname(r);d.default.existsSync(a)||d.default.mkdirSync(a,{recursive:!0}),this.db=new t.default(r);const n=(0,c.validateSQLiteEnvironment)(this.db,r);if(n.length>0){const e=n.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(`
5
- CREATE TABLE IF NOT EXISTS agx_jobs (
6
- id TEXT PRIMARY KEY,
7
- queue TEXT NOT NULL,
8
- data TEXT NOT NULL,
9
- status TEXT NOT NULL CHECK(status IN ('pending', 'active', 'completed', 'failed', 'retry')),
10
- created_at INTEGER NOT NULL,
11
- start_after INTEGER NOT NULL DEFAULT 0,
12
- started_at INTEGER,
13
- completed_at INTEGER,
14
- failed_at INTEGER,
15
- worker_id TEXT,
16
- retry_count INTEGER DEFAULT 0,
17
- retry_limit INTEGER DEFAULT 0,
18
- priority INTEGER DEFAULT 0,
19
- error TEXT
20
- );
21
- CREATE INDEX IF NOT EXISTS idx_jobs_fetch ON agx_jobs (queue, status, start_after, priority DESC, created_at ASC);
22
- `);let e=new Set(this.db.pragma("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=s(),n=Date.now(),i=r?.startAfter?r.startAfter instanceof Date?r.startAfter.getTime():r.startAfter:n;return this.db.prepare(`
23
- INSERT INTO agx_jobs (
24
- id, queue, data, status, created_at, start_after, retry_limit, priority
25
- ) VALUES (?, ?, ?, 'pending', ?, ?, ?, ?)
26
- `).run(a,e,JSON.stringify(t),n,i,r?.retryLimit??3,r?.priority??0),this.writeMonitor.record(),a}async work(e,t,r){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(),p.WRITE_RATE_SAMPLE_WINDOW_MS))}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 r=t.options.batchSize||1,a=Date.now(),n=this.db.transaction(()=>{let t=this.db.prepare(`
27
- SELECT id, data FROM agx_jobs
28
- WHERE queue = ?
29
- AND (status = 'pending' OR status = 'retry')
30
- AND start_after <= ?
31
- ORDER BY priority DESC, created_at ASC
32
- LIMIT ?
33
- `).all(e,a,r);if(0===t.length)return[];let n=t.map(e=>e.id),i=this.db.prepare(`
34
- UPDATE agx_jobs
35
- SET status = 'active', started_at = ?, worker_id = ?
36
- WHERE id = ?
37
- `);for(let e of n)i.run(a,this.workerId,e);return t.map(t=>({id:t.id,name:e,data:JSON.parse(t.data)}))})();n.length>0&&this.executeJobs(n,t.handler)}async executeJobs(e,t){try{await t(e),this.completeJobs(e.map(e=>e.id))}catch(t){this.failJobs(e.map(e=>e.id),t.message||String(t))}}completeJobs(e){let t=Date.now(),r=this.db.prepare(`
38
- UPDATE agx_jobs
39
- SET status = 'completed', completed_at = ?
40
- WHERE id = ?
41
- `);this.db.transaction(()=>{for(let a of e)r.run(t,a)})()}failJobs(e,t){let r=Date.now(),a=this.db.prepare(`
42
- SELECT id, retry_count, retry_limit FROM agx_jobs WHERE id = ?
43
- `),n=this.db.prepare(`
44
- UPDATE agx_jobs
45
- SET status = 'retry', retry_count = retry_count + 1,
46
- start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
47
- error = ?
48
- WHERE id = ?
49
- `),i=this.db.prepare(`
50
- UPDATE agx_jobs
51
- SET status = 'failed', failed_at = ?, error = ?
52
- WHERE id = ?
53
- `);this.db.transaction(()=>{for(let o of e){let e=a.get(o);if(e&&e.retry_count<e.retry_limit){let a=(e.retry_count+1)*2e3;n.run(r+a,t,o)}else i.run(r,t,o)}})()}}let m=null;async function h(){return m||(m=new g,await m.start()),m}e.s(["QUEUE_NAMES",0,{TASK_PROCESS:"agx.task.process",CHAT_RUN_PROCESS:"agx.chat.process",TASK_CLEANUP:"agx.task.cleanup"},"getQueue",()=>h],68638)},4290,e=>{"use strict";var t=e.i(62294);let r=[["INTAKE","PROGRESS","DONE"]];function a(e,t){for(let t of["ticket_type","type","issue_type","kind"])if("spike"===function(e){if("string"!=typeof e)return"task";let t=e.trim().toLowerCase();return"spike"===t||"spikes"===t?"spike":"task"}(e[t]))return"spike";let r=t.match(/^#\s+(.+)$/m),a=r?.[1]?.trim().toLowerCase()||"";return a.startsWith("spike:")||a.startsWith("[spike]")?"spike":"task"}function n({currentStage:e,decision:t,ticketType:a,retryCount:n,maxRetries:i=3}){let o=function(e,t){if("spike"===t)return"INTAKE"===e?"PROGRESS":"DONE"===e?null:"DONE";for(let t of r){let r=t.indexOf(e);if(-1!==r){if(r>=t.length-1)return null;return t[r+1]}}return null}(e,a);if("done"===t)return o?{nextStage:o,nextStatus:"queued",retryCount:0,error:null,appendLog:{content:`Stage completed: ${e}`,logType:"checkpoint"}}:{nextStage:"DONE",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at stage ${e}.`,logType:"checkpoint"}};if("blocked"===t)return{nextStage:e,nextStatus:"blocked",retryCount:n,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"}};if("PROGRESS"===e)return{nextStage:"PROGRESS",nextStatus:"queued",retryCount:0,error:null,appendLog:{content:"Stage not done. Retrying in PROGRESS.",logType:"system"}};let s=n+1;return s<=i?{nextStage:e,nextStatus:"queued",retryCount:s,error:null,appendLog:{content:`Retrying (${s}/${i}) for stage ${e}.`,logType:"system"}}:{nextStage:e,nextStatus:"failed",retryCount:s,error:"Task failed.",appendLog:{content:"Task failed.",logType:"error"}}}async function i({workflowId:e,currentNodeName:r,decision:a,retryCount:n,maxRetries:i=3}){if("done"===String(r).trim().toLowerCase())return{nextNodeName:"done",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:"Task completed at done",logType:"checkpoint"},nodeConfig:null};let o=await (0,t.getWorkflowNodeByName)(e,r);if(!o)return{nextNodeName:r,nextStatus:"blocked",retryCount:n,error:`Node '${r}' not found in workflow`,appendLog:{content:`Workflow error: node '${r}' not found`,logType:"error"},nodeConfig:null};if("terminal"===o.node_type)return{nextNodeName:r,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${o.label||r}`,logType:"checkpoint"},nodeConfig:o};if("blocked"===a)return{nextNodeName:r,nextStatus:"blocked",retryCount:n,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:o};let s=await (0,t.getWorkflowTransitionsFromNode)(e,o.id),l=function(e){switch(e){case"done":default:return"done";case"blocked":return"blocked";case"failed":case"not_done":return"failed"}}(a),d=s.find(e=>e.condition===l);if(d){let n=(await (0,t.getWorkflowNodes)(e)).find(e=>e.id===d.to_node_id);if(n){let e="terminal"===n.node_type;return{nextNodeName:n.name,nextStatus:e?"completed":"queued",retryCount:0,error:null,appendLog:{content:"done"===a?`Stage completed: ${o.label||r}`:`Transition to ${n.label||n.name}`,logType:"done"===a?"checkpoint":"system"},nodeConfig:n}}}if("done"===a)return{nextNodeName:r,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${o.label||r}`,logType:"checkpoint"},nodeConfig:o};let u=n+1;return u<=i?{nextNodeName:r,nextStatus:"queued",retryCount:u,error:null,appendLog:{content:`Retrying (${u}/${i}) for ${o.label||r}`,logType:"system"},nodeConfig:o}:{nextNodeName:r,nextStatus:"failed",retryCount:u,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:o}}e.s(["getTicketType",()=>a,"resolveStageTransition",()=>n,"resolveWorkflowTransition",()=>i])},18825,e=>{"use strict";var t=e.i(57431);async function r(e){return(0,t.createAdminDbClient)()}e.s(["createDbServerClientWithRequest",()=>r])},95822,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),g=e.i(74838),m=e.i(10372),h=e.i(93695);e.i(52474);var E=e.i(220),_=e.i(94028),y=e.i(62294),x=e.i(18825),R=e.i(12616),S=e.i(4290),T=e.i(68638),w=e.i(49041);async function b(e){try{let t=w.LOCAL_USER.id,r=await (0,x.createDbServerClientWithRequest)(e),a=await e.json(),{taskId:n,log:i,comment:o,comments:s,final_result:l,decision:d,explanation:u}=a;if(!n)return _.NextResponse.json({error:"taskId is required"},{status:400});let c="string"==typeof a?.artifact_path?a.artifact_path.trim():"",p="string"==typeof a?.artifact_host?a.artifact_host.trim():"",f="string"==typeof a?.artifact_key?a.artifact_key.trim():"",{data:g,error:m}=await r.from("tasks").select("*").eq("id",n).eq("user_id",t).single();if(m||!g)return _.NextResponse.json({error:"Task not found"},{status:404});let{frontmatter:h,body:E}=(0,y.parseFrontmatter)(g.content),b=h.stage||"INTAKE";(0,S.getTicketType)(h,E);let k="string"==typeof l?l.trim():"",v="string"==typeof d?d.trim():"",A="string"==typeof u?u.trim():"",N=!k||!v||!A,C="Aggregator output unavailable; manual action required.",L=N?C:k,I=N?"blocked":v,O=N?C:A;if(!["done","blocked","not_done","failed"].includes(I))return _.NextResponse.json({error:"Invalid decision"},{status:400});let D=Array.isArray(s)?s.map(e=>String(e||"").trim()).filter(Boolean):[],q="string"==typeof o&&o.trim()?o:"string"==typeof i&&i.trim()?i:L,U=a?.run_entry||a?.runEntry;if(U&&"object"==typeof U){let e="string"==typeof U.run_id?U.run_id.trim():"";if(e){let t={run_id:e,stage:"string"==typeof U.stage&&U.stage.trim()?U.stage.trim():b,engine:"string"==typeof U.engine&&U.engine.trim()?U.engine.trim():"string"==typeof h?.engine&&String(h.engine).trim()?String(h.engine).trim():g.engine||"unknown",model:"string"==typeof U.model&&U.model.trim()?U.model.trim():void 0,status:"string"==typeof U.status&&U.status.trim()?U.status.trim():"unknown",created_at:"string"==typeof U.created_at&&U.created_at.trim()?U.created_at.trim():new Date().toISOString(),artifact_manifest:Array.isArray(U.artifact_manifest)?U.artifact_manifest:void 0,artifact_path:c||void 0,artifact_host:p||void 0,artifact_key:f||void 0};try{await (0,y.appendRunToIndex)(n,t)}catch(e){console.warn("Failed to append run_index entry:",e)}}}if("blocked"===I){let e={...h,stage:b,status:"blocked"},a=(0,R.buildMarkdownWithFrontmatter)(e,E),{error:i}=await r.from("tasks").update({content:a,stage:b,status:"blocked",...c?{artifact_path:c}:{},...p?{artifact_host:p}:{},...f?{artifact_key:f}:{},updated_at:new Date().toISOString()}).eq("id",n).eq("user_id",t);if(i)throw i}else if(c||p||f)try{let{error:e}=await r.from("tasks").update({...c?{artifact_path:c}:{},...p?{artifact_host:p}:{},...f?{artifact_key:f}:{},updated_at:new Date().toISOString()}).eq("id",n).eq("user_id",t);e&&e?.code!=="42703"&&console.warn("Failed to persist artifact pointer fields:",e)}catch(e){console.warn("Failed to persist artifact pointer fields:",e)}let j=await (0,T.getQueue)();return await j.send(T.QUEUE_NAMES.TASK_PROCESS,{taskId:n,userId:t,signal:"agentResult",payload:{decision:I,explanation:O,final_result:L,comments:D.length>0?D:void 0,comment:q}}),_.NextResponse.json({taskId:n,stage:b,decision:I,signaled:!0})}catch(e){return console.error("Error completing stage:",e),_.NextResponse.json({error:"Failed to complete stage"},{status:500})}}e.s(["POST",()=>b],21721);var k=e.i(21721);let v=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/queue/complete/route",pathname:"/api/queue/complete",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/queue/complete/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:A,workUnitAsyncStorage:N,serverHooks:C}=v;function L(){return(0,a.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:N})}async function I(e,t,a){v.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/queue/complete/route";_=_.replace(/\/index$/,"")||"/";let y=await v.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:x,params:R,nextConfig:S,parsedUrl:T,isDraftMode:w,prerenderManifest:b,routerServerContext:k,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:L,serverActionsManifest:I}=y,O=(0,s.normalizeAppPath)(_),D=!!(b.dynamicRoutes[O]||b.routes[C]),q=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,T,!1):t.end("This page could not be found"),null);if(D&&!w){let e=!!b.routes[C],t=b.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await q();throw new h.NoFallbackError}}let U=null;!D||v.isDev||w||(U="/index"===(U=C)?"/":U);let j=!0===v.isDev||!D,P=D&&!j;I&&L&&(0,o.setManifestsSingleton)({page:_,clientReferenceManifest:L,serverActionsManifest:I});let W=e.method||"GET",$=(0,i.getTracer)(),M=$.getActiveScopeSpan(),F={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:j,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>v.onRequestError(e,t,a,n,k)},sharedContext:{buildId:x}},G=new l.NodeNextRequest(e),H=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let o=async e=>v.handle(X,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.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=`${W} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${W} ${_}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var i,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&A&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=F.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(G,H,i,F.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:i.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:P,isOnDemandRevalidate:A})},!1,k),t}},u=await v.handleResponse({req:e,nextConfig:S,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!D)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",A?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&D||h.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(G,H,new Response(u.value.body,{headers:h,status:u.value.status||200})),null};M?await l(M):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${W} ${_}`,kind:i.SpanKind.SERVER,attributes:{"http.method":W,"http.target":e.url}},l))}catch(t){if(t instanceof h.NoFallbackError||await v.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:A})},!1,k),D)throw t;return await (0,p.sendResponse)(G,H,new Response(null,{status:500})),null}}e.s(["handler",()=>I,"patchFetch",()=>L,"routeModule",()=>v,"serverHooks",()=>C,"workAsyncStorage",()=>A,"workUnitAsyncStorage",()=>N],95822)}];
54
-
55
- //# sourceMappingURL=%5Broot-of-the-server%5D__20b3baea._.js.map
@@ -1,20 +0,0 @@
1
- module.exports=[24868,(e,t,s)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},50227,(e,t,s)=>{t.exports=e.x("node:path",()=>require("node:path"))},74533,(e,t,s)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},12057,(e,t,s)=>{t.exports=e.x("node:util",()=>require("node:util"))},36269,e=>{"use strict";var t=e.i(248);function s(e,t=Date.now()){let r=t=>({graph:e,tickFired:!1,resetNodeIds:[],skipReason:t});if(!e.schedule)return r("no_schedule");let o=e.schedule;if("active"!==o.state)return r("not_active");if(o.tickInProgress)return r("tick_in_progress");if(null!=o.maxRuns&&o.runCount>=o.maxRuns)return r("max_runs_reached");if(o.cronExpr&&"number"==typeof o.nextTickAt){if(t<o.nextTickAt)return r("not_due")}else if(t-(o.lastTickAt??0)<o.intervalMs)return r("not_due");let n=JSON.parse(JSON.stringify(e)),a=[];for(let e of o.resetNodeIds){let t=n.nodes[e];t&&("done"===t.status||"passed"===t.status||"failed"===t.status||"skipped"===t.status)&&(n.nodes[e]={...t,status:"pending",startedAt:void 0,completedAt:void 0,metrics:void 0,..."function"===t.type?{output:void 0}:{},..."conditional"===t.type?{evaluatedTo:void 0}:{}},a.push(e))}return n.schedule={...o,tickInProgress:!0,lastTickAt:t,runCount:o.runCount+1},{graph:n,tickFired:!0,resetNodeIds:a}}function r(e){if(!e.schedule||!e.schedule.tickInProgress)return e;let s=e.schedule,r=s.nextTickAt;return s.cronExpr&&(r=(0,t.computeNextTickFromCron)(s.cronExpr)),{...e,schedule:{...s,tickInProgress:!1,nextTickAt:r}}}function o(e){if(!e.schedule)return!0;let t=new Set(["done","passed","failed","skipped"]);for(let s of e.schedule.resetNodeIds){let r=e.nodes[s];if(r&&!t.has(r.status))return!1}return!0}function n(e,t=6e4,s){return{intervalMs:t,state:"active",resetNodeIds:e,maxRuns:s,runCount:0,tickInProgress:!1,createdAt:new Date().toISOString()}}e.s(["completeScheduleTick",()=>r,"createThreadMonitorSchedule",()=>n,"isScheduleTickComplete",()=>o,"scheduleTickIfDue",()=>s])},2157,(e,t,s)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},60526,(e,t,s)=>{t.exports=e.x("node:os",()=>require("node:os"))},71080,e=>{"use strict";var t=e.i(60447),s=e.i(36269),r=e.i(248),o=e.i(33601),n=e.i(97812);function a(){return(0,t.getSQLiteDb)().prepare(`
2
- SELECT task_id, id, schedule
3
- FROM execution_graphs
4
- WHERE schedule IS NOT NULL
5
- AND json_extract(schedule, '$.state') = 'active'
6
- `).all().map(e=>({taskId:e.task_id,graphId:e.id,schedule:JSON.parse(e.schedule)}))}async function i(e={}){let t=new n.GraphStore,l={tickedGraphIds:[],skippedGraphIds:[],errors:[],pendingWork:[]},u=a();for(let{taskId:n}of(console.log(`[schedules:poll] found ${u.length} active schedule(s)`),u))try{let a=t.getGraph(n);if(!a){l.errors.push({graphId:n,error:Error("Graph not found")});continue}let i=(0,s.scheduleTickIfDue)(a);if(!i.tickFired){console.log(`[schedules:poll] ${n} skipped (${i.skipReason??"unknown"})`),l.skippedGraphIds.push(n);continue}console.log(`[schedules:poll] ${n} tick fired — resetting nodes`),t.updateGraphStructure(i.graph.id,{nodes:i.graph.nodes,schedule:i.graph.schedule});let u=(0,r.schedulerTick)(i.graph,e);console.log(`[schedules:poll] ${n} scheduler: fn=${u.functionToRun.length} work=${u.workToRun.length}`);let d=u.graph;for(let t of u.functionToRun){let s=d.nodes[t];if(s&&"function"===s.type)try{console.log(`[schedules:poll] ${n} executing function node "${t}"`);let s=await (0,o.executeNode)(d,t,e),r=s.graph.nodes[t];console.log(`[schedules:poll] ${n} function "${t}" → ${r?.status}`,r&&"output"in r?JSON.stringify(r.output)?.slice(0,200):""),d=s.graph}catch(e){console.error(`[schedules:poll] ${n} function "${t}" error:`,e),l.errors.push({graphId:n,error:e instanceof Error?e:Error(String(e))})}}t.updateGraphStructure(d.id,{nodes:d.nodes});let c=(0,r.schedulerTick)(d,e);for(let t of(console.log(`[schedules:poll] ${n} post-fn scheduler: cond=${c.control.conditionalNodeIds.length} work=${c.workToRun.length}`),d=c.graph,c.workToRun)){let s=d.nodes[t];if(s&&"work"===s.type)try{d=(await (0,o.executeNode)(d,t,e)).graph}catch(e){l.errors.push({graphId:n,error:e instanceof Error?e:Error(String(e))})}}if(c.workToRun.length>0){l.pendingWork.push({taskId:n,nodeIds:c.workToRun,graph:d}),t.updateGraphStructure(d.id,{nodes:d.nodes});let s=(0,r.schedulerTick)(d,e);for(let t of(console.log(`[schedules:poll] ${n} post-work scheduler: fn=${s.functionToRun.length} cond=${s.control.conditionalNodeIds.length}`),d=s.graph,s.functionToRun)){let s=d.nodes[t];if(s&&"function"===s.type)try{console.log(`[schedules:poll] ${n} executing post-work function "${t}"`),d=(await (0,o.executeNode)(d,t,e)).graph}catch(e){console.error(`[schedules:poll] ${n} post-work function "${t}" error:`,e),l.errors.push({graphId:n,error:e instanceof Error?e:Error(String(e))})}}}t.updateGraphStructure(d.id,{nodes:d.nodes});let p=Object.entries(d.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:poll] ${n} node states: ${p}`);let h=(0,s.isScheduleTickComplete)(d);if(console.log(`[schedules:poll] ${n} tick complete? ${h}`),h){let e=(0,s.completeScheduleTick)(d),r=e.schedule?.resetNodeIds.some(t=>e.nodes[t]?.status==="failed");if(e.schedule){let t=e.schedule.consecutiveFailures??0,s=r?t+1:0;e.schedule={...e.schedule,consecutiveFailures:s};let o=e.schedule.maxConsecutiveFailures;null!=o&&s>=o&&(e.schedule={...e.schedule,state:"paused"})}let o=t.getGraph(n);o?.schedule?.state==="stopped"&&(console.log(`[schedules:poll] ${n} schedule was stopped mid-tick, preserving stopped state`),e.schedule={...e.schedule,state:"stopped"}),t.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule})}l.tickedGraphIds.push(n)}catch(e){console.error(`[schedules:poll] ${n} caught error:`,e),l.errors.push({graphId:n,error:e instanceof Error?e:Error(String(e))});try{let e=t.getGraph(n);if(e?.schedule?.tickInProgress){let r=(0,s.completeScheduleTick)(e);t.updateGraphStructure(r.id,{nodes:r.nodes,schedule:r.schedule}),console.log(`[schedules:poll] ${n} force-completed stuck tick`)}}catch{}}return l}async function l(e,t={}){let a=new n.GraphStore,i=a.getGraph(e);if(!i)return{fired:!1,graph:null,error:Error("Graph not found")};if(!i.schedule)return{fired:!1,graph:i,error:Error("No schedule on graph")};let u=(0,s.scheduleTickIfDue)(i);if(!u.tickFired)return{fired:!1,graph:u.graph};a.updateGraphStructure(u.graph.id,{nodes:u.graph.nodes,schedule:u.graph.schedule});let d=u.graph,c=0;for(;;){c++;let e=Object.entries(d.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:tick] loop ${c} nodes before: ${e}`);let n=(0,r.schedulerTick)(d,t);for(let e of(console.log(`[schedules:tick] loop ${c} fn=${n.functionToRun.length} work=${n.workToRun.length} cond=${n.control.conditionalNodeIds.length}`),n.functionToRun)){let s=d.nodes[e];s&&"function"===s.type&&(d=(await (0,o.executeNode)(d,e,t)).graph,console.log(`[schedules:tick] fn "${e}" → ${d.nodes[e]?.status}`))}for(let e of(n.control.conditionalNodeIds.length>0&&(d=n.graph,console.log(`[schedules:tick] applied conditional results: ${n.control.conditionalNodeIds.join(", ")}`)),n.workToRun))d=(await (0,o.executeNode)(d,e,t)).graph;let a=Object.entries(d.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");if(console.log(`[schedules:tick] loop ${c} nodes after: ${a}`),(0,s.isScheduleTickComplete)(d)){console.log(`[schedules:tick] tick complete after loop ${c}`);break}if(n.complete||!(n.workToRun.length>0||n.functionToRun.length>0))break}let p=(0,s.completeScheduleTick)(d);return a.updateGraphStructure(p.id,{nodes:p.nodes,schedule:p.schedule}),{fired:!0,graph:p}}e.s(["executeScheduleTick",()=>l,"getGraphsWithActiveSchedules",()=>a,"pollSchedules",()=>i])},26057,e=>{"use strict";var t=e.i(33405);function s(e,t){let s="string"==typeof e.args?.rootMessageId?e.args.rootMessageId.trim():"";return s||(t.schedule?.rootMessageId?.trim()??"")}async function r(t){try{let{getSQLiteDb:s}=await e.A(18801),r=s(),o=r.prepare("SELECT project_id FROM project_threads WHERE thread_id = ? ORDER BY created_at ASC LIMIT 1").get(t);if(!o?.project_id)return null;let n=r.prepare("SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC, created_at ASC LIMIT 1").get(o.project_id);return n?.agent_id??null}catch{return null}}async function o(t,r){let o=s(t,r);if(!o)return{status:"failure",message:"thread-status requires rootMessageId"};let{getMessageThread:n,getThreadStatusSnapshot:a,sweepStaleWorkingReactions:i}=await e.A(18760),l=await n(o);if(!l)return{status:"failure",message:`Thread not found for rootMessageId: ${o}`};await i(l.threadId);let u=await a({threadId:l.threadId,rootMessageId:o});return{status:"success",output:{activeProcessCount:u.processes.filter(e=>"working"===e.status).length,messageCount:u.messages?.length??0,threadId:l.threadId,lastUpdatedAt:u.lastUpdatedAt}}}async function n(t,o){let n=s(t,o);if(!n)return{status:"failure",message:"ship-mode-act requires rootMessageId"};let a=function(e,t){let s="string"==typeof e.args?.steerNodeId&&e.args.steerNodeId.trim()?e.args.steerNodeId.trim():"steer",r=t.nodes[s];if(!r||"work"!==r.type)return null;let o=r.output;return o&&"object"==typeof o?{isDone:!!o.isDone,message:"string"==typeof o.message?o.message:""}:null}(t,o);if(!a)return{status:"failure",message:"Unable to read steer node output"};let{getMessageThread:i,saveMessages:l,updateMessageStatus:u}=await e.A(18760),{deactivateSchedulesByRootMessageId:d}=await e.A(32025),c=await i(n);if(!c)return{status:"failure",message:`Thread not found for rootMessageId: ${n}`};if(a.isDone)return d(n),await u(c.threadId,n,"in-review",null),{status:"success",output:{done:!0,action:"stopped_and_in_review"}};let p=await r(c.threadId),h=crypto.randomUUID();return await l(c.threadId,[{id:h,role:"assistant",participantId:p,content:a.message,timestamp:Date.now(),rootMessageId:n,parentMessageId:n,depth:1}]),{status:"success",output:{done:!1,action:"sent_next_steps",sender:p,messageId:h}}}async function a(e,t){if("internal"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};switch(e.command){case"thread-status":return o(e,t);case"ship-mode-act":return n(e,t);default:return{status:"failure",message:`Unsupported internal function command: ${e.command}`}}}async function i(e,s){if("bash"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};let r=e.command;if(!r||""===r.trim())return{status:"failure",message:"Empty command"};let o=e.timeoutMs??3e4;return new Promise(e=>{let s="",n="",a=0,i=!1,l=!1,u=(0,t.spawn)(r,[],{shell:!0,timeout:o,killSignal:"SIGTERM"}),d=setTimeout(()=>{l=!0,u.kill("SIGTERM")},o);u.stdout.on("data",e=>{if(i)return;let t=Buffer.byteLength(e.toString(),"utf8");if(a+t>65536){i=!0;return}s+=e.toString(),a+=t}),u.stderr.on("data",e=>{n+=e.toString()}),u.on("error",t=>{clearTimeout(d),e({status:"failure",message:`Failed to spawn command: ${t.message}`,error:t})}),u.on("close",t=>{if(clearTimeout(d),l)return void e({status:"failure",message:`Command timed out after ${o}ms`});if(i)return void e({status:"failure",message:"Stdout exceeded 65536 bytes limit"});if(0!==t)return void e({status:"failure",message:`Command exited with code ${t}: ${n||"(no stderr)"}`});let r=s.trim();if(""===r)return void e({status:"success",output:{}});try{let t=JSON.parse(r);e({status:"success",output:t})}catch{e({status:"success",output:{raw:r}})}})})}function l(){return async(e,t)=>{switch(e.kind){case"bash":return i(e,t);case"internal":return a(e,t);default:return{status:"failure",message:`Unsupported function node kind: ${e.kind}`}}}}e.s(["createDispatchFunction",()=>l,"dispatchBashFunction",()=>i],26057)},97127,e=>{"use strict";var t=e.i(2157),s=e.i(50227),r=e.i(60526);let o=`You are a progress assessor. Review the conversation state below and determine:
7
- 1. Is the work DONE? (all objectives met, code written, tests passing)
8
- 2. If not done, what should the team do next?
9
-
10
- You MUST respond with ONLY a JSON object, no markdown fences, no extra text:
11
- {"isDone": true/false, "message": "your assessment"}
12
-
13
- If done, message should confirm what was accomplished.
14
- If not done, message must be exactly one message that combines:
15
- - a brief assessment of what is done vs. not done
16
- - the concrete next steps for the team
17
-
18
- Do not produce separate status and instruction messages.`;function n(){return async(n,a)=>{let i=a.schedule?.rootMessageId;if(!i)return{status:"failure",message:"No rootMessageId on graph schedule"};console.log(`[work-dispatch] Dispatching steer node "${n.title}" for graph ${a.id} (root: ${i})`);try{let{getMessageThread:n,getThreadStatusSnapshot:a,sweepStaleWorkingReactions:l}=await e.A(18760),u=await n(i);if(!u)return{status:"failure",message:`Thread not found for rootMessageId: ${i}`};await l(u.threadId);let d=await a({threadId:u.threadId,rootMessageId:i}),c=d.processes.filter(e=>"working"===e.status).length,p=(d.messages??[]).slice(-10).map(e=>{let t=e.participantId??e.role??"?",s=(e.content??"").slice(0,300);return`[${t}]: ${s}`}).join("\n");console.log(`[work-dispatch] Thread: active=${c}, msgs=${d.messages?.length??0}`);let h=["--- THREAD STATE ---",`Active agents: ${c}`,`Total messages: ${d.messages?.length??0}`,"\nRecent messages:",p,"--- END THREAD STATE ---\n\nAssess the progress and respond with the JSON object."].join("\n"),{runCliResponse:g}=await e.A(31259),f=function(e){switch(e){case"claude":case"gemini":case"ollama":case"codex":case"zai":return e;default:return"claude"}}(function(){try{let e=(0,s.join)((0,r.homedir)(),".agx","config.json");return JSON.parse((0,t.readFileSync)(e,"utf8")).defaultProvider??"claude"}catch{return"claude"}}());console.log(`[work-dispatch] Calling ${f} via runCliResponse (prompt length: ${h.length})...`);let m="";await g({provider:f,model:null,prompt:h,systemContext:o,onDelta:e=>{m+=e},onLog:(e,t)=>{console.log(`[work-dispatch] [${e}] ${t}`)}}),console.log(`[work-dispatch] Raw response: ${m.slice(0,500)}`);let k=function(e){let t=e.match(/\{[\s\S]*?"isDone"\s*:\s*(true|false)[\s\S]*?\}/);if(t)try{let e=JSON.parse(t[0]);return{isDone:!!e.isDone,message:String(e.message??"")}}catch{}return e.includes("[done]")?{isDone:!0,message:e}:{isDone:!1,message:e}}(m.trim());return console.log("[work-dispatch] Parsed result:",k),{status:"success",output:k}}catch(e){return console.error("[work-dispatch] Steer dispatch failed:",e),{status:"failure",message:e instanceof Error?e.message:String(e),error:e}}}}e.s(["createDispatchWork",()=>n])},30995,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),o=e.i(59756),n=e.i(61916),a=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),f=e.i(10372),m=e.i(93695);e.i(52474);var k=e.i(220),w=e.i(94028),I=e.i(71080),R=e.i(26057),v=e.i(97127);async function T(e){try{let t=await e.json().catch(()=>({})),s=(0,R.createDispatchFunction)(),r=(0,v.createDispatchWork)();if(t.taskId){let e=await (0,I.executeScheduleTick)(t.taskId,{dispatchFunction:s,dispatchWork:r});return w.NextResponse.json({success:e.fired,taskId:t.taskId,error:e.error?.message??null})}let o=await (0,I.pollSchedules)({dispatchFunction:s,dispatchWork:r});return w.NextResponse.json({success:!0,tickedGraphIds:o.tickedGraphIds,skippedGraphIds:o.skippedGraphIds,errorCount:o.errors.length,errors:o.errors.length>0?o.errors.map(e=>({graphId:e.graphId,message:e.error.message})):void 0})}catch(e){return console.error("Schedule poll error:",e),w.NextResponse.json({error:"Failed to poll schedules",message:e instanceof Error?e.message:String(e)},{status:500})}}async function S(){try{let{getGraphsWithActiveSchedules:t}=await e.A(84511),s=t();return w.NextResponse.json({count:s.length,schedules:s.map(e=>({taskId:e.taskId,graphId:e.graphId,state:e.schedule.state,intervalMs:e.schedule.intervalMs,runCount:e.schedule.runCount,lastTickAt:e.schedule.lastTickAt,tickInProgress:e.schedule.tickInProgress}))})}catch(e){return console.error("Failed to list schedules:",e),w.NextResponse.json({error:"Failed to list schedules"},{status:500})}}e.s(["GET",()=>S,"POST",()=>T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],16548);var $=e.i(16548);let x=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/schedules/poll/route",pathname:"/api/schedules/poll",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/schedules/poll/route.ts",nextConfigOutput:"standalone",userland:$}),{workAsyncStorage:E,workUnitAsyncStorage:y,serverHooks:N}=x;function C(){return(0,r.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:y})}async function A(e,t,r){x.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/schedules/poll/route";w=w.replace(/\/index$/,"")||"/";let I=await x.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,params:v,nextConfig:T,parsedUrl:S,isDraftMode:$,prerenderManifest:E,routerServerContext:y,isOnDemandRevalidate:N,revalidateOnlyGenerated:C,resolvedPathname:A,clientReferenceManifest:_,serverActionsManifest:b}=I,D=(0,i.normalizeAppPath)(w),O=!!(E.dynamicRoutes[D]||E.routes[A]),P=async()=>((null==y?void 0:y.render404)?await y.render404(e,t,S,!1):t.end("This page could not be found"),null);if(O&&!$){let e=!!E.routes[A],t=E.dynamicRoutes[D];if(t&&!1===t.fallback&&!e){if(T.experimental.adapterPath)return await P();throw new m.NoFallbackError}}let j=null;!O||x.isDev||$||(j="/index"===(j=A)?"/":j);let M=!0===x.isDev||!O,G=O&&!M;b&&_&&(0,a.setManifestsSingleton)({page:w,clientReferenceManifest:_,serverActionsManifest:b});let F=e.method||"GET",U=(0,n.getTracer)(),q=U.getActiveScopeSpan(),H={params:v,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:T.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,o)=>x.onRequestError(e,t,r,o,y)},sharedContext:{buildId:R}},L=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let a=async e=>x.handle(B,H).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=U.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${F} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${w}`)}),i=!!(0,o.getRequestMeta)(e,"minimalMode"),l=async o=>{var n,l;let u=async({previousCacheEntry:s})=>{try{if(!i&&N&&C&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await a(o);e.fetchMetrics=H.renderOpts.fetchMetrics;let l=H.renderOpts.pendingWaitUntil;l&&r.waitUntil&&(r.waitUntil(l),l=void 0);let u=H.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(L,W,n,H.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&H.renderOpts.collectedRevalidate,r=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:H.renderOpts.collectedExpire;return{value:{kind:k.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await x.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:N})},!1,y),t}},d=await x.handleResponse({req:e,nextConfig:T,cacheKey:j,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:C,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:i});if(!O)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==k.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),$&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&O||m.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,g.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(L,W,new Response(d.value.body,{headers:m,status:d.value.status||200})),null};q?await l(q):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${F} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await x.onRequestError(e,t,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:G,isOnDemandRevalidate:N})},!1,y),O)throw t;return await (0,p.sendResponse)(L,W,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>C,"routeModule",()=>x,"serverHooks",()=>N,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>y],30995)},82848,e=>{e.v(e=>Promise.resolve().then(()=>e(74533)))},97757,e=>{e.v(e=>Promise.resolve().then(()=>e(26057)))},18801,e=>{e.v(e=>Promise.resolve().then(()=>e(60447)))},18760,e=>{e.v(t=>Promise.all(["server/chunks/lib_history-store_ts_2e721df2._.js"].map(t=>e.l(t))).then(()=>t(42639)))},32025,e=>{e.v(e=>Promise.resolve().then(()=>e(97812)))},31259,e=>{e.v(t=>Promise.all(["server/chunks/lib_cli-runner_ts_dfcf3fda._.js"].map(t=>e.l(t))).then(()=>t(14350)))},84511,e=>{e.v(e=>Promise.resolve().then(()=>e(71080)))}];
19
-
20
- //# sourceMappingURL=%5Broot-of-the-server%5D__254e942f._.js.map
@@ -1,52 +0,0 @@
1
- module.exports=[85148,(e,t,r)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},28237,e=>{"use strict";var t=e.i(22734),r=e.i(46786),a=e.i(14747);let s="3.35.0",i=["json1"],n=["fts5"],o=["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 p=[],c=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}(c.v,s)&&p.push({kind:"version_mismatch",message:`SQLite version ${c.v} is below minimum ${s}`,found:c.v,required:`>= ${s}`,fix:"darwin"===r.default.platform()?"TURBOPACK unreachable":"apt-get install -y libsqlite3-dev && npm rebuild better-sqlite3"}),i))l(u,e)||p.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 n)l(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let f=function(s){"linux"!==r.default.platform()&&r.default.platform();try{let i=a.default.resolve(s),{execSync:n}=e.r(33405);if("darwin"===r.default.platform());else{let e=t.default.readFileSync("/proc/mounts","utf-8"),r="",a="unknown";for(let t of e.split("\n")){let[,e,s]=t.split(/\s+/);e&&i.startsWith(e)&&e.length>r.length&&(r=e,a=s||"unknown")}return a}}catch{}return null}(d);f&&o.some(e=>f.toLowerCase().includes(e))&&p.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{u.pragma("journal_mode = wal"),u.pragma("foreign_keys = 1"),u.pragma("busy_timeout = 5000"),u.pragma("synchronous = 1"),u.pragma("cache_size = -64000");let e=u.pragma("journal_mode",{simple:!0}).toLowerCase(),t=new Set(["wal","delete"]);if(!t.has(e)){u.pragma("journal_mode = DELETE");let e=u.pragma("journal_mode",{simple:!0}).toLowerCase();t.has(e)?(u.pragma("synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):p.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){p.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 p}e.s(["validateSQLiteEnvironment",()=>u])},40793,e=>{"use strict";var t=e.i(85148),r=e.i(66680);let a={randomUUID:r.randomUUID},s=new Uint8Array(256),i=s.length,n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));let o=function(e,t,o){if(a.randomUUID&&!t&&!e)return a.randomUUID();var l=e,u=o;let d=(l=l||{}).random??l.rng?.()??(i>s.length-16&&((0,r.randomFillSync)(s),i=0),s.slice(i,i+=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 l=e.i(14747),u=e.i(22734),d=e.i(46786),p=e.i(28237);process.env.AGX_MAX_WORKERS;class c{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}}}let f=process.env.AGX_DATA_DIR||l.default.join(d.default.homedir(),".agx");class h{db;workers=new Map;pollingInterval=null;writeRateInterval=null;writeMonitor=new c;workerId;constructor(e){this.workerId=o();const r=e||process.env.SQLITE_QUEUE_PATH||l.default.join(f,"agx-queue.db"),a=l.default.dirname(r);u.default.existsSync(a)||u.default.mkdirSync(a,{recursive:!0}),this.db=new t.default(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
- CREATE TABLE IF NOT EXISTS agx_jobs (
3
- id TEXT PRIMARY KEY,
4
- queue TEXT NOT NULL,
5
- data TEXT NOT NULL,
6
- status TEXT NOT NULL CHECK(status IN ('pending', 'active', 'completed', 'failed', 'retry')),
7
- created_at INTEGER NOT NULL,
8
- start_after INTEGER NOT NULL DEFAULT 0,
9
- started_at INTEGER,
10
- completed_at INTEGER,
11
- failed_at INTEGER,
12
- worker_id TEXT,
13
- retry_count INTEGER DEFAULT 0,
14
- retry_limit INTEGER DEFAULT 0,
15
- priority INTEGER DEFAULT 0,
16
- error TEXT
17
- );
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(this.db.pragma("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=o(),s=Date.now(),i=r?.startAfter?r.startAfter instanceof Date?r.startAfter.getTime():r.startAfter:s;return this.db.prepare(`
20
- INSERT INTO agx_jobs (
21
- id, queue, data, status, created_at, start_after, retry_limit, priority
22
- ) VALUES (?, ?, ?, 'pending', ?, ?, ?, ?)
23
- `).run(a,e,JSON.stringify(t),s,i,r?.retryLimit??3,r?.priority??0),this.writeMonitor.record(),a}async work(e,t,r){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 r=t.options.batchSize||1,a=Date.now(),s=this.db.transaction(()=>{let t=this.db.prepare(`
24
- SELECT id, data FROM agx_jobs
25
- WHERE queue = ?
26
- AND (status = 'pending' OR status = 'retry')
27
- AND start_after <= ?
28
- ORDER BY priority DESC, created_at ASC
29
- LIMIT ?
30
- `).all(e,a,r);if(0===t.length)return[];let s=t.map(e=>e.id),i=this.db.prepare(`
31
- UPDATE agx_jobs
32
- SET status = 'active', started_at = ?, worker_id = ?
33
- WHERE id = ?
34
- `);for(let e of s)i.run(a,this.workerId,e);return t.map(t=>({id:t.id,name:e,data:JSON.parse(t.data)}))})();s.length>0&&this.executeJobs(s,t.handler)}async executeJobs(e,t){try{await t(e),this.completeJobs(e.map(e=>e.id))}catch(t){this.failJobs(e.map(e=>e.id),t.message||String(t))}}completeJobs(e){let t=Date.now(),r=this.db.prepare(`
35
- UPDATE agx_jobs
36
- SET status = 'completed', completed_at = ?
37
- WHERE id = ?
38
- `);this.db.transaction(()=>{for(let a of e)r.run(t,a)})()}failJobs(e,t){let r=Date.now(),a=this.db.prepare(`
39
- SELECT id, retry_count, retry_limit FROM agx_jobs WHERE id = ?
40
- `),s=this.db.prepare(`
41
- UPDATE agx_jobs
42
- SET status = 'retry', retry_count = retry_count + 1,
43
- start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
44
- error = ?
45
- WHERE id = ?
46
- `),i=this.db.prepare(`
47
- UPDATE agx_jobs
48
- SET status = 'failed', failed_at = ?, error = ?
49
- WHERE id = ?
50
- `);this.db.transaction(()=>{for(let n of e){let e=a.get(n);if(e&&e.retry_count<e.retry_limit){let a=(e.retry_count+1)*2e3;s.run(r+a,t,n)}else i.run(r,t,n)}})()}}let E=null;async function m(){return E||(E=new h,await E.start()),E}async function g(){E&&(await E.stop(),E=null)}e.s(["QUEUE_NAMES",0,{TASK_PROCESS:"agx.task.process",CHAT_RUN_PROCESS:"agx.chat.process",TASK_CLEANUP:"agx.task.cleanup"},"getQueue",()=>m,"stopQueue",()=>g],40793)}];
51
-
52
- //# sourceMappingURL=%5Broot-of-the-server%5D__3198c5c8._.js.map
@@ -1,67 +0,0 @@
1
- module.exports=[85148,(e,t,r)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},54799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},28237,e=>{"use strict";var t=e.i(22734),r=e.i(46786),s=e.i(14747);let i="3.35.0",a=["json1"],n=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function o(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),s=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(s[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:"darwin"===r.default.platform()?"TURBOPACK unreachable":"apt-get install -y libsqlite3-dev && npm rebuild better-sqlite3"}),a))o(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 n)o(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let f=function(i){"linux"!==r.default.platform()&&r.default.platform();try{let a=s.default.resolve(i),{execSync:n}=e.r(33405);if("darwin"===r.default.platform());else{let e=t.default.readFileSync("/proc/mounts","utf-8"),r="",s="unknown";for(let t of e.split("\n")){let[,e,i]=t.split(/\s+/);e&&a.startsWith(e)&&e.length>r.length&&(r=e,s=i||"unknown")}return s}}catch{}return null}(d);f&&l.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{u.pragma("journal_mode = wal"),u.pragma("foreign_keys = 1"),u.pragma("busy_timeout = 5000"),u.pragma("synchronous = 1"),u.pragma("cache_size = -64000");let e=u.pragma("journal_mode",{simple:!0}).toLowerCase(),t=new Set(["wal","delete"]);if(!t.has(e)){u.pragma("journal_mode = DELETE");let e=u.pragma("journal_mode",{simple:!0}).toLowerCase();t.has(e)?(u.pragma("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.i(85148),r=e.i(66680);let s={randomUUID:r.randomUUID},i=new Uint8Array(256),a=i.length,n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));let l=function(e,t,l){if(s.randomUUID&&!t&&!e)return s.randomUUID();var o=e,u=l;let d=(o=o||{}).random??o.rng?.()??(a>i.length-16&&((0,r.randomFillSync)(i),a=0),i.slice(a,a+=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 o=e.i(14747),u=e.i(22734),d=e.i(46786),c=e.i(28237);process.env.AGX_MAX_WORKERS;class p{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,s=r>=40;return s&&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:s}}}let f=process.env.AGX_DATA_DIR||o.default.join(d.default.homedir(),".agx");class h{db;workers=new Map;pollingInterval=null;writeRateInterval=null;writeMonitor=new p;workerId;constructor(e){this.workerId=l();const r=e||process.env.SQLITE_QUEUE_PATH||o.default.join(f,"agx-queue.db"),s=o.default.dirname(r);u.default.existsSync(s)||u.default.mkdirSync(s,{recursive:!0}),this.db=new t.default(r);const i=(0,c.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(`
2
- CREATE TABLE IF NOT EXISTS agx_jobs (
3
- id TEXT PRIMARY KEY,
4
- queue TEXT NOT NULL,
5
- data TEXT NOT NULL,
6
- status TEXT NOT NULL CHECK(status IN ('pending', 'active', 'completed', 'failed', 'retry')),
7
- created_at INTEGER NOT NULL,
8
- start_after INTEGER NOT NULL DEFAULT 0,
9
- started_at INTEGER,
10
- completed_at INTEGER,
11
- failed_at INTEGER,
12
- worker_id TEXT,
13
- retry_count INTEGER DEFAULT 0,
14
- retry_limit INTEGER DEFAULT 0,
15
- priority INTEGER DEFAULT 0,
16
- error TEXT
17
- );
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(this.db.pragma("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 s=l(),i=Date.now(),a=r?.startAfter?r.startAfter instanceof Date?r.startAfter.getTime():r.startAfter:i;return this.db.prepare(`
20
- INSERT INTO agx_jobs (
21
- id, queue, data, status, created_at, start_after, retry_limit, priority
22
- ) VALUES (?, ?, ?, 'pending', ?, ?, ?, ?)
23
- `).run(s,e,JSON.stringify(t),i,a,r?.retryLimit??3,r?.priority??0),this.writeMonitor.record(),s}async work(e,t,r){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 r=t.options.batchSize||1,s=Date.now(),i=this.db.transaction(()=>{let t=this.db.prepare(`
24
- SELECT id, data FROM agx_jobs
25
- WHERE queue = ?
26
- AND (status = 'pending' OR status = 'retry')
27
- AND start_after <= ?
28
- ORDER BY priority DESC, created_at ASC
29
- LIMIT ?
30
- `).all(e,s,r);if(0===t.length)return[];let i=t.map(e=>e.id),a=this.db.prepare(`
31
- UPDATE agx_jobs
32
- SET status = 'active', started_at = ?, worker_id = ?
33
- WHERE id = ?
34
- `);for(let e of i)a.run(s,this.workerId,e);return t.map(t=>({id:t.id,name:e,data:JSON.parse(t.data)}))})();i.length>0&&this.executeJobs(i,t.handler)}async executeJobs(e,t){try{await t(e),this.completeJobs(e.map(e=>e.id))}catch(t){this.failJobs(e.map(e=>e.id),t.message||String(t))}}completeJobs(e){let t=Date.now(),r=this.db.prepare(`
35
- UPDATE agx_jobs
36
- SET status = 'completed', completed_at = ?
37
- WHERE id = ?
38
- `);this.db.transaction(()=>{for(let s of e)r.run(t,s)})()}failJobs(e,t){let r=Date.now(),s=this.db.prepare(`
39
- SELECT id, retry_count, retry_limit FROM agx_jobs WHERE id = ?
40
- `),i=this.db.prepare(`
41
- UPDATE agx_jobs
42
- SET status = 'retry', retry_count = retry_count + 1,
43
- start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
44
- error = ?
45
- WHERE id = ?
46
- `),a=this.db.prepare(`
47
- UPDATE agx_jobs
48
- SET status = 'failed', failed_at = ?, error = ?
49
- WHERE id = ?
50
- `);this.db.transaction(()=>{for(let n of e){let e=s.get(n);if(e&&e.retry_count<e.retry_limit){let s=(e.retry_count+1)*2e3;i.run(r+s,t,n)}else a.run(r,t,n)}})()}}let m=null;async function g(){return m||(m=new h,await m.start()),m}async function E(){m&&(await m.stop(),m=null)}e.s(["QUEUE_NAMES",0,{TASK_PROCESS:"agx.task.process",CHAT_RUN_PROCESS:"agx.chat.process",TASK_CLEANUP:"agx.task.cleanup"},"getQueue",()=>g,"stopQueue",()=>E],40793)},90107,e=>{"use strict";var t=e.i(33405);let r=e=>"string"==typeof e&&e.trim().length>0,s=e=>({push:e,flush:()=>{}}),i=e=>{let t="",s=0,i=!1,a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);i=!0;let n=(e=>{if(!e||"object"!=typeof e)return"";if("assistant"===e.type)return(Array.isArray(e?.message?.content)?e.message.content:[]).flatMap(e=>e?.type==="text"&&r(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&r(t?.delta?.text)?t.delta.text:""})(t);if(!n||t?.type==="assistant"&&s>0)return;s+=n.length,e(n)}catch{i||e(`${t}
51
- `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},a=e=>{let t="",s=!1,i="",a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);s=!0,t?.type==="message"&&t?.role==="assistant"&&r(t?.content)&&((t,r)=>{if(t){if(r){if(i&&t.startsWith(i)){let r=t.slice(i.length);r&&e(r),i=t;return}e(t),i+=t;return}if(i&&t.startsWith(i)){let r=t.slice(i.length);r&&e(r),i=t;return}i||(e(t),i=t)}})(t.content,t?.delta===!0)}catch{s||e(`${t}
52
- `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},n=e=>{let t="",s=!1,i=new Set,a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);if(s=!0,t?.type==="item.completed"&&r(t?.item?.id)){if(i.has(t.item.id))return;i.add(t.item.id)}let n=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&r(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&r(t.delta?.text)?t.delta.text:"":"";n&&e(n)}catch{s||e(`${t}
53
- `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},l=e=>{let t="",r=!1,s=[/^Thinking\.\.\./,/^<think>/i],i=[/\.\.\.done thinking\.?\s*/,/<\/think>/i];return{push:a=>{t+=a,(()=>{for(;t.length>0;){if(r){let e=-1,s=0;for(let r of i){let i=t.match(r);i&&void 0!==i.index&&(i.index,i[0].length,(-1===e||i.index<e)&&(e=i.index,s=i[0].length))}if(-1!==e){t=t.slice(e+s),r=!1,t=t.replace(/^\s*\n*/,"");continue}return}for(let i of s){let s=t.match(i);if(s&&void 0!==s.index){let i=t.slice(0,s.index);i&&e.push(i),t=t.slice(s.index+s[0].length),r=!0;break}}if(r)continue;let a=Math.max(0,t.length-30);a>0&&(e.push(t.slice(0,a)),t=t.slice(a));return}})()},flush:()=>{!r&&t&&e.push(t),t="",e.flush()}}};async function o({command:e,args:r,timeoutMs:s,signal:i,onDelta:a,onLog:n,onSpawn:l,env:o}){await new Promise((u,d)=>{n&&n("stderr",`$ ${e} ${r.map(e=>e.length>80?e.slice(0,80)+"…":e).join(" ")}
54
- `);let c=(0,t.spawn)(e,r,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0,...o}}),p=!1,f="",h=!1,m=e=>{p||(p=!0,clearTimeout(E),i&&i.removeEventListener("abort",g),e?d(e):u())},g=()=>{c.kill("SIGTERM"),m(Error("Chat request aborted."))};i&&i.addEventListener("abort",g,{once:!0}),l&&c.pid&&l(c.pid);let E=setTimeout(()=>{h=!0,c.kill("SIGKILL"),m(Error(`CLI request timed out after ${s}ms.`))},s);c.stdout.on("data",e=>{let t=e.toString();f+=t,a(t),n&&n("stdout",t)}),c.stderr.on("data",e=>{let t=e.toString();f+=t,n&&n("stderr",t)}),c.on("error",e=>m(e)),c.on("close",(e,t)=>{if(!p&&!h){if(0===e)return void m();m(Error(`CLI command failed (exit=${e??"unknown"} signal=${t??"none"}).${f.trim()?` ${f.trim()}`:""}`))}})})}async function u({provider:e,model:r,prompt:u,identity:d,self:c,skills:p,systemContext:f,signal:h,onDelta:m,onLog:g,onSpawn:E}){let _,y,b,x,T=(_=!1,y=!1,b="",x=/^(?:```|~~~|#{1,6}\s|>\s|[-*+]\s|\d+\.\s)/,e=>{let t=e.replace(/\u001B\[[0-9;]*[A-Za-z]/g,"").replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n");if(!t.trim())return t.includes("\n")&&!_?(_=!0,"\n"):"";let r=_?t.replace(/^\n+/,"\n"):t,s=r.trimStart(),i=x.test(s),a=y&&i&&!_,n=y&&!_&&!a&&!/^\s/.test(r)&&/[.!?)]/.test(b)&&/^[A-Z0-9`(]/.test(r),l=a?`
55
-
56
- ${r}`:n?`
57
- ${r}`:r;_=l.endsWith("\n"),y=y||l.trim().length>0;let o=l.replace(/\s+$/g,"");return o.length>0&&(b=o[o.length-1]??b),l}),S=e=>{let t=T(e);t&&m(t)},L=[],v=[];f&&v.push(f),d&&v.push(`<identity>
58
- ${d}
59
- </identity>`),c&&v.push(`<self>
60
- ${c}
61
- </self>`),p&&v.push(`<skills>
62
- ${p}
63
- </skills>`);let w=v.length>0?v.join("\n\n"):void 0;if((e=>{try{return 0===(0,t.spawnSync)("bash",["-lc","command -v agx >/dev/null 2>&1"],{encoding:"utf8"}).status}catch{return!1}})(0)){let t=w?`${w}
64
-
65
- ${u}`:u;L.push(function({provider:e,model:t,prompt:r}){let s=[e,"-y","--print","--prompt",r];return t&&s.push("--model",t),{command:"agx",args:s,parser:"raw"}}({provider:e,model:r,prompt:t}))}if(0===L.length)throw Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let I=null;for(let e of L){let t="claude-stream-json"===e.parser?i(S):"codex-json"===e.parser?n(S):"gemini-stream-json"===e.parser?a(S):s(S),r=e.filterThoughts?l(t):t;try{await o({command:e.command,args:e.args,timeoutMs:6e5,signal:h,onDelta:r.push,onLog:g,onSpawn:E,env:e.env}),r.flush();return}catch(e){I=e instanceof Error?e:Error(String(e))}}throw I||Error("CLI execution failed.")}e.s(["runCliResponse",()=>u],90107)}];
66
-
67
- //# sourceMappingURL=%5Broot-of-the-server%5D__36d9edbd._.js.map
@@ -1,8 +0,0 @@
1
- module.exports=[24868,(e,t,s)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},36269,e=>{"use strict";var t=e.i(248);function s(e,t=Date.now()){let r=t=>({graph:e,tickFired:!1,resetNodeIds:[],skipReason:t});if(!e.schedule)return r("no_schedule");let n=e.schedule;if("active"!==n.state)return r("not_active");if(n.tickInProgress)return r("tick_in_progress");if(null!=n.maxRuns&&n.runCount>=n.maxRuns)return r("max_runs_reached");if(n.cronExpr&&"number"==typeof n.nextTickAt){if(t<n.nextTickAt)return r("not_due")}else if(t-(n.lastTickAt??0)<n.intervalMs)return r("not_due");let a=JSON.parse(JSON.stringify(e)),o=[];for(let e of n.resetNodeIds){let t=a.nodes[e];t&&("done"===t.status||"passed"===t.status||"failed"===t.status||"skipped"===t.status)&&(a.nodes[e]={...t,status:"pending",startedAt:void 0,completedAt:void 0,metrics:void 0,..."function"===t.type?{output:void 0}:{},..."conditional"===t.type?{evaluatedTo:void 0}:{}},o.push(e))}return a.schedule={...n,tickInProgress:!0,lastTickAt:t,runCount:n.runCount+1},{graph:a,tickFired:!0,resetNodeIds:o}}function r(e){if(!e.schedule||!e.schedule.tickInProgress)return e;let s=e.schedule,r=s.nextTickAt;return s.cronExpr&&(r=(0,t.computeNextTickFromCron)(s.cronExpr)),{...e,schedule:{...s,tickInProgress:!1,nextTickAt:r}}}function n(e){if(!e.schedule)return!0;let t=new Set(["done","passed","failed","skipped"]);for(let s of e.schedule.resetNodeIds){let r=e.nodes[s];if(r&&!t.has(r.status))return!1}return!0}function a(e,t=6e4,s){return{intervalMs:t,state:"active",resetNodeIds:e,maxRuns:s,runCount:0,tickInProgress:!1,createdAt:new Date().toISOString()}}e.s(["completeScheduleTick",()=>r,"createThreadMonitorSchedule",()=>a,"isScheduleTickComplete",()=>n,"scheduleTickIfDue",()=>s])},71850,e=>{"use strict";var t=e.i(47909),s=e.i(74017),r=e.i(96250),n=e.i(59756),a=e.i(61916),o=e.i(74677),i=e.i(69741),d=e.i(16795),l=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),h=e.i(70101),g=e.i(74838),f=e.i(10372),m=e.i(93695);e.i(52474);var v=e.i(220),R=e.i(94028),I=e.i(69719),x=e.i(97812),y=e.i(248),k=e.i(36269);let w=I.z.object({action:I.z.literal("activate"),rootMessageId:I.z.string().trim().min(1),intervalMs:I.z.number().int().positive().optional()}),A=I.z.object({action:I.z.literal("stop"),rootMessageId:I.z.string().trim().min(1)}),C=I.z.discriminatedUnion("action",[w,A]),E=`Review the conversation so far and produce exactly one message that does both of these things together:
2
- 1. Briefly assess what has been accomplished and what remains.
3
- 2. Give the team the concrete next steps needed to move toward shipping.
4
-
5
- Do not split status and instructions into separate responses. Keep it to one concise message.
6
- If everything is done, say exactly "[done]" so the system knows to stop.`;async function N(t){try{var s;let r,n=await t.json().catch(()=>({})),a=C.safeParse(n);if(!a.success)return R.NextResponse.json({error:"Invalid request",issues:a.error.issues},{status:400});let o=a.data;if("stop"===o.action){let e=(0,x.deactivateSchedulesByRootMessageId)(o.rootMessageId);return R.NextResponse.json({success:!0,deactivated:e})}let i=o.intervalMs??15e3,d=(0,x.getActiveScheduleForRootMessageId)(o.rootMessageId);if(d){let e=(0,x.getGraph)(d.taskId);return R.NextResponse.json({success:!0,alreadyActive:!0,taskId:d.taskId,graphId:d.graphId,schedule:e?.schedule??null})}let l=(0,x.getGraph)(o.rootMessageId);if(l){let t=(0,y.activateGraphSchedule)(l,{intervalMs:i,resetNodeIds:l.schedule?.resetNodeIds??["pull-status","idle-check"],rootMessageId:o.rootMessageId,nowIso:new Date().toISOString()}),{updateGraphStructure:s}=await e.A(32025);s(t.id,{mode:t.mode,nodes:t.nodes,edges:t.edges,policy:t.policy,doneCriteria:t.doneCriteria,schedule:t.schedule},l.graphVersion);let r=(0,x.getGraph)(o.rootMessageId);return R.NextResponse.json({success:!0,reactivated:!0,taskId:o.rootMessageId,graphId:r?.id??t.id,schedule:r?.schedule??t.schedule})}let u=(s=o.rootMessageId,r=new Date().toISOString(),{id:`sched-${s}`,taskId:s,graphVersion:1,mode:"SIMPLE",nodes:{"pull-status":{type:"function",status:"pending",deps:[],kind:"internal",title:"Pull thread status",command:"thread-status",args:{rootMessageId:s}},"idle-check":{type:"conditional",status:"pending",deps:["pull-status"],condition:{expression:"input.activeProcessCount === 0",inputFrom:"pull-status"},thenBranch:["steer"],elseBranch:[]},steer:{type:"work",status:"pending",deps:["idle-check"],title:"Steer toward completion",description:E,attempts:0,maxAttempts:2,retryPolicy:{backoffMs:5e3,onExhaust:"fail"}},act:{type:"function",status:"pending",deps:["steer"],kind:"internal",title:"Act on steer result",command:"ship-mode-act",args:{rootMessageId:s,steerNodeId:"steer"},timeoutMs:3e5}},edges:[{from:"pull-status",to:"idle-check",type:"hard"},{from:"idle-check",to:"steer",type:"hard"},{from:"steer",to:"act",type:"hard",condition:"always"}],policy:{replanBudgetRemaining:0,replanBudgetInitial:0,verifyBudgetRemaining:0,verifyBudgetInitial:0,maxConcurrentAutoChecks:0,immutableRequiredGates:!1,maxConcurrent:1,priorityMode:"fifo",nodeTimeoutMs:3e5,graphTimeoutMs:0},doneCriteria:{allRequiredGatesPassed:!0,noRunnableOrPendingWork:!0},schedule:{...(0,k.createThreadMonitorSchedule)(["pull-status","idle-check","steer","act"],i),rootMessageId:s},versionHistory:[],createdAt:r,updatedAt:r});return(0,x.createGraph)(u,{skipTaskBinding:!0}),R.NextResponse.json({success:!0,created:!0,taskId:u.taskId,graphId:u.id,schedule:u.schedule})}catch(e){return console.error("Schedule API error:",e),R.NextResponse.json({error:"Failed to manage schedule",message:e instanceof Error?e.message:String(e)},{status:500})}}async function S(e){let t=e.nextUrl.searchParams.get("rootMessageId");if(!t){let e=(0,x.getActiveScheduleRootMessageIds)();return R.NextResponse.json({activeRootMessageIds:e})}let s=(0,x.getActiveScheduleForRootMessageId)(t);if(!s)return R.NextResponse.json({active:!1});let r=(0,x.getGraph)(s.taskId);return R.NextResponse.json({active:!0,taskId:s.taskId,graphId:s.graphId,schedule:r?.schedule??null})}e.s(["GET",()=>S,"POST",()=>N,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],15635);var T=e.i(15635);let M=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/schedules/route",pathname:"/api/schedules",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/schedules/route.ts",nextConfigOutput:"standalone",userland:T}),{workAsyncStorage:P,workUnitAsyncStorage:b,serverHooks:O}=M;function _(){return(0,r.patchFetch)({workAsyncStorage:P,workUnitAsyncStorage:b})}async function j(e,t,r){M.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/schedules/route";R=R.replace(/\/index$/,"")||"/";let I=await M.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:x,params:y,nextConfig:k,parsedUrl:w,isDraftMode:A,prerenderManifest:C,routerServerContext:E,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,resolvedPathname:T,clientReferenceManifest:P,serverActionsManifest:b}=I,O=(0,i.normalizeAppPath)(R),_=!!(C.dynamicRoutes[O]||C.routes[T]),j=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,w,!1):t.end("This page could not be found"),null);if(_&&!A){let e=!!C.routes[T],t=C.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(k.experimental.adapterPath)return await j();throw new m.NoFallbackError}}let D=null;!_||M.isDev||A||(D="/index"===(D=T)?"/":D);let q=!0===M.isDev||!_,H=_&&!q;b&&P&&(0,o.setManifestsSingleton)({page:R,clientReferenceManifest:P,serverActionsManifest:b});let U=e.method||"GET",F=(0,a.getTracer)(),B=F.getActiveScopeSpan(),G={params:y,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!k.experimental.authInterrupts},cacheComponents:!!k.cacheComponents,supportsDynamicResponse:q,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:k.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,r,n)=>M.onRequestError(e,t,r,n,E)},sharedContext:{buildId:x}},$=new d.NodeNextRequest(e),z=new d.NodeNextResponse(t),K=l.NextRequestAdapter.fromNodeNextRequest($,(0,l.signalFromNodeResponse)(t));try{let o=async e=>M.handle(K,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=F.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=s.get("next.route");if(r){let t=`${U} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${R}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),d=async n=>{var a,d;let l=async({previousCacheEntry:s})=>{try{if(!i&&N&&S&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let d=G.renderOpts.pendingWaitUntil;d&&r.waitUntil&&(r.waitUntil(d),d=void 0);let l=G.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)($,z,a,G.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:r}}}}catch(t){throw(null==s?void 0:s.isStale)&&await M.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,E),t}},u=await M.handleResponse({req:e,nextConfig:k,cacheKey:D,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:i});if(!_)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==v.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});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&_||m.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)($,z,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};B?await d(B):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${R}`,kind:a.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},d))}catch(t){if(t instanceof m.NoFallbackError||await M.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,E),_)throw t;return await (0,p.sendResponse)($,z,new Response(null,{status:500})),null}}e.s(["handler",()=>j,"patchFetch",()=>_,"routeModule",()=>M,"serverHooks",()=>O,"workAsyncStorage",()=>P,"workUnitAsyncStorage",()=>b],71850)},32025,e=>{e.v(e=>Promise.resolve().then(()=>e(97812)))}];
7
-
8
- //# sourceMappingURL=%5Broot-of-the-server%5D__4761dc17._.js.map
@@ -1,52 +0,0 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},85148,(e,t,r)=>{t.exports=e.x("better-sqlite3-90e2652d1716b047",()=>require("better-sqlite3-90e2652d1716b047"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},49041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},21729,e=>{"use strict";var t=e.i(22734),r=e.i(46786),a=e.i(14747);let s="3.35.0",n=["json1"],i=["fts5"],o=["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 d(d,u){let p=[],c=d.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}(c.v,s)&&p.push({kind:"version_mismatch",message:`SQLite version ${c.v} is below minimum ${s}`,found:c.v,required:`>= ${s}`,fix:"darwin"===r.default.platform()?"TURBOPACK unreachable":"apt-get install -y libsqlite3-dev && npm rebuild better-sqlite3"}),n))l(d,e)||p.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 i)l(d,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let E=function(s){"linux"!==r.default.platform()&&r.default.platform();try{let n=a.default.resolve(s),{execSync:i}=e.r(33405);if("darwin"===r.default.platform());else{let e=t.default.readFileSync("/proc/mounts","utf-8"),r="",a="unknown";for(let t of e.split("\n")){let[,e,s]=t.split(/\s+/);e&&n.startsWith(e)&&e.length>r.length&&(r=e,a=s||"unknown")}return a}}catch{}return null}(u);E&&o.some(e=>E.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${u}' is on a network filesystem (${E})`,path:u,found:E,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{d.pragma("journal_mode = wal"),d.pragma("foreign_keys = 1"),d.pragma("busy_timeout = 5000"),d.pragma("synchronous = 1"),d.pragma("cache_size = -64000");let e=d.pragma("journal_mode",{simple:!0}).toLowerCase(),t=new Set(["wal","delete"]);if(!t.has(e)){d.pragma("journal_mode = DELETE");let e=d.pragma("journal_mode",{simple:!0}).toLowerCase();t.has(e)?(d.pragma("synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):p.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){p.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 p}e.s(["validateSQLiteEnvironment",()=>d])},57431,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(60447);return t()}e.i(49041),e.s(["createAdminDbClient",()=>t])},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},14499,e=>{"use strict";let t=Number(process.env.AGX_MAX_WORKERS)||10;function r(e){if(e>t)throw Error(`[limits] Requested ${e} workers exceeds MAX_WORKERS (${t}). See docs/LIMITS.md — exceeding this limit risks SQLITE_BUSY errors. Set AGX_MAX_WORKERS to override (requires architecture review).`);if(e<1)throw Error(`[limits] Worker count must be at least 1, got ${e}.`)}class a{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}}}e.s(["MAX_WORKERS",0,t,"WRITE_QPS_CEILING",0,50,"WRITE_RATE_SAMPLE_WINDOW_MS",0,1e4,"WriteRateMonitor",()=>a,"assertWorkerCount",()=>r])},68638,e=>{"use strict";var t=e.i(85148),r=e.i(66680);let a={randomUUID:r.randomUUID},s=new Uint8Array(256),n=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let o=function(e,t,o){if(a.randomUUID&&!t&&!e)return a.randomUUID();var l=e,d=o;let u=(l=l||{}).random??l.rng?.()??(n>s.length-16&&((0,r.randomFillSync)(s),n=0),s.slice(n,n+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((d=d||0)<0||d+16>t.length)throw RangeError(`UUID byte range ${d}:${d+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[d+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)};var l=e.i(14747),d=e.i(22734),u=e.i(46786),p=e.i(21729),c=e.i(14499);let E=process.env.AGX_DATA_DIR||l.default.join(u.default.homedir(),".agx");class f{db;workers=new Map;pollingInterval=null;writeRateInterval=null;writeMonitor=new c.WriteRateMonitor;workerId;constructor(e){this.workerId=o();const r=e||process.env.SQLITE_QUEUE_PATH||l.default.join(E,"agx-queue.db"),a=l.default.dirname(r);d.default.existsSync(a)||d.default.mkdirSync(a,{recursive:!0}),this.db=new t.default(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
- CREATE TABLE IF NOT EXISTS agx_jobs (
3
- id TEXT PRIMARY KEY,
4
- queue TEXT NOT NULL,
5
- data TEXT NOT NULL,
6
- status TEXT NOT NULL CHECK(status IN ('pending', 'active', 'completed', 'failed', 'retry')),
7
- created_at INTEGER NOT NULL,
8
- start_after INTEGER NOT NULL DEFAULT 0,
9
- started_at INTEGER,
10
- completed_at INTEGER,
11
- failed_at INTEGER,
12
- worker_id TEXT,
13
- retry_count INTEGER DEFAULT 0,
14
- retry_limit INTEGER DEFAULT 0,
15
- priority INTEGER DEFAULT 0,
16
- error TEXT
17
- );
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(this.db.pragma("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=o(),s=Date.now(),n=r?.startAfter?r.startAfter instanceof Date?r.startAfter.getTime():r.startAfter:s;return this.db.prepare(`
20
- INSERT INTO agx_jobs (
21
- id, queue, data, status, created_at, start_after, retry_limit, priority
22
- ) VALUES (?, ?, ?, 'pending', ?, ?, ?, ?)
23
- `).run(a,e,JSON.stringify(t),s,n,r?.retryLimit??3,r?.priority??0),this.writeMonitor.record(),a}async work(e,t,r){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(),c.WRITE_RATE_SAMPLE_WINDOW_MS))}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 r=t.options.batchSize||1,a=Date.now(),s=this.db.transaction(()=>{let t=this.db.prepare(`
24
- SELECT id, data FROM agx_jobs
25
- WHERE queue = ?
26
- AND (status = 'pending' OR status = 'retry')
27
- AND start_after <= ?
28
- ORDER BY priority DESC, created_at ASC
29
- LIMIT ?
30
- `).all(e,a,r);if(0===t.length)return[];let s=t.map(e=>e.id),n=this.db.prepare(`
31
- UPDATE agx_jobs
32
- SET status = 'active', started_at = ?, worker_id = ?
33
- WHERE id = ?
34
- `);for(let e of s)n.run(a,this.workerId,e);return t.map(t=>({id:t.id,name:e,data:JSON.parse(t.data)}))})();s.length>0&&this.executeJobs(s,t.handler)}async executeJobs(e,t){try{await t(e),this.completeJobs(e.map(e=>e.id))}catch(t){this.failJobs(e.map(e=>e.id),t.message||String(t))}}completeJobs(e){let t=Date.now(),r=this.db.prepare(`
35
- UPDATE agx_jobs
36
- SET status = 'completed', completed_at = ?
37
- WHERE id = ?
38
- `);this.db.transaction(()=>{for(let a of e)r.run(t,a)})()}failJobs(e,t){let r=Date.now(),a=this.db.prepare(`
39
- SELECT id, retry_count, retry_limit FROM agx_jobs WHERE id = ?
40
- `),s=this.db.prepare(`
41
- UPDATE agx_jobs
42
- SET status = 'retry', retry_count = retry_count + 1,
43
- start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
44
- error = ?
45
- WHERE id = ?
46
- `),n=this.db.prepare(`
47
- UPDATE agx_jobs
48
- SET status = 'failed', failed_at = ?, error = ?
49
- WHERE id = ?
50
- `);this.db.transaction(()=>{for(let i of e){let e=a.get(i);if(e&&e.retry_count<e.retry_limit){let a=(e.retry_count+1)*2e3;s.run(r+a,t,i)}else n.run(r,t,i)}})()}}let h=null;async function m(){return h||(h=new f,await h.start()),h}e.s(["QUEUE_NAMES",0,{TASK_PROCESS:"agx.task.process",CHAT_RUN_PROCESS:"agx.chat.process",TASK_CLEANUP:"agx.task.cleanup"},"getQueue",()=>m],68638)},42899,e=>{"use strict";var t=e.i(49041);async function r(e){return{ok:!0,userId:t.LOCAL_USER.id}}e.s(["requireUserId",()=>r])},60245,e=>{"use strict";var t=e.i(57431);async function r(e){let r=(0,t.createAdminDbClient)();await r.from("workflow_events").insert({task_id:e.taskId,user_id:e.userId,event_type:e.eventType,payload:e.payload||{},job_id:e.jobId||null,created_at:new Date().toISOString()})}e.s(["appendWorkflowEvent",()=>r])},24022,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),n=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),E=e.i(70101),f=e.i(74838),h=e.i(10372),m=e.i(93695);e.i(52474);var g=e.i(220),_=e.i(94028),R=e.i(57431),S=e.i(68638),x=e.i(60245),T=e.i(42899);async function w(e,{params:t}){try{let r=await (0,T.requireUserId)(e),{taskId:a}=await t,s=await e.json().catch(()=>({})),n=String(s?.signal||""),i=s?.payload||{};if(!n)return _.NextResponse.json({error:"signal is required"},{status:400});let o=await (0,S.getQueue)(),l=null;if("stop"===n){let e="string"==typeof i.reason?i.reason:"Stopped from CLI";l=await o.send(S.QUEUE_NAMES.TASK_PROCESS,{taskId:a,userId:r.userId,signal:"cancel",payload:{reason:e}})}else if("nudge"===n){let e="string"==typeof i.message&&i.message.trim()?i.message.trim():"Nudge from CLI";l=await o.send(S.QUEUE_NAMES.TASK_PROCESS,{taskId:a,userId:r.userId,signal:"humanInput",payload:{content:e,authorType:"user"}})}else if("agentResult"===n){let e="string"==typeof i.decision?i.decision.trim():"",t="string"==typeof i.explanation?i.explanation.trim():"",s="string"==typeof i.final_result?i.final_result.trim():"";if(!["done","blocked","not_done","failed"].includes(e)||!t||!s)return _.NextResponse.json({error:"Invalid agentResult payload"},{status:400});let n=Array.isArray(i.comments)?i.comments.map(e=>String(e||"").trim()).filter(Boolean):void 0,d="string"==typeof i.comment?i.comment.trim():"",u="string"==typeof i.log?i.log.trim():"";l=await o.send(S.QUEUE_NAMES.TASK_PROCESS,{taskId:a,userId:r.userId,signal:"agentResult",payload:{decision:e,explanation:t,final_result:s,comments:n,comment:d||u||s,log:u||void 0}})}else if("humanInput"===n)l=await o.send(S.QUEUE_NAMES.TASK_PROCESS,{taskId:a,userId:r.userId,signal:"humanInput",payload:i});else if("daemonStep"===n)l=await o.send(S.QUEUE_NAMES.TASK_PROCESS,{taskId:a,userId:r.userId,signal:"daemonStep",payload:i});else{if("cancel"!==n)return _.NextResponse.json({error:`Unsupported signal: ${n}`},{status:400});l=await o.send(S.QUEUE_NAMES.TASK_PROCESS,{taskId:a,userId:r.userId,signal:"cancel",payload:i})}let d=(0,R.createAdminDbClient)();return await d.from("tasks").update({updated_at:new Date().toISOString()}).eq("id",a).eq("user_id",r.userId),await (0,x.appendWorkflowEvent)({taskId:a,userId:r.userId,eventType:`signal.${n}`,payload:{signal:n},jobId:l||void 0}),_.NextResponse.json({ok:!0,jobId:l})}catch(e){return console.error("Failed to signal task:",e),_.NextResponse.json({error:"Failed to signal task"},{status:500})}}e.s(["POST",()=>w],31584);var I=e.i(31584);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/orchestrator/tasks/[taskId]/signal/route",pathname:"/api/orchestrator/tasks/[taskId]/signal",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/orchestrator/tasks/[taskId]/signal/route.ts",nextConfigOutput:"standalone",userland:I}),{workAsyncStorage:y,workUnitAsyncStorage:v,serverHooks:b}=A;function N(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:v})}async function C(e,t,a){A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/orchestrator/tasks/[taskId]/signal/route";_=_.replace(/\/index$/,"")||"/";let R=await A.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:S,params:x,nextConfig:T,parsedUrl:w,isDraftMode:I,prerenderManifest:y,routerServerContext:v,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:L,serverActionsManifest:U}=R,k=(0,o.normalizeAppPath)(_),O=!!(y.dynamicRoutes[k]||y.routes[C]),D=async()=>((null==v?void 0:v.render404)?await v.render404(e,t,w,!1):t.end("This page could not be found"),null);if(O&&!I){let e=!!y.routes[C],t=y.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(T.experimental.adapterPath)return await D();throw new m.NoFallbackError}}let j=null;!O||A.isDev||I||(j="/index"===(j=C)?"/":j);let P=!0===A.isDev||!O,q=O&&!P;U&&L&&(0,i.setManifestsSingleton)({page:_,clientReferenceManifest:L,serverActionsManifest:U});let M=e.method||"GET",W=(0,n.getTracer)(),$=W.getActiveScopeSpan(),F={params:x,prerenderManifest:y,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:P,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:T.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>A.onRequestError(e,t,a,s,v)},sharedContext:{buildId:S}},H=new l.NodeNextRequest(e),Q=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(H,(0,d.signalFromNodeResponse)(t));try{let i=async e=>A.handle(X,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.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=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${_}`)}),o=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var n,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&b&&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(s);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=F.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(H,Q,n,F.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,E.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[h.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:g.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,p.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:b})},!1,v),t}},u=await A.handleResponse({req:e,nextConfig:T,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:o});if(!O)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",b?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,E.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&O||m.delete(h.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,f.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(H,Q,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};$?await l($):await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${_}`,kind:n.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:b})},!1,v),O)throw t;return await (0,c.sendResponse)(H,Q,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>N,"routeModule",()=>A,"serverHooks",()=>b,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>v],24022)}];
51
-
52
- //# sourceMappingURL=%5Broot-of-the-server%5D__4b1a512c._.js.map
@@ -1,18 +0,0 @@
1
- module.exports=[33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},90107,e=>{"use strict";var t=e.i(33405);let r=e=>"string"==typeof e&&e.trim().length>0,n=e=>({push:e,flush:()=>{}}),i=e=>{let t="",n=0,i=!1,s=t=>{let s=t.trim();if(s)try{let t=JSON.parse(s);i=!0;let l=(e=>{if(!e||"object"!=typeof e)return"";if("assistant"===e.type)return(Array.isArray(e?.message?.content)?e.message.content:[]).flatMap(e=>e?.type==="text"&&r(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&r(t?.delta?.text)?t.delta.text:""})(t);if(!l||t?.type==="assistant"&&n>0)return;n+=l.length,e(l)}catch{i||e(`${t}
2
- `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;s(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&s(t),t=""}}},s=e=>{let t="",n=!1,i="",s=t=>{let s=t.trim();if(s)try{let t=JSON.parse(s);n=!0,t?.type==="message"&&t?.role==="assistant"&&r(t?.content)&&((t,r)=>{if(t){if(r){if(i&&t.startsWith(i)){let r=t.slice(i.length);r&&e(r),i=t;return}e(t),i+=t;return}if(i&&t.startsWith(i)){let r=t.slice(i.length);r&&e(r),i=t;return}i||(e(t),i=t)}})(t.content,t?.delta===!0)}catch{n||e(`${t}
3
- `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;s(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&s(t),t=""}}},l=e=>{let t="",n=!1,i=new Set,s=t=>{let s=t.trim();if(s)try{let t=JSON.parse(s);if(n=!0,t?.type==="item.completed"&&r(t?.item?.id)){if(i.has(t.item.id))return;i.add(t.item.id)}let l=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&r(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&r(t.delta?.text)?t.delta.text:"":"";l&&e(l)}catch{n||e(`${t}
4
- `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;s(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&s(t),t=""}}},a=e=>{let t="",r=!1,n=[/^Thinking\.\.\./,/^<think>/i],i=[/\.\.\.done thinking\.?\s*/,/<\/think>/i];return{push:s=>{t+=s,(()=>{for(;t.length>0;){if(r){let e=-1,n=0;for(let r of i){let i=t.match(r);i&&void 0!==i.index&&(i.index,i[0].length,(-1===e||i.index<e)&&(e=i.index,n=i[0].length))}if(-1!==e){t=t.slice(e+n),r=!1,t=t.replace(/^\s*\n*/,"");continue}return}for(let i of n){let n=t.match(i);if(n&&void 0!==n.index){let i=t.slice(0,n.index);i&&e.push(i),t=t.slice(n.index+n[0].length),r=!0;break}}if(r)continue;let s=Math.max(0,t.length-30);s>0&&(e.push(t.slice(0,s)),t=t.slice(s));return}})()},flush:()=>{!r&&t&&e.push(t),t="",e.flush()}}};async function o({command:e,args:r,timeoutMs:n,signal:i,onDelta:s,onLog:l,onSpawn:a,env:o}){await new Promise((c,u)=>{l&&l("stderr",`$ ${e} ${r.map(e=>e.length>80?e.slice(0,80)+"…":e).join(" ")}
5
- `);let p=(0,t.spawn)(e,r,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0,...o}}),d=!1,h="",f=!1,m=e=>{d||(d=!0,clearTimeout(x),i&&i.removeEventListener("abort",g),e?u(e):c())},g=()=>{p.kill("SIGTERM"),m(Error("Chat request aborted."))};i&&i.addEventListener("abort",g,{once:!0}),a&&p.pid&&a(p.pid);let x=setTimeout(()=>{f=!0,p.kill("SIGKILL"),m(Error(`CLI request timed out after ${n}ms.`))},n);p.stdout.on("data",e=>{let t=e.toString();h+=t,s(t),l&&l("stdout",t)}),p.stderr.on("data",e=>{let t=e.toString();h+=t,l&&l("stderr",t)}),p.on("error",e=>m(e)),p.on("close",(e,t)=>{if(!d&&!f){if(0===e)return void m();m(Error(`CLI command failed (exit=${e??"unknown"} signal=${t??"none"}).${h.trim()?` ${h.trim()}`:""}`))}})})}async function c({provider:e,model:r,prompt:c,identity:u,self:p,skills:d,systemContext:h,signal:f,onDelta:m,onLog:g,onSpawn:x}){let y,v,$,k,b=(y=!1,v=!1,$="",k=/^(?:```|~~~|#{1,6}\s|>\s|[-*+]\s|\d+\.\s)/,e=>{let t=e.replace(/\u001B\[[0-9;]*[A-Za-z]/g,"").replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n");if(!t.trim())return t.includes("\n")&&!y?(y=!0,"\n"):"";let r=y?t.replace(/^\n+/,"\n"):t,n=r.trimStart(),i=k.test(n),s=v&&i&&!y,l=v&&!y&&!s&&!/^\s/.test(r)&&/[.!?)]/.test($)&&/^[A-Z0-9`(]/.test(r),a=s?`
6
-
7
- ${r}`:l?`
8
- ${r}`:r;y=a.endsWith("\n"),v=v||a.trim().length>0;let o=a.replace(/\s+$/g,"");return o.length>0&&($=o[o.length-1]??$),a}),E=e=>{let t=b(e);t&&m(t)},S=[],w=[];h&&w.push(h),u&&w.push(`<identity>
9
- ${u}
10
- </identity>`),p&&w.push(`<self>
11
- ${p}
12
- </self>`),d&&w.push(`<skills>
13
- ${d}
14
- </skills>`);let L=w.length>0?w.join("\n\n"):void 0;if((e=>{try{return 0===(0,t.spawnSync)("bash",["-lc","command -v agx >/dev/null 2>&1"],{encoding:"utf8"}).status}catch{return!1}})(0)){let t=L?`${L}
15
-
16
- ${c}`:c;S.push(function({provider:e,model:t,prompt:r}){let n=[e,"-y","--print","--prompt",r];return t&&n.push("--model",t),{command:"agx",args:n,parser:"raw"}}({provider:e,model:r,prompt:t}))}if(0===S.length)throw Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let C=null;for(let e of S){let t="claude-stream-json"===e.parser?i(E):"codex-json"===e.parser?l(E):"gemini-stream-json"===e.parser?s(E):n(E),r=e.filterThoughts?a(t):t;try{await o({command:e.command,args:e.args,timeoutMs:6e5,signal:f,onDelta:r.push,onLog:g,onSpawn:x,env:e.env}),r.flush();return}catch(e){C=e instanceof Error?e:Error(String(e))}}throw C||Error("CLI execution failed.")}e.s(["runCliResponse",()=>c],90107)}];
17
-
18
- //# sourceMappingURL=%5Broot-of-the-server%5D__4dc25d71._.js.map
@@ -1,52 +0,0 @@
1
- module.exports=[66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},14499,e=>{"use strict";let t=Number(process.env.AGX_MAX_WORKERS)||10;function r(e){if(e>t)throw Error(`[limits] Requested ${e} workers exceeds MAX_WORKERS (${t}). See docs/LIMITS.md — exceeding this limit risks SQLITE_BUSY errors. Set AGX_MAX_WORKERS to override (requires architecture review).`);if(e<1)throw Error(`[limits] Worker count must be at least 1, got ${e}.`)}class n{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,n=r>=40;return n&&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:n}}}e.s(["MAX_WORKERS",0,t,"WRITE_QPS_CEILING",0,50,"WRITE_RATE_SAMPLE_WINDOW_MS",0,1e4,"WriteRateMonitor",()=>n,"assertWorkerCount",()=>r])},68638,e=>{"use strict";var t=e.i(85148),r=e.i(66680);let n={randomUUID:r.randomUUID},a=new Uint8Array(256),i=a.length,o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let s=function(e,t,s){if(n.randomUUID&&!t&&!e)return n.randomUUID();var l=e,d=s;let u=(l=l||{}).random??l.rng?.()??(i>a.length-16&&((0,r.randomFillSync)(a),i=0),a.slice(i,i+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((d=d||0)<0||d+16>t.length)throw RangeError(`UUID byte range ${d}:${d+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[d+e]=u[e];return t}return function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(u)};var l=e.i(14747),d=e.i(22734),u=e.i(46786),c=e.i(21729),p=e.i(14499);let f=process.env.AGX_DATA_DIR||l.default.join(u.default.homedir(),".agx");class g{db;workers=new Map;pollingInterval=null;writeRateInterval=null;writeMonitor=new p.WriteRateMonitor;workerId;constructor(e){this.workerId=s();const r=e||process.env.SQLITE_QUEUE_PATH||l.default.join(f,"agx-queue.db"),n=l.default.dirname(r);d.default.existsSync(n)||d.default.mkdirSync(n,{recursive:!0}),this.db=new t.default(r);const a=(0,c.validateSQLiteEnvironment)(this.db,r);if(a.length>0){const e=a.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
- CREATE TABLE IF NOT EXISTS agx_jobs (
3
- id TEXT PRIMARY KEY,
4
- queue TEXT NOT NULL,
5
- data TEXT NOT NULL,
6
- status TEXT NOT NULL CHECK(status IN ('pending', 'active', 'completed', 'failed', 'retry')),
7
- created_at INTEGER NOT NULL,
8
- start_after INTEGER NOT NULL DEFAULT 0,
9
- started_at INTEGER,
10
- completed_at INTEGER,
11
- failed_at INTEGER,
12
- worker_id TEXT,
13
- retry_count INTEGER DEFAULT 0,
14
- retry_limit INTEGER DEFAULT 0,
15
- priority INTEGER DEFAULT 0,
16
- error TEXT
17
- );
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(this.db.pragma("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 n=s(),a=Date.now(),i=r?.startAfter?r.startAfter instanceof Date?r.startAfter.getTime():r.startAfter:a;return this.db.prepare(`
20
- INSERT INTO agx_jobs (
21
- id, queue, data, status, created_at, start_after, retry_limit, priority
22
- ) VALUES (?, ?, ?, 'pending', ?, ?, ?, ?)
23
- `).run(n,e,JSON.stringify(t),a,i,r?.retryLimit??3,r?.priority??0),this.writeMonitor.record(),n}async work(e,t,r){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(),p.WRITE_RATE_SAMPLE_WINDOW_MS))}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 r=t.options.batchSize||1,n=Date.now(),a=this.db.transaction(()=>{let t=this.db.prepare(`
24
- SELECT id, data FROM agx_jobs
25
- WHERE queue = ?
26
- AND (status = 'pending' OR status = 'retry')
27
- AND start_after <= ?
28
- ORDER BY priority DESC, created_at ASC
29
- LIMIT ?
30
- `).all(e,n,r);if(0===t.length)return[];let a=t.map(e=>e.id),i=this.db.prepare(`
31
- UPDATE agx_jobs
32
- SET status = 'active', started_at = ?, worker_id = ?
33
- WHERE id = ?
34
- `);for(let e of a)i.run(n,this.workerId,e);return t.map(t=>({id:t.id,name:e,data:JSON.parse(t.data)}))})();a.length>0&&this.executeJobs(a,t.handler)}async executeJobs(e,t){try{await t(e),this.completeJobs(e.map(e=>e.id))}catch(t){this.failJobs(e.map(e=>e.id),t.message||String(t))}}completeJobs(e){let t=Date.now(),r=this.db.prepare(`
35
- UPDATE agx_jobs
36
- SET status = 'completed', completed_at = ?
37
- WHERE id = ?
38
- `);this.db.transaction(()=>{for(let n of e)r.run(t,n)})()}failJobs(e,t){let r=Date.now(),n=this.db.prepare(`
39
- SELECT id, retry_count, retry_limit FROM agx_jobs WHERE id = ?
40
- `),a=this.db.prepare(`
41
- UPDATE agx_jobs
42
- SET status = 'retry', retry_count = retry_count + 1,
43
- start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
44
- error = ?
45
- WHERE id = ?
46
- `),i=this.db.prepare(`
47
- UPDATE agx_jobs
48
- SET status = 'failed', failed_at = ?, error = ?
49
- WHERE id = ?
50
- `);this.db.transaction(()=>{for(let o of e){let e=n.get(o);if(e&&e.retry_count<e.retry_limit){let n=(e.retry_count+1)*2e3;a.run(r+n,t,o)}else i.run(r,t,o)}})()}}let m=null;async function E(){return m||(m=new g,await m.start()),m}e.s(["QUEUE_NAMES",0,{TASK_PROCESS:"agx.task.process",CHAT_RUN_PROCESS:"agx.chat.process",TASK_CLEANUP:"agx.task.cleanup"},"getQueue",()=>E],68638)},4290,e=>{"use strict";var t=e.i(62294);let r=[["INTAKE","PROGRESS","DONE"]];function n(e,t){for(let t of["ticket_type","type","issue_type","kind"])if("spike"===function(e){if("string"!=typeof e)return"task";let t=e.trim().toLowerCase();return"spike"===t||"spikes"===t?"spike":"task"}(e[t]))return"spike";let r=t.match(/^#\s+(.+)$/m),n=r?.[1]?.trim().toLowerCase()||"";return n.startsWith("spike:")||n.startsWith("[spike]")?"spike":"task"}function a({currentStage:e,decision:t,ticketType:n,retryCount:a,maxRetries:i=3}){let o=function(e,t){if("spike"===t)return"INTAKE"===e?"PROGRESS":"DONE"===e?null:"DONE";for(let t of r){let r=t.indexOf(e);if(-1!==r){if(r>=t.length-1)return null;return t[r+1]}}return null}(e,n);if("done"===t)return o?{nextStage:o,nextStatus:"queued",retryCount:0,error:null,appendLog:{content:`Stage completed: ${e}`,logType:"checkpoint"}}:{nextStage:"DONE",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at stage ${e}.`,logType:"checkpoint"}};if("blocked"===t)return{nextStage:e,nextStatus:"blocked",retryCount:a,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"}};if("PROGRESS"===e)return{nextStage:"PROGRESS",nextStatus:"queued",retryCount:0,error:null,appendLog:{content:"Stage not done. Retrying in PROGRESS.",logType:"system"}};let s=a+1;return s<=i?{nextStage:e,nextStatus:"queued",retryCount:s,error:null,appendLog:{content:`Retrying (${s}/${i}) for stage ${e}.`,logType:"system"}}:{nextStage:e,nextStatus:"failed",retryCount:s,error:"Task failed.",appendLog:{content:"Task failed.",logType:"error"}}}async function i({workflowId:e,currentNodeName:r,decision:n,retryCount:a,maxRetries:i=3}){if("done"===String(r).trim().toLowerCase())return{nextNodeName:"done",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:"Task completed at done",logType:"checkpoint"},nodeConfig:null};let o=await (0,t.getWorkflowNodeByName)(e,r);if(!o)return{nextNodeName:r,nextStatus:"blocked",retryCount:a,error:`Node '${r}' not found in workflow`,appendLog:{content:`Workflow error: node '${r}' not found`,logType:"error"},nodeConfig:null};if("terminal"===o.node_type)return{nextNodeName:r,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${o.label||r}`,logType:"checkpoint"},nodeConfig:o};if("blocked"===n)return{nextNodeName:r,nextStatus:"blocked",retryCount:a,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:o};let s=await (0,t.getWorkflowTransitionsFromNode)(e,o.id),l=function(e){switch(e){case"done":default:return"done";case"blocked":return"blocked";case"failed":case"not_done":return"failed"}}(n),d=s.find(e=>e.condition===l);if(d){let a=(await (0,t.getWorkflowNodes)(e)).find(e=>e.id===d.to_node_id);if(a){let e="terminal"===a.node_type;return{nextNodeName:a.name,nextStatus:e?"completed":"queued",retryCount:0,error:null,appendLog:{content:"done"===n?`Stage completed: ${o.label||r}`:`Transition to ${a.label||a.name}`,logType:"done"===n?"checkpoint":"system"},nodeConfig:a}}}if("done"===n)return{nextNodeName:r,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${o.label||r}`,logType:"checkpoint"},nodeConfig:o};let u=a+1;return u<=i?{nextNodeName:r,nextStatus:"queued",retryCount:u,error:null,appendLog:{content:`Retrying (${u}/${i}) for ${o.label||r}`,logType:"system"},nodeConfig:o}:{nextNodeName:r,nextStatus:"failed",retryCount:u,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:o}}e.s(["getTicketType",()=>n,"resolveStageTransition",()=>a,"resolveWorkflowTransition",()=>i])},91595,e=>{"use strict";var t=e.i(68638),r=e.i(4290),n=e.i(57431),a=e.i(49041),i=e.i(62294),o=e.i(90081);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 l(e){if(!e)return[];let t=s(e.depends_on);if(t.length)return t;if("string"==typeof e.content){let{frontmatter:t}=(0,i.parseFrontmatter)(e.content||"");return s(t.depends_on)}return[]}function d(e,t){return e?{id:e.id||t||"",title:e.title||void 0,slug:e.slug||void 0,status:e.status,stage:e.stage}:{id:t||""}}async function u(e,t){if(!e.length)return[];let r=(0,n.createAdminDbClient)().from("tasks").select("id, title, slug, status, stage").in("id",e);t&&(r=r.eq("user_id",t));let{data:a}=await r,i=new Map;if(Array.isArray(a))for(let e of a)e&&e.id&&i.set(e.id,d(e,e.id));return e.map(e=>i.get(e)).filter(e=>!!e)}async function c(e,t){let r=(0,n.createAdminDbClient)(),a=[],{data:i,error:o}=await r.from("tasks").select("depends_on, content").eq("id",e).maybeSingle();if(o){if("42703"===o.code){let{data:t}=await r.from("tasks").select("content").eq("id",e).maybeSingle();a=l(t)}}else a=l(i);let s=await u(a,t),c=r.from("tasks").select("id, title, slug, status, stage").contains("depends_on",[e]);t&&(c=c.eq("user_id",t));let{data:p,error:f}=await c,g=Array.isArray(p)?p.map(e=>d(e,e?.id)):[];if(f&&"42703"===f.code){let n=r.from("tasks").select("id, title, slug, status, stage, content");t&&(n=n.eq("user_id",t));let{data:a}=await n;g=(Array.isArray(a)?a:[]).filter(t=>l(t).includes(e)).map(e=>d(e,e?.id))}return{depends_on_tasks:s,dependent_tasks:g}}async function p(e,t){let r=l(e);return r.length?(await u(r,t)).filter(e=>"completed"!==(e.status||"")):[]}async function f(e,s,l){let d=s||a.LOCAL_USER.id,u=await o.db.getTask(e,d);if(!u)throw Error(`Task not found: ${e}`);let c=await p(u,d);if(c.length){let t=function(e){if(!e.length)return"";let t=e.slice(0,3).map(e=>{let t=e.title||e.slug||e.id||"(unknown)",r="INTAKE"===e.stage?"awaiting approval":e.status||"",n=r?` (${r})`:"";return`${t}${n}`}),r=`Waiting on dependencies: ${t.join(", ")}`;return e.length>3&&(r+=` +${e.length-3} more`),r}(c),r=(0,n.createAdminDbClient)(),{error:a}=await r.from("tasks").update({status:"blocked",blocked_reason:t,updated_at:new Date().toISOString()}).eq("id",e);if(a&&"42703"!==a.code)throw a;return{started:!1,missingDependencies:c,blockedReason:t}}if(!l?.force&&"queued"===u.status&&!u.blocked_reason)return{started:!1,missingDependencies:[],alreadyQueued:!0};let{frontmatter:f,body:g}=(0,i.parseFrontmatter)(u.content||""),m=l?.ticketType??(0,r.getTicketType)(f,g),E=await (0,t.getQueue)(),T=await E.send(t.QUEUE_NAMES.TASK_PROCESS,{taskId:e,userId:d,signal:"start",ticketType:m}),y=(0,n.createAdminDbClient)(),{error:S}=await y.from("tasks").update({status:"queued",blocked_reason:null,updated_at:new Date().toISOString()}).eq("id",e);if(S&&"42703"!==S.code)throw S;return{started:!!T,jobId:T,missingDependencies:[],ticketType:m}}async function g(e,t){let r=t||a.LOCAL_USER.id,i=(0,n.createAdminDbClient)(),o=i.from("tasks").select("id").contains("depends_on",[e]);t&&(o=o.eq("user_id",t));let{data:s,error:d}=await o,u=Array.isArray(s)?s.map(e=>e?.id).filter(Boolean):[];if(d&&"42703"===d.code){let r=i.from("tasks").select("id, content");t&&(r=r.eq("user_id",t));let{data:n}=await r;u=(Array.isArray(n)?n:[]).filter(t=>l(t).includes(e)).map(e=>e?.id).filter(Boolean)}u.length&&await Promise.all(u.map(e=>f(e,r)))}e.s(["attemptStartTask",()=>f,"getMissingDependencies",()=>p,"loadTaskDependencyGraph",()=>c,"triggerDependentTasks",()=>g])}];
51
-
52
- //# sourceMappingURL=%5Broot-of-the-server%5D__7be8f159._.js.map