@mndrk/agx 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/README.md +70 -105
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +5 -5
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +5 -5
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__039h7r.._.js +18 -0
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0lno3km._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0fl7_-o._.js → [root-of-the-server]__0nqqk26._.js} +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0j9m72.._.js → [root-of-the-server]__0tqn-o5._.js} +2 -2
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~nm7b6._.js +3 -0
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_064h43p._.js → _05xj_bp._.js} +2 -2
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0nvzo3y._.js → apps_local_04dh2yh._.js} +2 -2
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
  296. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
  299. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
  300. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_agents_[agentId]_page_tsx_0wm~_~t._.js +1 -1
  302. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
  303. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
  305. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
  307. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
  310. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  311. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  313. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  314. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0e307b-0c2jbx.js → 0-cets4_axpvm.js} +1 -1
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{119v0-idpg-cv.js → 08bdyjcnamzep.js} +1 -1
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kn66yvx08813.css +1 -0
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{07646a0h94826.js → 0l89kxqcf86on.js} +2 -2
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0tt1oh112yv-l.js → 0wopevh0s7.8c.js} +1 -1
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zt2o58c5gytn.js +16 -0
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0stvi5btlxl4m.js → 0~mcfx41q4znh.js} +3 -3
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-_ukhpeg429c.js → 16h9208kl5~xa.js} +1 -1
  357. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
  358. package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
  359. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
  360. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
  361. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
  362. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
  363. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
  364. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
  365. package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
  366. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  367. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
  368. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
  369. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
  370. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
  371. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
  372. package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
  373. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
  374. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
  375. package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
  376. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
  377. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +8 -39
  378. package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
  379. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
  380. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
  381. package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
  382. package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +9 -3
  383. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +65 -30
  384. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerRunLog.tsx +190 -0
  385. package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
  386. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
  387. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +38 -34
  388. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
  389. package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
  390. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
  391. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
  392. package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
  393. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
  394. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
  395. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +121 -20
  396. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
  397. package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
  398. package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
  399. package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
  400. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
  401. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
  402. package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
  403. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
  404. package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
  405. package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
  406. package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
  407. package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
  408. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
  409. package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
  410. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  411. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
  412. package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
  413. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
  414. package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
  415. package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
  416. package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +71 -2
  417. package/cloud-runtime/standalone/apps/local/worker/index.js +56 -4
  418. package/lib/cli/onboarding.js +8 -5
  419. package/package.json +1 -1
  420. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +0 -3
  421. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +0 -3
  422. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +0 -18
  423. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +0 -3
  424. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
  425. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
  426. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
  427. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
  428. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
  429. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
  430. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
  431. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
  432. package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +0 -16
  433. package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
  434. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +0 -1
  435. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +0 -1
  436. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +0 -1
  437. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
  438. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +0 -37
  439. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
  440. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
  441. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
  442. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
  443. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +0 -1
  444. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
  445. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +0 -1
  446. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
  447. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
  448. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +0 -1
  449. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
  450. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
  451. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
  452. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +0 -6
  453. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
  454. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
  455. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_buildManifest.js +0 -0
  456. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_clientMiddlewareManifest.js +0 -0
  457. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_ssgManifest.js +0 -0
@@ -26,7 +26,12 @@ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/pro
26
26
  FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),s=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
27
  FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),d=e.query(`SELECT event_type, payload, timestamp
28
28
  FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of o.rows)u[e.node_id]=function(e){let t={...l(p(e.config)),type:e.type,status:e.status},r=p(e.metrics);null!==r&&(t.metrics=r);let i=p(e.output);return null!==i&&(t.output=i),t}(e);let _=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:p(e.condition)}:{},...e.data_mapping?{dataMapping:p(e.data_mapping)}:{}})),E=[],h=[];for(let e of d.rows){let t=g(e);a.has(t.eventType)?E.push(t):h.push(t)}var T={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,executionState:r.execution_state??void 0,nodes:u,edges:_,policy:p(r.policy)??{},doneCriteria:p(r.done_criteria)??{},schedule:p(r.schedule)??void 0,versionHistory:E,runtimeEvents:h,createdAt:c(r.created_at),updatedAt:c(r.updated_at)};if(!(0,n.isAutomationFrontmatterEnabled)())return T;let f=(0,n.getAutomationRepository)().getAutomation(T.id);return f&&"execution_graph"===f.definition.target.type?{...T,schedule:(0,i.automationRecordToGraphSchedule)(f,T.schedule)}:T}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
- VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}}let m=new f;function S(e){return m.getGraph(e)}e.s(["GraphNodeNotFoundError",0,s,"GraphStore",0,f,"GraphTaskAlreadyBoundError",0,d,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return m.appendEvent(e,t)},"createGraph",0,function(e,t){return m.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let i=0;if((0,n.isAutomationFrontmatterEnabled)()){for(let e of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??E(t);if(!r)continue;let n=S(r);n?.schedule&&(m.updateGraphStructure(n.id,{mode:n.mode,nodes:n.nodes,edges:n.edges,policy:n.policy,doneCriteria:n.doneCriteria,schedule:{...n.schedule,state:"stopped",tickInProgress:!1}},n.graphVersion),i+=1)}if(i>0||!(0,n.isAutomationDualReadEnabled)())return i}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}claimScheduleTick(e){return(this.getDb().prepare(`UPDATE execution_graphs
30
+ SET schedule = json_set(schedule, '$.tickInProgress', json('true')),
31
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
+ WHERE task_id = ?
33
+ AND json_extract(schedule, '$.tickInProgress') = 0
34
+ AND json_extract(schedule, '$.state') = 'active'`).run(e).changes??0)>0}}let m=new f;function S(e){return m.getGraph(e)}e.s(["GraphNodeNotFoundError",0,s,"GraphStore",0,f,"GraphTaskAlreadyBoundError",0,d,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return m.appendEvent(e,t)},"createGraph",0,function(e,t){return m.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let i=0;if((0,n.isAutomationFrontmatterEnabled)()){for(let e of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??E(t);if(!r)continue;let n=S(r);n?.schedule&&(m.updateGraphStructure(n.id,{mode:n.mode,nodes:n.nodes,edges:n.edges,policy:n.policy,doneCriteria:n.doneCriteria,schedule:{...n.schedule,state:"stopped",tickInProgress:!1}},n.graphVersion),i+=1)}if(i>0||!(0,n.isAutomationDualReadEnabled)())return i}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
30
35
  SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
31
36
  updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
37
  WHERE schedule IS NOT NULL
@@ -1,7 +1,7 @@
1
1
  module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},951336,e=>{"use strict";var t=e.i(779429),r=e.i(769025);e.i(508241);var a=e.i(72777),o=e.i(716279);let n=new Set(["replan","rollback"]);class i extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class s extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class d extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function u(e){return null==e?null:JSON.stringify(e)}function c(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function p(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function l(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,o.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,o.getAutomationRepository)(),r=(0,a.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function h(e){let r=e.trim();if(!r)return null;let a=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
2
2
  FROM execution_graphs
3
3
  WHERE id = ?
4
- LIMIT 1`).get(r);return a?.taskId??null}function f(e){let{type:t,status:r,metrics:a,output:o,...n}=e;return{type:t,status:r,config:n,output:o??null,metrics:a??null}}function E(e){let t={...l(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=p(e.timestamp)),t}function _(e){return{query(t,r){let a=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(a.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:a.all(...(r??[]).map(e=>e))}}}}class m{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let a=this.getDb(),o=_(a);t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = OFF");try{return(0,r.transaction)(a,()=>{let r=o.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new d(e.taskId,r.id);for(let[t,r]of(o.query(`INSERT INTO execution_graphs
4
+ LIMIT 1`).get(r);return a?.taskId??null}function E(e){let{type:t,status:r,metrics:a,output:o,...n}=e;return{type:t,status:r,config:n,output:o??null,metrics:a??null}}function f(e){let t={...l(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=p(e.timestamp)),t}function _(e){return{query(t,r){let a=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(a.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:a.all(...(r??[]).map(e=>e))}}}}class m{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let a=this.getDb(),o=_(a);t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = OFF");try{return(0,r.transaction)(a,()=>{let r=o.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new d(e.taskId,r.id);for(let[t,r]of(o.query(`INSERT INTO execution_graphs
5
5
  (id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at)
6
6
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
7
7
  ON CONFLICT (id) DO UPDATE SET
@@ -12,11 +12,11 @@ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/pro
12
12
  done_criteria = excluded.done_criteria,
13
13
  schedule = excluded.schedule,
14
14
  created_at = excluded.created_at,
15
- updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,u(e.policy),u(e.doneCriteria),u(e.schedule??null),e.createdAt,e.updatedAt]),o.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),o.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let a=f(r);o.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
15
+ updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,u(e.policy),u(e.doneCriteria),u(e.schedule??null),e.createdAt,e.updatedAt]),o.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),o.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let a=E(r);o.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
16
16
  VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,a.type,a.status,u(a.config),u(a.output),u(a.metrics)])}for(let t of e.edges)o.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
17
17
  VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,u(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(o,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(o,e.id,t);t?.skipTaskBinding||o.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let a=this.getGraphForTask(o,e.taskId);if(!a)throw new i(e.id);return g(a),a})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(a,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(_(t),e)}updateNodeRuntime(e,t,a){let o=this.getDb(),n=_(o);return(0,r.transaction)(o,()=>{if(!n.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new i(e);let r=Object.keys(t);if(0===r.length){let t=n.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:p(t.rows[0].updated_at)}}let a=r.map(()=>"?").join(", "),o=n.query(`SELECT node_id, type, status, config, output, metrics
18
18
  FROM graph_nodes WHERE graph_id = ? AND node_id IN (${a})`,[e,...r]),d=new Map;for(let e of o.rows)d.set(e.node_id,e);let g=r.filter(e=>!d.has(e));if(g.length>0)throw new s(e,g);for(let a of r){let r=t[a],o=d.get(a);if(!o||!r)continue;let i={...l(c(o.config)),...l(r.configPatch)};void 0!==r.startedAt&&(i.startedAt=r.startedAt),void 0!==r.completedAt&&(i.completedAt=r.completedAt),void 0!==r.actualMinutes&&(i.actualMinutes=r.actualMinutes),n.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
19
- WHERE graph_id = ? AND node_id = ?`,[r.status??o.status,u(r.metrics??c(o.metrics)),u(r.output??c(o.output)),u(i),e,a])}let h=n.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:h.rows[0].graph_version,updatedAt:p(h.rows[0].updated_at)}})}updateGraphStructure(e,t,a){let o=this.getDb(),n=_(o);return(0,r.transaction)(o,()=>{let r=n.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new i(e);if(t.nodes)for(let[r,a]of(n.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=f(a);n.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
19
+ WHERE graph_id = ? AND node_id = ?`,[r.status??o.status,u(r.metrics??c(o.metrics)),u(r.output??c(o.output)),u(i),e,a])}let h=n.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:h.rows[0].graph_version,updatedAt:p(h.rows[0].updated_at)}})}updateGraphStructure(e,t,a){let o=this.getDb(),n=_(o);return(0,r.transaction)(o,()=>{let r=n.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new i(e);if(t.nodes)for(let[r,a]of(n.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=E(a);n.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
20
20
  VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,u(t.config),u(t.output),u(t.metrics)])}if(t.edges)for(let r of(n.query("DELETE FROM graph_edges WHERE graph_id = ?",[e]),t.edges))n.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
21
21
  VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,u(r.dataMapping??null)]);let a=n.query(`UPDATE execution_graphs
22
22
  SET mode = ?, policy = ?, done_criteria = ?, schedule = ?, updated_at = datetime('now')
@@ -25,8 +25,13 @@ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/pro
25
25
  FROM execution_graphs WHERE task_id = ? ORDER BY updated_at DESC LIMIT 1`,[t]).rows[0];if(!r)return null;let i=e.query(`SELECT node_id, type, status, config, output, metrics
26
26
  FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),s=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
27
  FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),d=e.query(`SELECT event_type, payload, timestamp
28
- FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of i.rows)u[e.node_id]=function(e){let t={...l(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let a=c(e.output);return null!==a&&(t.output=a),t}(e);let g=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),h=[],f=[];for(let e of d.rows){let t=E(e);n.has(t.eventType)?h.push(t):f.push(t)}var _={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,executionState:r.execution_state??void 0,nodes:u,edges:g,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:h,runtimeEvents:f,createdAt:p(r.created_at),updatedAt:p(r.updated_at)};if(!(0,o.isAutomationFrontmatterEnabled)())return _;let m=(0,o.getAutomationRepository)().getAutomation(_.id);return m&&"execution_graph"===m.definition.target.type?{..._,schedule:(0,a.automationRecordToGraphSchedule)(m,_.schedule)}:_}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
- VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}}let S=new m;function I(e){return S.getGraph(e)}e.s(["GraphNodeNotFoundError",0,s,"GraphStore",0,m,"GraphTaskAlreadyBoundError",0,d,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return S.appendEvent(e,t)},"createGraph",0,function(e,t){return S.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let a=0;if((0,o.isAutomationFrontmatterEnabled)()){for(let e of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??h(t);if(!r)continue;let o=I(r);o?.schedule&&(S.updateGraphStructure(o.id,{mode:o.mode,nodes:o.nodes,edges:o.edges,policy:o.policy,doneCriteria:o.doneCriteria,schedule:{...o.schedule,state:"stopped",tickInProgress:!1}},o.graphVersion),a+=1)}if(a>0||!(0,o.isAutomationDualReadEnabled)())return a}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
28
+ FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of i.rows)u[e.node_id]=function(e){let t={...l(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let a=c(e.output);return null!==a&&(t.output=a),t}(e);let g=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),h=[],E=[];for(let e of d.rows){let t=f(e);n.has(t.eventType)?h.push(t):E.push(t)}var _={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,executionState:r.execution_state??void 0,nodes:u,edges:g,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:h,runtimeEvents:E,createdAt:p(r.created_at),updatedAt:p(r.updated_at)};if(!(0,o.isAutomationFrontmatterEnabled)())return _;let m=(0,o.getAutomationRepository)().getAutomation(_.id);return m&&"execution_graph"===m.definition.target.type?{..._,schedule:(0,a.automationRecordToGraphSchedule)(m,_.schedule)}:_}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}claimScheduleTick(e){return(this.getDb().prepare(`UPDATE execution_graphs
30
+ SET schedule = json_set(schedule, '$.tickInProgress', json('true')),
31
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
+ WHERE task_id = ?
33
+ AND json_extract(schedule, '$.tickInProgress') = 0
34
+ AND json_extract(schedule, '$.state') = 'active'`).run(e).changes??0)>0}}let S=new m;function I(e){return S.getGraph(e)}e.s(["GraphNodeNotFoundError",0,s,"GraphStore",0,m,"GraphTaskAlreadyBoundError",0,d,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return S.appendEvent(e,t)},"createGraph",0,function(e,t){return S.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let a=0;if((0,o.isAutomationFrontmatterEnabled)()){for(let e of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??h(t);if(!r)continue;let o=I(r);o?.schedule&&(S.updateGraphStructure(o.id,{mode:o.mode,nodes:o.nodes,edges:o.edges,policy:o.policy,doneCriteria:o.doneCriteria,schedule:{...o.schedule,state:"stopped",tickInProgress:!1}},o.graphVersion),a+=1)}if(a>0||!(0,o.isAutomationDualReadEnabled)())return a}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
30
35
  SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
31
36
  updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
37
  WHERE schedule IS NOT NULL
@@ -44,9 +49,9 @@ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/pro
44
49
  FROM graph_events
45
50
  WHERE ${a.join(" AND ")}
46
51
  ORDER BY timestamp ASC, event_type ASC
47
- LIMIT ?`;return o.push(n),_((0,t.getSQLiteDb)()).query(i,o).rows.map(e=>E(e))},"updateGraphStructure",0,function(e,t,r){return S.updateGraphStructure(e,t,r)},"updateNodeRuntime",0,function(e,t,r){return S.updateNodeRuntime(e,t,r)}])},533655,e=>{"use strict";e.s(["BASH_FUNCTION_TIMEOUT_MS",0,3e4,"CHECK_NPM_BUILD_TIMEOUT_MS",0,6e5,"CHECK_NPM_COVERAGE_TIMEOUT_MS",0,3e5,"CHECK_NPM_LINT_TIMEOUT_MS",0,6e4,"CHECK_NPM_TEST_TIMEOUT_MS",0,3e5,"CHECK_NPM_TYPECHECK_TIMEOUT_MS",0,12e4,"GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"PS_COMMAND_TIMEOUT_MS",0,5e3,"QUEUE_POLL_INTERVAL_MS",0,1e3,"SCHEDULE_POLL_INTERVAL_MS",0,5e3,"SHELL_COMMAND_TIMEOUT_MS",0,5e3,"SKILLS_CACHE_TTL_MS",0,36e5,"SKILL_DETAIL_CACHE_TTL_MS",0,36e5,"SKILL_FETCH_TIMEOUT_MS",0,12e4,"STEER_DUPLICATE_WINDOW_MS",0,9e5,"WRITE_RATE_SAMPLE_WINDOW_MS",0,1e4,"WRITE_RATE_WARNING_COOLDOWN_MS",0,6e4])},466713,e=>{"use strict";var t=e.i(533655);let r={replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:t.NODE_TIMEOUT_DEFAULT_MS,graphTimeoutMs:t.GRAPH_TIMEOUT_DEFAULT_MS};e.s(["DEFAULT_EXECUTION_POLICY",0,r,"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},84548,e=>{"use strict";e.s(["buildMarkdownWithFrontmatter",0,function(e,t){return`---
52
+ LIMIT ?`;return o.push(n),_((0,t.getSQLiteDb)()).query(i,o).rows.map(e=>f(e))},"updateGraphStructure",0,function(e,t,r){return S.updateGraphStructure(e,t,r)},"updateNodeRuntime",0,function(e,t,r){return S.updateNodeRuntime(e,t,r)}])},533655,e=>{"use strict";e.s(["BASH_FUNCTION_TIMEOUT_MS",0,3e4,"CHECK_NPM_BUILD_TIMEOUT_MS",0,6e5,"CHECK_NPM_COVERAGE_TIMEOUT_MS",0,3e5,"CHECK_NPM_LINT_TIMEOUT_MS",0,6e4,"CHECK_NPM_TEST_TIMEOUT_MS",0,3e5,"CHECK_NPM_TYPECHECK_TIMEOUT_MS",0,12e4,"GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"PS_COMMAND_TIMEOUT_MS",0,5e3,"QUEUE_POLL_INTERVAL_MS",0,1e3,"SCHEDULE_POLL_INTERVAL_MS",0,5e3,"SHELL_COMMAND_TIMEOUT_MS",0,5e3,"SKILLS_CACHE_TTL_MS",0,36e5,"SKILL_DETAIL_CACHE_TTL_MS",0,36e5,"SKILL_FETCH_TIMEOUT_MS",0,12e4,"STEER_DUPLICATE_WINDOW_MS",0,9e5,"WRITE_RATE_SAMPLE_WINDOW_MS",0,1e4,"WRITE_RATE_WARNING_COOLDOWN_MS",0,6e4])},466713,e=>{"use strict";var t=e.i(533655);let r={replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:t.NODE_TIMEOUT_DEFAULT_MS,graphTimeoutMs:t.GRAPH_TIMEOUT_DEFAULT_MS};e.s(["DEFAULT_EXECUTION_POLICY",0,r,"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},84548,e=>{"use strict";e.s(["buildMarkdownWithFrontmatter",0,function(e,t){return`---
48
53
  ${Object.entries(e).map(([e,t])=>`${e}: ${null==t?"":String(t)}`).join("\n")}
49
54
  ---
50
- ${t}`}])},325799,e=>{"use strict";var t=e.i(89171),r=e.i(744071),a=e.i(764541);async function o(e){let o=r.LOCAL_USER.id,n=await a.db.getTask(e.taskId,o);return n?{ok:!0,actor:{actorId:o,actorType:"service"},task:n,projectId:e.requestedProjectId??n.project_id??null}:{ok:!1,response:t.NextResponse.json({error:"Task not found"},{status:404})}}e.s(["authorizeGraphMutation",0,o])},607664,12555,e=>{"use strict";function t(){return new Date().toISOString()}function r(e,t,r){return{actorId:e.actorId,actorType:e.actorType,action:t,...r?{projectId:r}:{}}}e.s(["buildBudgetConsumedEvent",0,function(e){return{eventType:"budget_consumed",budgetType:e.budgetType,remaining:e.remaining,triggerNodeId:e.triggerNodeId,timestamp:e.timestamp??t(),audit:r(e.actor,"budget_consumption",e.projectId)}},"buildGateVerificationEvent",0,function(e){return{eventType:"gate_verification",nodeId:e.nodeId,timestamp:e.timestamp??t(),result:e.result,audit:r(e.actor,"gate_verification",e.projectId)}},"buildGraphCreatedEvent",0,function(e){return{eventType:"graph_created",timestamp:e.timestamp??t(),mode:e.mode,nodeCount:e.nodeCount,edgeCount:e.edgeCount,audit:r(e.actor,"graph_create",e.projectId)}},"buildNodeStatusEvent",0,function(e){return{eventType:"node_status",nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,timestamp:e.timestamp??t(),...e.reason?{reason:e.reason}:{},audit:r(e.actor,"node_status_transition",e.projectId)}},"buildReplanEvent",0,function(e){return{eventType:"replan",fromVersion:e.fromVersion,toVersion:e.toVersion,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),triggeredAtNodeId:e.triggeredAtNodeId,changes:e.changes,audit:r(e.actor,"graph_replan",e.projectId)}},"buildRollbackEvent",0,function(e){return{eventType:"rollback",toCheckpoint:e.toCheckpoint,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),audit:r(e.actor,"graph_rollback",e.projectId)}}],607664);let a={graphCreateCount:0,replanCount:0,rollbackCount:0,migrationFailureCount:0,gatePassCount:0,gateFailCount:0};e.s(["recordGateVerificationResult",0,function(e){if(e){a.gatePassCount+=1;return}a.gateFailCount+=1},"recordGraphCreate",0,function(){a.graphCreateCount+=1},"recordMigrationFailure",0,function(){a.migrationFailureCount+=1},"recordReplan",0,function(){a.replanCount+=1},"recordRollback",0,function(){a.rollbackCount+=1}],12555)},333615,e=>{"use strict";var t=e.i(469719),r=e.i(607664),a=e.i(745254),o=e.i(457857),n=e.i(325799),i=e.i(12555),s=e.i(951336),d=e.i(883643);let u=t.z.object({error:t.z.string().min(1),nodeIds:t.z.array(t.z.string())});async function c(e){try{await (0,s.appendEvent)(e.graphId,(0,r.buildNodeStatusEvent)({actor:e.actor,nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,reason:e.reason,projectId:e.projectId}))}catch(e){console.error("Failed to append rejected node transition event",e)}}async function p(e){let t=await (0,n.authorizeGraphMutation)({request:e.request,taskId:e.taskId,action:e.action,requestedProjectId:e.requestedProjectId});if(!t.ok)return t.response;let p=await (0,s.getGraph)(e.taskId);if(!p)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Graph not found"},{status:404});let l=p.nodes[e.nodeId];if(!l)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Node not found"},{status:404});if(e.allowedFromStatuses&&!e.allowedFromStatuses.includes(l.status))return await c({graphId:p.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:`Rejected: node must be in one of [${e.allowedFromStatuses.join(", ")}] to ${e.action}`}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Cannot ${e.action} node ${e.nodeId}: current status is ${l.status}`},{status:400});try{(0,d.assertValidNodeStatusTransition)(l.type,l.status,e.targetStatus)}catch{return await c({graphId:p.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected invalid transition"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Invalid node transition for ${e.nodeId}: ${l.status} -> ${e.targetStatus}`},{status:400})}if("gate"===l.type&&"pending"===l.status&&"passed"===e.targetStatus&&!function(e){if("gate"!==e.type)return!1;let t=e.verificationStrategy.checks??[];return"progress"===e.gateType&&0===t.length&&"auto"===e.verificationStrategy.type}(l))return await c({graphId:p.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected required gate bypass"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Required gate transition blocked for node ${e.nodeId}`},{status:400});try{let n={...e.patch??{},status:e.targetStatus};e.resetWorkAttempts&&"work"===l.type&&(n.configPatch={...n.configPatch??{},attempts:0});let d={[e.nodeId]:{...n}},u=await (0,s.updateNodeRuntime)(p.id,d,e.ifMatchGraphVersion??p.graphVersion),c=new Date().toISOString();if(await (0,s.appendEvent)(p.id,(0,r.buildNodeStatusEvent)({actor:t.actor,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:e.reason,timestamp:c,projectId:t.projectId})),("gate"===l.type||"node_verify"===e.action)&&("passed"===e.targetStatus||"failed"===e.targetStatus)){let a="passed"===e.targetStatus;(0,i.recordGateVerificationResult)(a),await (0,s.appendEvent)(p.id,(0,r.buildGateVerificationEvent)({actor:t.actor,nodeId:e.nodeId,timestamp:c,result:{passed:a,checks:e.gateChecks??[],verifiedAt:c,verifiedBy:"user"===t.actor.actorType?"human":"agent"},projectId:t.projectId}))}if(e.consumeVerifyBudget||"node_verify"===e.action){let a=Math.max(0,p.policy.verifyBudgetRemaining-1);await (0,s.appendEvent)(p.id,(0,r.buildBudgetConsumedEvent)({actor:t.actor,budgetType:"verify",remaining:a,triggerNodeId:e.nodeId,timestamp:c,projectId:t.projectId}))}return(0,o.jsonWithSchema)(a.NodeMutationResponseSchema,{graphId:p.id,nodeId:e.nodeId,graphVersion:u.graphVersion,updatedAt:u.updatedAt})}catch(e){if(e instanceof s.GraphVersionConflictError)return(0,o.graphConflictResponse)(e);if(e instanceof s.GraphNodeNotFoundError)return(0,o.jsonWithSchema)(u,{error:e.message,nodeIds:e.nodeIds},{status:404});return console.error("Error mutating node status:",e),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Failed to mutate node status"},{status:500})}}e.s(["applyNodeStatusMutation",0,p])},712196,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),o=e.i(759756),n=e.i(561916),i=e.i(174677),s=e.i(869741),d=e.i(316795),u=e.i(487718),c=e.i(995169),p=e.i(47587),l=e.i(666012),g=e.i(570101),h=e.i(626937),f=e.i(10372),E=e.i(193695);e.i(52474);var _=e.i(600220),m=e.i(173426),S=e.i(764541),I=e.i(846888),y=e.i(582743),T=e.i(84548),R=e.i(745254),v=e.i(457857),A=e.i(333615),C=e.i(951336);let w=new Set(["pending","running","awaiting_human","blocked"]);function M(e,t){if(!e||"object"!=typeof e)return!1;let r="code"in e?String(e.code||""):"",a="message"in e?String(e.message||"").toLowerCase():"";return("42703"===r||"PGRST204"===r)&&a.includes(t.toLowerCase())}async function N(e,t,r){let a={...r};for(;;){let{error:r}=await e.from("tasks").update(a).eq("id",t);if(!r)return;if("blocked_reason"in a&&M(r,"blocked_reason")){let{blocked_reason:e,...t}=a;a=t;continue}throw r}}async function k(e,t,r,a){let{error:o}=await e.from("execution_graphs").update({execution_state:r,updated_at:a}).eq("id",t);if(o&&!M(o,"execution_state"))throw o}async function O(e){var t;let r,a=await (0,C.getGraph)(e);if(!a)return;let o=await S.db.getTask(e);if(!o)return;let n=(0,I.parseFrontmatter)(String(o.content||"")),i={...n.frontmatter},s=(0,y.resolveMemoryAgentId)({defaultUserId:o.user_id||"system",frontmatter:n.frontmatter}),d=n.body,u=new Date().toISOString(),c=(0,m.createAdminDbClient)(),p=Object.values(a.nodes||{}).some(e=>!!e&&w.has(e.status)),l=!p;if(l&&(t=a,0===(r=Array.isArray(t?.doneCriteria?.completionSinkNodeIds)?t.doneCriteria.completionSinkNodeIds:[]).length?!Object.values(t.nodes||{}).some(e=>e?.status==="failed"):r.every(e=>{let r=t.nodes?.[e]?.status;return"done"===r||"passed"===r}))){i.stage="DONE",i.status="completed","error"in i&&delete i.error;let t=(0,T.buildMarkdownWithFrontmatter)(i,d);await N(c,e,{content:t,stage:"DONE",status:"completed",blocked_reason:null,completed_at:u,updated_at:u}),await k(c,a.id,"done",u);let r={};for(let[e,t]of Object.entries(a.nodes))t?.type==="work"&&t.output&&(r[e]=t.output);(0,y.extractAndStoreMemories)(e,s,{goal:String(o.content||o.title||""),status:"completed",nodeOutputs:r}).catch(e=>console.warn("[verify] Memory extraction failed:",e)),(0,y.extractAndStoreProjectKnowledge)(e,o.project_id||o.project,{goal:String(o.content||o.title||""),status:"completed",nodeOutputs:r}).catch(e=>console.warn("[verify] Project knowledge extraction failed:",e));return}if(l){i.status="failed";let t=(0,T.buildMarkdownWithFrontmatter)(i,d);await N(c,e,{content:t,status:"failed",blocked_reason:null,completed_at:u,updated_at:u}),await k(c,a.id,"done",u);let r={};for(let[e,t]of Object.entries(a.nodes))t?.type==="work"&&t.output&&(r[e]=t.output);(0,y.extractAndStoreMemories)(e,s,{goal:String(o.content||o.title||""),status:"failed",nodeOutputs:r}).catch(e=>console.warn("[verify] Memory extraction failed:",e)),(0,y.extractAndStoreProjectKnowledge)(e,o.project_id||o.project,{goal:String(o.content||o.title||""),status:"failed",nodeOutputs:r}).catch(e=>console.warn("[verify] Project knowledge extraction failed:",e));return}if(p&&!Object.values(a.nodes||{}).some(e=>e?.status==="awaiting_human")){i.status="queued",i.stage="PROGRESS","error"in i&&delete i.error;let t=(0,T.buildMarkdownWithFrontmatter)(i,d);await N(c,e,{content:t,status:"queued",stage:"PROGRESS",blocked_reason:null,completed_at:null,updated_at:u}),await k(c,a.id,"running",u)}}async function b(e,{params:t}){let{id:r,nodeId:a}=await t,o=(0,v.normalizeTaskId)(r),n=(0,v.normalizeNodeId)(a);if(!o||!n)return(0,v.jsonWithSchema)(R.ErrorResponseSchema,{error:"Invalid taskId or nodeId"},{status:400});let i=await (0,v.parseJsonBody)(e,R.VerifyGateRequestSchema);if(!i.ok)return i.response;let s=i.data,d=await (0,A.applyNodeStatusMutation)({request:e,taskId:o,nodeId:n,action:"node_verify",requestedProjectId:s.projectId??s.project_id,ifMatchGraphVersion:s.ifMatchGraphVersion,targetStatus:s.approved?"passed":"failed",reason:s.feedback?.trim()||"gate verification submitted",gateChecks:s.checks??[],consumeVerifyBudget:!0,patch:{completedAt:s.completedAt??new Date().toISOString()}});if(!d.ok||!s.approved)return d;try{await O(o)}catch(e){console.error("Failed to reconcile task after gate approval:",e)}return d}e.s(["POST",0,b],436521);var x=e.i(436521);let D=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/nodes/[nodeId]/verify/route",pathname:"/api/tasks/[id]/nodes/[nodeId]/verify",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/tasks/[id]/nodes/[nodeId]/verify/route.ts",nextConfigOutput:"standalone",userland:x,...{}}),{workAsyncStorage:L,workUnitAsyncStorage:j,serverHooks:F}=D;async function U(e,t,a){a.requestMeta&&(0,o.setRequestMeta)(e,a.requestMeta),D.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/tasks/[id]/nodes/[nodeId]/verify/route";m=m.replace(/\/index$/,"")||"/";let S=await D.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,params:y,nextConfig:T,parsedUrl:R,isDraftMode:v,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:w,revalidateOnlyGenerated:M,resolvedPathname:N,clientReferenceManifest:k,serverActionsManifest:O}=S,b=(0,s.normalizeAppPath)(m),x=!!(A.dynamicRoutes[b]||A.routes[N]),L=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,R,!1):t.end("This page could not be found"),null);if(x&&!v){let e=!!A.routes[N],t=A.dynamicRoutes[b];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await L();throw new E.NoFallbackError}}let j=null;!x||D.isDev||v||(j="/index"===(j=N)?"/":j);let F=!0===D.isDev||!x,U=x&&!F;O&&k&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:k,serverActionsManifest:O});let P=e.method||"GET",q=(0,n.getTracer)(),G=q.getActiveScopeSpan(),H=!!(null==C?void 0:C.isWrappedByNextServer),W=!!(0,o.getRequestMeta)(e,"minimalMode"),V=(0,o.getRequestMeta)(e,"incrementalCache")||await D.getIncrementalCache(e,T,A,W);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let $={params:y,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:F,incrementalCache:V,cacheLifeProfiles:T.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,o)=>D.onRequestError(e,t,a,o,C)},sharedContext:{buildId:I}},B=new d.NodeNextRequest(e),K=new d.NodeNextResponse(t),z=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let o,i=async e=>D.handle(z,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.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=`${P} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),o&&o!==e&&(o.setAttribute("http.route",a),o.updateName(t))}else e.updateName(`${P} ${m}`)}),s=async o=>{var n,s;let d=async({previousCacheEntry:r})=>{try{if(!W&&w&&M&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=$.renderOpts.fetchMetrics;let s=$.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let d=$.renderOpts.collectedTags;if(!x)return await (0,l.sendResponse)(B,K,n,$.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:_.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 D.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:w})},!1,C),t}},u=await D.handleResponse({req:e,nextConfig:T,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:w,revalidateOnlyGenerated:M,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:W});if(!x)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(s=u.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",w?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),v&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&x||c.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,l.sendResponse)(B,K,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};H&&G?await s(G):(o=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(c.BaseServerSpan.handleRequest,{spanName:`${P} ${m}`,kind:n.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},s),void 0,!H))}catch(t){if(t instanceof E.NoFallbackError||await D.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:w})},!1,C),x)throw t;return await (0,l.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",0,U,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:L,workUnitAsyncStorage:j})},"routeModule",0,D,"serverHooks",0,F,"workAsyncStorage",0,L,"workUnitAsyncStorage",0,j],712196)}];
55
+ ${t}`}])},325799,e=>{"use strict";var t=e.i(89171),r=e.i(744071),a=e.i(764541);async function o(e){let o=r.LOCAL_USER.id,n=await a.db.getTask(e.taskId,o);return n?{ok:!0,actor:{actorId:o,actorType:"service"},task:n,projectId:e.requestedProjectId??n.project_id??null}:{ok:!1,response:t.NextResponse.json({error:"Task not found"},{status:404})}}e.s(["authorizeGraphMutation",0,o])},607664,12555,e=>{"use strict";function t(){return new Date().toISOString()}function r(e,t,r){return{actorId:e.actorId,actorType:e.actorType,action:t,...r?{projectId:r}:{}}}e.s(["buildBudgetConsumedEvent",0,function(e){return{eventType:"budget_consumed",budgetType:e.budgetType,remaining:e.remaining,triggerNodeId:e.triggerNodeId,timestamp:e.timestamp??t(),audit:r(e.actor,"budget_consumption",e.projectId)}},"buildGateVerificationEvent",0,function(e){return{eventType:"gate_verification",nodeId:e.nodeId,timestamp:e.timestamp??t(),result:e.result,audit:r(e.actor,"gate_verification",e.projectId)}},"buildGraphCreatedEvent",0,function(e){return{eventType:"graph_created",timestamp:e.timestamp??t(),mode:e.mode,nodeCount:e.nodeCount,edgeCount:e.edgeCount,audit:r(e.actor,"graph_create",e.projectId)}},"buildNodeStatusEvent",0,function(e){return{eventType:"node_status",nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,timestamp:e.timestamp??t(),...e.reason?{reason:e.reason}:{},audit:r(e.actor,"node_status_transition",e.projectId)}},"buildReplanEvent",0,function(e){return{eventType:"replan",fromVersion:e.fromVersion,toVersion:e.toVersion,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),triggeredAtNodeId:e.triggeredAtNodeId,changes:e.changes,audit:r(e.actor,"graph_replan",e.projectId)}},"buildRollbackEvent",0,function(e){return{eventType:"rollback",toCheckpoint:e.toCheckpoint,timestamp:e.timestamp??t(),reason:e.reason,triggeredBy:e.triggeredBy??("user"===e.actor.actorType?"human":"agent"),audit:r(e.actor,"graph_rollback",e.projectId)}}],607664);let a={graphCreateCount:0,replanCount:0,rollbackCount:0,migrationFailureCount:0,gatePassCount:0,gateFailCount:0};e.s(["recordGateVerificationResult",0,function(e){if(e){a.gatePassCount+=1;return}a.gateFailCount+=1},"recordGraphCreate",0,function(){a.graphCreateCount+=1},"recordMigrationFailure",0,function(){a.migrationFailureCount+=1},"recordReplan",0,function(){a.replanCount+=1},"recordRollback",0,function(){a.rollbackCount+=1}],12555)},333615,e=>{"use strict";var t=e.i(469719),r=e.i(607664),a=e.i(745254),o=e.i(457857),n=e.i(325799),i=e.i(12555),s=e.i(951336),d=e.i(883643);let u=t.z.object({error:t.z.string().min(1),nodeIds:t.z.array(t.z.string())});async function c(e){try{await (0,s.appendEvent)(e.graphId,(0,r.buildNodeStatusEvent)({actor:e.actor,nodeId:e.nodeId,fromStatus:e.fromStatus,toStatus:e.toStatus,reason:e.reason,projectId:e.projectId}))}catch(e){console.error("Failed to append rejected node transition event",e)}}async function p(e){let t=await (0,n.authorizeGraphMutation)({request:e.request,taskId:e.taskId,action:e.action,requestedProjectId:e.requestedProjectId});if(!t.ok)return t.response;let p=await (0,s.getGraph)(e.taskId);if(!p)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Graph not found"},{status:404});let l=p.nodes[e.nodeId];if(!l)return(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Node not found"},{status:404});if(e.allowedFromStatuses&&!e.allowedFromStatuses.includes(l.status))return await c({graphId:p.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:`Rejected: node must be in one of [${e.allowedFromStatuses.join(", ")}] to ${e.action}`}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Cannot ${e.action} node ${e.nodeId}: current status is ${l.status}`},{status:400});try{(0,d.assertValidNodeStatusTransition)(l.type,l.status,e.targetStatus)}catch{return await c({graphId:p.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected invalid transition"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Invalid node transition for ${e.nodeId}: ${l.status} -> ${e.targetStatus}`},{status:400})}if("gate"===l.type&&"pending"===l.status&&"passed"===e.targetStatus&&!function(e){if("gate"!==e.type)return!1;let t=e.verificationStrategy.checks??[];return"progress"===e.gateType&&0===t.length&&"auto"===e.verificationStrategy.type}(l))return await c({graphId:p.id,actor:t.actor,projectId:t.projectId,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:"Rejected required gate bypass"}),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:`Required gate transition blocked for node ${e.nodeId}`},{status:400});try{let n={...e.patch??{},status:e.targetStatus};e.resetWorkAttempts&&"work"===l.type&&(n.configPatch={...n.configPatch??{},attempts:0});let d={[e.nodeId]:{...n}},u=await (0,s.updateNodeRuntime)(p.id,d,e.ifMatchGraphVersion??p.graphVersion),c=new Date().toISOString();if(await (0,s.appendEvent)(p.id,(0,r.buildNodeStatusEvent)({actor:t.actor,nodeId:e.nodeId,fromStatus:l.status,toStatus:e.targetStatus,reason:e.reason,timestamp:c,projectId:t.projectId})),("gate"===l.type||"node_verify"===e.action)&&("passed"===e.targetStatus||"failed"===e.targetStatus)){let a="passed"===e.targetStatus;(0,i.recordGateVerificationResult)(a),await (0,s.appendEvent)(p.id,(0,r.buildGateVerificationEvent)({actor:t.actor,nodeId:e.nodeId,timestamp:c,result:{passed:a,checks:e.gateChecks??[],verifiedAt:c,verifiedBy:"user"===t.actor.actorType?"human":"agent"},projectId:t.projectId}))}if(e.consumeVerifyBudget||"node_verify"===e.action){let a=Math.max(0,p.policy.verifyBudgetRemaining-1);await (0,s.appendEvent)(p.id,(0,r.buildBudgetConsumedEvent)({actor:t.actor,budgetType:"verify",remaining:a,triggerNodeId:e.nodeId,timestamp:c,projectId:t.projectId}))}return(0,o.jsonWithSchema)(a.NodeMutationResponseSchema,{graphId:p.id,nodeId:e.nodeId,graphVersion:u.graphVersion,updatedAt:u.updatedAt})}catch(e){if(e instanceof s.GraphVersionConflictError)return(0,o.graphConflictResponse)(e);if(e instanceof s.GraphNodeNotFoundError)return(0,o.jsonWithSchema)(u,{error:e.message,nodeIds:e.nodeIds},{status:404});return console.error("Error mutating node status:",e),(0,o.jsonWithSchema)(a.ErrorResponseSchema,{error:"Failed to mutate node status"},{status:500})}}e.s(["applyNodeStatusMutation",0,p])},712196,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),o=e.i(759756),n=e.i(561916),i=e.i(174677),s=e.i(869741),d=e.i(316795),u=e.i(487718),c=e.i(995169),p=e.i(47587),l=e.i(666012),g=e.i(570101),h=e.i(626937),E=e.i(10372),f=e.i(193695);e.i(52474);var _=e.i(600220),m=e.i(173426),S=e.i(764541),I=e.i(846888),y=e.i(582743),T=e.i(84548),R=e.i(745254),v=e.i(457857),A=e.i(333615),C=e.i(951336);let w=new Set(["pending","running","awaiting_human","blocked"]);function k(e,t){if(!e||"object"!=typeof e)return!1;let r="code"in e?String(e.code||""):"",a="message"in e?String(e.message||"").toLowerCase():"";return("42703"===r||"PGRST204"===r)&&a.includes(t.toLowerCase())}async function M(e,t,r){let a={...r};for(;;){let{error:r}=await e.from("tasks").update(a).eq("id",t);if(!r)return;if("blocked_reason"in a&&k(r,"blocked_reason")){let{blocked_reason:e,...t}=a;a=t;continue}throw r}}async function N(e,t,r,a){let{error:o}=await e.from("execution_graphs").update({execution_state:r,updated_at:a}).eq("id",t);if(o&&!k(o,"execution_state"))throw o}async function O(e){var t;let r,a=await (0,C.getGraph)(e);if(!a)return;let o=await S.db.getTask(e);if(!o)return;let n=(0,I.parseFrontmatter)(String(o.content||"")),i={...n.frontmatter},s=(0,y.resolveMemoryAgentId)({defaultUserId:o.user_id||"system",frontmatter:n.frontmatter}),d=n.body,u=new Date().toISOString(),c=(0,m.createAdminDbClient)(),p=Object.values(a.nodes||{}).some(e=>!!e&&w.has(e.status)),l=!p;if(l&&(t=a,0===(r=Array.isArray(t?.doneCriteria?.completionSinkNodeIds)?t.doneCriteria.completionSinkNodeIds:[]).length?!Object.values(t.nodes||{}).some(e=>e?.status==="failed"):r.every(e=>{let r=t.nodes?.[e]?.status;return"done"===r||"passed"===r}))){i.stage="DONE",i.status="completed","error"in i&&delete i.error;let t=(0,T.buildMarkdownWithFrontmatter)(i,d);await M(c,e,{content:t,stage:"DONE",status:"completed",blocked_reason:null,completed_at:u,updated_at:u}),await N(c,a.id,"done",u);let r={};for(let[e,t]of Object.entries(a.nodes))t?.type==="work"&&t.output&&(r[e]=t.output);(0,y.extractAndStoreMemories)(e,s,{goal:String(o.content||o.title||""),status:"completed",nodeOutputs:r}).catch(e=>console.warn("[verify] Memory extraction failed:",e)),(0,y.extractAndStoreProjectKnowledge)(e,o.project_id||o.project,{goal:String(o.content||o.title||""),status:"completed",nodeOutputs:r}).catch(e=>console.warn("[verify] Project knowledge extraction failed:",e));return}if(l){i.status="failed";let t=(0,T.buildMarkdownWithFrontmatter)(i,d);await M(c,e,{content:t,status:"failed",blocked_reason:null,completed_at:u,updated_at:u}),await N(c,a.id,"done",u);let r={};for(let[e,t]of Object.entries(a.nodes))t?.type==="work"&&t.output&&(r[e]=t.output);(0,y.extractAndStoreMemories)(e,s,{goal:String(o.content||o.title||""),status:"failed",nodeOutputs:r}).catch(e=>console.warn("[verify] Memory extraction failed:",e)),(0,y.extractAndStoreProjectKnowledge)(e,o.project_id||o.project,{goal:String(o.content||o.title||""),status:"failed",nodeOutputs:r}).catch(e=>console.warn("[verify] Project knowledge extraction failed:",e));return}if(p&&!Object.values(a.nodes||{}).some(e=>e?.status==="awaiting_human")){i.status="queued",i.stage="PROGRESS","error"in i&&delete i.error;let t=(0,T.buildMarkdownWithFrontmatter)(i,d);await M(c,e,{content:t,status:"queued",stage:"PROGRESS",blocked_reason:null,completed_at:null,updated_at:u}),await N(c,a.id,"running",u)}}async function b(e,{params:t}){let{id:r,nodeId:a}=await t,o=(0,v.normalizeTaskId)(r),n=(0,v.normalizeNodeId)(a);if(!o||!n)return(0,v.jsonWithSchema)(R.ErrorResponseSchema,{error:"Invalid taskId or nodeId"},{status:400});let i=await (0,v.parseJsonBody)(e,R.VerifyGateRequestSchema);if(!i.ok)return i.response;let s=i.data,d=await (0,A.applyNodeStatusMutation)({request:e,taskId:o,nodeId:n,action:"node_verify",requestedProjectId:s.projectId??s.project_id,ifMatchGraphVersion:s.ifMatchGraphVersion,targetStatus:s.approved?"passed":"failed",reason:s.feedback?.trim()||"gate verification submitted",gateChecks:s.checks??[],consumeVerifyBudget:!0,patch:{completedAt:s.completedAt??new Date().toISOString()}});if(!d.ok||!s.approved)return d;try{await O(o)}catch(e){console.error("Failed to reconcile task after gate approval:",e)}return d}e.s(["POST",0,b],436521);var x=e.i(436521);let D=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/nodes/[nodeId]/verify/route",pathname:"/api/tasks/[id]/nodes/[nodeId]/verify",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/tasks/[id]/nodes/[nodeId]/verify/route.ts",nextConfigOutput:"standalone",userland:x,...{}}),{workAsyncStorage:j,workUnitAsyncStorage:L,serverHooks:F}=D;async function P(e,t,a){a.requestMeta&&(0,o.setRequestMeta)(e,a.requestMeta),D.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/tasks/[id]/nodes/[nodeId]/verify/route";m=m.replace(/\/index$/,"")||"/";let S=await D.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,params:y,nextConfig:T,parsedUrl:R,isDraftMode:v,prerenderManifest:A,routerServerContext:C,isOnDemandRevalidate:w,revalidateOnlyGenerated:k,resolvedPathname:M,clientReferenceManifest:N,serverActionsManifest:O}=S,b=(0,s.normalizeAppPath)(m),x=!!(A.dynamicRoutes[b]||A.routes[M]),j=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,R,!1):t.end("This page could not be found"),null);if(x&&!v){let e=!!A.routes[M],t=A.dynamicRoutes[b];if(t&&!1===t.fallback&&!e){if(T.adapterPath)return await j();throw new f.NoFallbackError}}let L=null;!x||D.isDev||v||(L="/index"===(L=M)?"/":L);let F=!0===D.isDev||!x,P=x&&!F;O&&N&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:N,serverActionsManifest:O});let U=e.method||"GET",q=(0,n.getTracer)(),G=q.getActiveScopeSpan(),H=!!(null==C?void 0:C.isWrappedByNextServer),W=!!(0,o.getRequestMeta)(e,"minimalMode"),V=(0,o.getRequestMeta)(e,"incrementalCache")||await D.getIncrementalCache(e,T,A,W);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let $={params:y,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:F,incrementalCache:V,cacheLifeProfiles:T.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,o)=>D.onRequestError(e,t,a,o,C)},sharedContext:{buildId:I}},B=new d.NodeNextRequest(e),K=new d.NodeNextResponse(t),Y=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let o,i=async e=>D.handle(Y,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),o&&o!==e&&(o.setAttribute("http.route",a),o.updateName(t))}else e.updateName(`${U} ${m}`)}),s=async o=>{var n,s;let d=async({previousCacheEntry:r})=>{try{if(!W&&w&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=$.renderOpts.fetchMetrics;let s=$.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let d=$.renderOpts.collectedTags;if(!x)return await (0,l.sendResponse)(B,K,n,$.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[E.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=E.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,a=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=E.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:_.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 D.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:w})},!1,C),t}},u=await D.handleResponse({req:e,nextConfig:T,cacheKey:L,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:w,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:W});if(!x)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==_.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(s=u.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});W||t.setHeader("x-nextjs-cache",w?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),v&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(u.value.headers);return W&&x||c.delete(E.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,l.sendResponse)(B,K,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};H&&G?await s(G):(o=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(c.BaseServerSpan.handleRequest,{spanName:`${U} ${m}`,kind:n.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},s),void 0,!H))}catch(t){if(t instanceof f.NoFallbackError||await D.onRequestError(e,t,{routerKind:"App Router",routePath:b,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:w})},!1,C),x)throw t;return await (0,l.sendResponse)(B,K,new Response(null,{status:500})),null}}e.s(["handler",0,P,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:L})},"routeModule",0,D,"serverHooks",0,F,"workAsyncStorage",0,j,"workUnitAsyncStorage",0,L],712196)}];
51
56
 
52
57
  //# sourceMappingURL=%5Broot-of-the-server%5D__0unwwyx._.js.map
@@ -126,15 +126,15 @@ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/a
126
126
  FROM linear_runs
127
127
  GROUP BY issue_id`,s=r?t.prepare(a).all(e.trim()):t.prepare(a).all(),n=new Map;for(let e of s)n.set(e.issue_id,new Date(e.last_activity_at).toISOString());return n})}async function g(e){return c(t=>{let r=e?.trim(),a=r?`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
128
128
  FROM linear_runs lr
129
- LEFT JOIN chat_runs cr ON cr.id = (
129
+ INNER JOIN chat_runs cr ON cr.id = (
130
130
  SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
131
131
  )
132
- WHERE (lr.status IN ('queued', 'running') OR cr.status IN ('queued', 'running'))
132
+ WHERE cr.status IN ('queued', 'running')
133
133
  AND lr.project_id = ?`:`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
134
134
  FROM linear_runs lr
135
- LEFT JOIN chat_runs cr ON cr.id = (
135
+ INNER JOIN chat_runs cr ON cr.id = (
136
136
  SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
137
137
  )
138
- WHERE (lr.status IN ('queued', 'running') OR cr.status IN ('queued', 'running'))`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["createLinearRun",0,_,"getIssueActiveAgents",0,g,"getIssueActivityMap",0,h,"getLinearRun",0,E,"listLinearRuns",0,T,"updateLinearRun",0,p])},990633,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),s=e.i(759756),n=e.i(561916),i=e.i(174677),d=e.i(869741),u=e.i(316795),o=e.i(487718),l=e.i(995169),c=e.i(47587),_=e.i(666012),p=e.i(570101),E=e.i(626937),T=e.i(10372),h=e.i(193695);e.i(52474);var g=e.i(600220),m=e.i(89171),N=e.i(11061);function R(e){return"string"==typeof e&&e.trim()?e.trim():null}async function L(e){try{let t=e.nextUrl.searchParams.get("issueId")?.trim(),r=e.nextUrl.searchParams.get("projectId")?.trim()??null,a=e.nextUrl.searchParams.get("limit"),s=a?Number.parseInt(a,10):void 0;if(!t)return m.NextResponse.json({error:"issueId is required"},{status:400});let n=await (0,N.listLinearRuns)({issueId:t,projectId:r,limit:s});return m.NextResponse.json({count:n.length,runs:n})}catch(e){return console.error("Failed to list Linear runs:",e),m.NextResponse.json({error:"Failed to list Linear runs",message:e instanceof Error?e.message:String(e)},{status:500})}}async function I(e){try{var t;let r=await e.json().catch(()=>({})),a=R(r.issueId),s=R(r.issueIdentifier),n=R(r.issueTitle),i=R(r.issueStatus),d=R(r.agentId),u=R(r.agentName);if(!a||!s||!n||!i||!d||!u)return m.NextResponse.json({error:"issueId, issueIdentifier, issueTitle, issueStatus, agentId, and agentName are required"},{status:400});let o=await (0,N.createLinearRun)({projectId:R(r.projectId),projectSlug:R(r.projectSlug),issueId:a,issueIdentifier:s,issueTitle:n,issueStatus:i,issueAssignee:R(r.issueAssignee),agentId:d,agentName:u,mode:(t=r.mode,"scripted"===t?"scripted":"chat")});return m.NextResponse.json({run:o},{status:201})}catch(e){return console.error("Failed to create Linear run:",e),m.NextResponse.json({error:"Failed to create Linear run",message:e instanceof Error?e.message:String(e)},{status:500})}}e.s(["GET",0,L,"POST",0,I,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],449466);var O=e.i(449466);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/linear/runs/route",pathname:"/api/linear/runs",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/linear/runs/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:x,serverHooks:f}=A;async function v(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/linear/runs/route";m=m.replace(/\/index$/,"")||"/";let N=await A.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!N)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:R,params:L,nextConfig:I,parsedUrl:O,isDraftMode:S,prerenderManifest:x,routerServerContext:f,isOnDemandRevalidate:v,revalidateOnlyGenerated:C,resolvedPathname:U,clientReferenceManifest:M,serverActionsManifest:w}=N,y=(0,d.normalizeAppPath)(m),D=!!(x.dynamicRoutes[y]||x.routes[U]),j=async()=>((null==f?void 0:f.render404)?await f.render404(e,t,O,!1):t.end("This page could not be found"),null);if(D&&!S){let e=!!x.routes[U],t=x.dynamicRoutes[y];if(t&&!1===t.fallback&&!e){if(I.adapterPath)return await j();throw new h.NoFallbackError}}let F=null;!D||A.isDev||S||(F="/index"===(F=U)?"/":F);let X=!0===A.isDev||!D,q=D&&!X;w&&M&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:M,serverActionsManifest:w});let P=e.method||"GET",b=(0,n.getTracer)(),H=b.getActiveScopeSpan(),k=!!(null==f?void 0:f.isWrappedByNextServer),G=!!(0,s.getRequestMeta)(e,"minimalMode"),B=(0,s.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,I,x,G);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let W={params:L,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:X,incrementalCache:B,cacheLifeProfiles:I.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>A.onRequestError(e,t,a,s,f)},sharedContext:{buildId:R}},$=new u.NodeNextRequest(e),Y=new u.NodeNextResponse(t),K=o.NextRequestAdapter.fromNodeNextRequest($,(0,o.signalFromNodeResponse)(t));try{let s,i=async e=>A.handle(K,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=b.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.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=`${P} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${P} ${m}`)}),d=async s=>{var n,d;let u=async({previousCacheEntry:r})=>{try{if(!G&&v&&C&&!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=W.renderOpts.fetchMetrics;let d=W.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let u=W.renderOpts.collectedTags;if(!D)return await (0,_.sendResponse)($,Y,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[T.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=T.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=T.INFINITE_CACHE?void 0:W.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:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:v})},!1,f),t}},o=await A.handleResponse({req:e,nextConfig:I,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:v,revalidateOnlyGenerated:C,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:G});if(!D)return null;if((null==o||null==(n=o.value)?void 0:n.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==o||null==(d=o.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",v?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(o.value.headers);return G&&D||l.delete(T.NEXT_CACHE_TAGS_HEADER),!o.cacheControl||t.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,E.getCacheControlHeader)(o.cacheControl)),await (0,_.sendResponse)($,Y,new Response(o.value.body,{headers:l,status:o.value.status||200})),null};k&&H?await d(H):(s=b.getActiveScopeSpan(),await b.withPropagatedContext(e.headers,()=>b.trace(l.BaseServerSpan.handleRequest,{spanName:`${P} ${m}`,kind:n.SpanKind.SERVER,attributes:{"http.method":P,"http.target":e.url}},d),void 0,!k))}catch(t){if(t instanceof h.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:v})},!1,f),D)throw t;return await (0,_.sendResponse)($,Y,new Response(null,{status:500})),null}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:x})},"routeModule",0,A,"serverHooks",0,f,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,x],990633)}];
138
+ WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(a).all(e.trim()):t.prepare(a).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["createLinearRun",0,_,"getIssueActiveAgents",0,g,"getIssueActivityMap",0,h,"getLinearRun",0,E,"listLinearRuns",0,T,"updateLinearRun",0,p])},990633,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),s=e.i(759756),n=e.i(561916),i=e.i(174677),d=e.i(869741),u=e.i(316795),o=e.i(487718),l=e.i(995169),c=e.i(47587),_=e.i(666012),p=e.i(570101),E=e.i(626937),T=e.i(10372),h=e.i(193695);e.i(52474);var g=e.i(600220),m=e.i(89171),N=e.i(11061);function R(e){return"string"==typeof e&&e.trim()?e.trim():null}async function I(e){try{let t=e.nextUrl.searchParams.get("issueId")?.trim(),r=e.nextUrl.searchParams.get("projectId")?.trim()??null,a=e.nextUrl.searchParams.get("limit"),s=a?Number.parseInt(a,10):void 0;if(!t)return m.NextResponse.json({error:"issueId is required"},{status:400});let n=await (0,N.listLinearRuns)({issueId:t,projectId:r,limit:s});return m.NextResponse.json({count:n.length,runs:n})}catch(e){return console.error("Failed to list Linear runs:",e),m.NextResponse.json({error:"Failed to list Linear runs",message:e instanceof Error?e.message:String(e)},{status:500})}}async function L(e){try{var t;let r=await e.json().catch(()=>({})),a=R(r.issueId),s=R(r.issueIdentifier),n=R(r.issueTitle),i=R(r.issueStatus),d=R(r.agentId),u=R(r.agentName);if(!a||!s||!n||!i||!d||!u)return m.NextResponse.json({error:"issueId, issueIdentifier, issueTitle, issueStatus, agentId, and agentName are required"},{status:400});let o=await (0,N.createLinearRun)({projectId:R(r.projectId),projectSlug:R(r.projectSlug),issueId:a,issueIdentifier:s,issueTitle:n,issueStatus:i,issueAssignee:R(r.issueAssignee),agentId:d,agentName:u,mode:(t=r.mode,"scripted"===t?"scripted":"chat")});return m.NextResponse.json({run:o},{status:201})}catch(e){return console.error("Failed to create Linear run:",e),m.NextResponse.json({error:"Failed to create Linear run",message:e instanceof Error?e.message:String(e)},{status:500})}}e.s(["GET",0,I,"POST",0,L,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],449466);var A=e.i(449466);let O=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/linear/runs/route",pathname:"/api/linear/runs",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/linear/runs/route.ts",nextConfigOutput:"standalone",userland:A,...{}}),{workAsyncStorage:S,workUnitAsyncStorage:x,serverHooks:f}=O;async function v(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),O.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/linear/runs/route";m=m.replace(/\/index$/,"")||"/";let N=await O.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!N)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:R,params:I,nextConfig:L,parsedUrl:A,isDraftMode:S,prerenderManifest:x,routerServerContext:f,isOnDemandRevalidate:v,revalidateOnlyGenerated:C,resolvedPathname:U,clientReferenceManifest:M,serverActionsManifest:w}=N,y=(0,d.normalizeAppPath)(m),D=!!(x.dynamicRoutes[y]||x.routes[U]),j=async()=>((null==f?void 0:f.render404)?await f.render404(e,t,A,!1):t.end("This page could not be found"),null);if(D&&!S){let e=!!x.routes[U],t=x.dynamicRoutes[y];if(t&&!1===t.fallback&&!e){if(L.adapterPath)return await j();throw new h.NoFallbackError}}let F=null;!D||O.isDev||S||(F="/index"===(F=U)?"/":F);let X=!0===O.isDev||!D,P=D&&!X;w&&M&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:M,serverActionsManifest:w});let b=e.method||"GET",q=(0,n.getTracer)(),H=q.getActiveScopeSpan(),k=!!(null==f?void 0:f.isWrappedByNextServer),G=!!(0,s.getRequestMeta)(e,"minimalMode"),B=(0,s.getRequestMeta)(e,"incrementalCache")||await O.getIncrementalCache(e,L,x,G);null==B||B.resetRequestCache(),globalThis.__incrementalCache=B;let W={params:I,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!L.experimental.authInterrupts},cacheComponents:!!L.cacheComponents,supportsDynamicResponse:X,incrementalCache:B,cacheLifeProfiles:L.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>O.onRequestError(e,t,a,s,f)},sharedContext:{buildId:R}},$=new u.NodeNextRequest(e),Y=new u.NodeNextResponse(t),K=o.NextRequestAdapter.fromNodeNextRequest($,(0,o.signalFromNodeResponse)(t));try{let s,i=async e=>O.handle(K,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.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=`${b} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${b} ${m}`)}),d=async s=>{var n,d;let u=async({previousCacheEntry:r})=>{try{if(!G&&v&&C&&!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=W.renderOpts.fetchMetrics;let d=W.renderOpts.pendingWaitUntil;d&&a.waitUntil&&(a.waitUntil(d),d=void 0);let u=W.renderOpts.collectedTags;if(!D)return await (0,_.sendResponse)($,Y,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,p.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[T.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=T.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=T.INFINITE_CACHE?void 0:W.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 O.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:v})},!1,f),t}},o=await O.handleResponse({req:e,nextConfig:L,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:v,revalidateOnlyGenerated:C,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:G});if(!D)return null;if((null==o||null==(n=o.value)?void 0:n.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==o||null==(d=o.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",v?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(o.value.headers);return G&&D||l.delete(T.NEXT_CACHE_TAGS_HEADER),!o.cacheControl||t.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,E.getCacheControlHeader)(o.cacheControl)),await (0,_.sendResponse)($,Y,new Response(o.value.body,{headers:l,status:o.value.status||200})),null};k&&H?await d(H):(s=q.getActiveScopeSpan(),await q.withPropagatedContext(e.headers,()=>q.trace(l.BaseServerSpan.handleRequest,{spanName:`${b} ${m}`,kind:n.SpanKind.SERVER,attributes:{"http.method":b,"http.target":e.url}},d),void 0,!k))}catch(t){if(t instanceof h.NoFallbackError||await O.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:v})},!1,f),D)throw t;return await (0,_.sendResponse)($,Y,new Response(null,{status:500})),null}}e.s(["handler",0,v,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:x})},"routeModule",0,O,"serverHooks",0,f,"workAsyncStorage",0,S,"workUnitAsyncStorage",0,x],990633)}];
139
139
 
140
140
  //# sourceMappingURL=%5Broot-of-the-server%5D__0vtkl3q._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},769025,e=>{"use strict";e.s(["pragmaAll",0,function(e,t){return e.prepare(`PRAGMA ${t}`).all()},"pragmaGet",0,function(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let s=Object.values(r);return s.length>0?s[0]:void 0},"pragmaSet",0,function(e,t){e.exec(`PRAGMA ${t}`)},"transaction",0,function(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}},"transactionFn",0,function(e,t){return(...r)=>{e.exec("BEGIN");try{let s=t(...r);return e.exec("COMMIT"),s}catch(t){throw e.exec("ROLLBACK"),t}}}])},193695,(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"))},918622,(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"))},556704,(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"))},832319,(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"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},744071,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])},452377,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(769025),r=e.i(522734),s=e.i(446786),i=e.i(814747);let n="3.35.0",a=["json1"],o=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function u(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}}e.s(["validateSQLiteEnvironment",0,function(d,c){let p=[],f=d.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}(f.v,n)&&p.push({kind:"version_mismatch",message:`SQLite version ${f.v} is below minimum ${n}`,found:f.v,required:`>= ${n}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),a))u(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 o)u(d,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let m=function(t){"linux"!==s.default.platform()&&s.default.platform();try{let n=i.default.resolve(t),{execSync:a}=e.r(233405);if("darwin"===s.default.platform());else{let e=r.default.readFileSync("/proc/mounts","utf-8"),t="",s="unknown";for(let r of e.split("\n")){let[,e,i]=r.split(/\s+/);e&&n.startsWith(e)&&e.length>t.length&&(t=e,s=i||"unknown")}return s}}catch{}return null}(c);m&&l.some(e=>m.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${c}' is on a network filesystem (${m})`,path:c,found:m,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(d,"journal_mode = wal"),(0,t.pragmaSet)(d,"foreign_keys = 1"),(0,t.pragmaSet)(d,"busy_timeout = 5000"),(0,t.pragmaSet)(d,"synchronous = 1"),(0,t.pragmaSet)(d,"cache_size = -64000");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(d,"journal_mode = DELETE");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(d,"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}])},173426,e=>{"use strict";e.s(["createAdminDbClient",0,function(){let{createAdminDbClientSQLite:t}=e.r(779429);return t()}])},391310,e=>{"use strict";var t=e.i(846888),r=e.i(566453),s=e.i(744071);async function i(){let e=await (0,t.getAgents)(s.LOCAL_USER.id),i=new Map,n=new Map;return await Promise.all(e.map(async e=>{i.set(e.id,await (0,t.getAgentSkills)(e.id)),n.set(e.id,await (0,r.getAgentSkillBindings)(e.id))})),e.map(e=>({id:e.id,name:e.name,...e.title?{title:e.title}:{},provider:e.provider||"claude",model:e.model||null,color:e.color||"#6B7280",...e.description?{identity:e.description}:{},...e.voice?{voice:e.voice}:{},...e.seed?{seed:e.seed}:{},...i.get(e.id)?.length?{skills:i.get(e.id).map(e=>({file:e.file,condition:e.condition??""}))}:{},...n.get(e.id)?.length?{skillBindings:n.get(e.id)}:{}}))}e.s(["filterActiveParticipants",0,function(e,t){if(!Array.isArray(t))return e;let r=new Set,s=[];for(let e of t){if("string"!=typeof e)continue;let t=e.trim();!t||r.has(t)||(r.add(t),s.push(t))}let i=new Set(s),n=e.filter(e=>i.has(e.id));if(s.length>0&&0===n.length)return e;let a=new Map(s.map((e,t)=>[e,t]));return n.sort((e,t)=>(a.get(e.id)??Number.MAX_SAFE_INTEGER)-(a.get(t.id)??Number.MAX_SAFE_INTEGER))},"loadDbParticipants",0,i])}];
1
+ module.exports=[500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},769025,e=>{"use strict";e.s(["pragmaAll",0,function(e,t){return e.prepare(`PRAGMA ${t}`).all()},"pragmaGet",0,function(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let s=Object.values(r);return s.length>0?s[0]:void 0},"pragmaSet",0,function(e,t){e.exec(`PRAGMA ${t}`)},"transaction",0,function(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}},"transactionFn",0,function(e,t){return(...r)=>{e.exec("BEGIN");try{let s=t(...r);return e.exec("COMMIT"),s}catch(t){throw e.exec("ROLLBACK"),t}}}])},193695,(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"))},918622,(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"))},556704,(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"))},832319,(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"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},744071,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])},452377,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(769025),r=e.i(522734),s=e.i(446786),i=e.i(814747);let n="3.35.0",a=["json1"],o=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function u(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}}e.s(["validateSQLiteEnvironment",0,function(d,c){let p=[],f=d.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}(f.v,n)&&p.push({kind:"version_mismatch",message:`SQLite version ${f.v} is below minimum ${n}`,found:f.v,required:`>= ${n}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),a))u(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 o)u(d,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let m=function(t){"linux"!==s.default.platform()&&s.default.platform();try{let n=i.default.resolve(t),{execSync:a}=e.r(233405);if("darwin"===s.default.platform());else{let e=r.default.readFileSync("/proc/mounts","utf-8"),t="",s="unknown";for(let r of e.split("\n")){let[,e,i]=r.split(/\s+/);e&&n.startsWith(e)&&e.length>t.length&&(t=e,s=i||"unknown")}return s}}catch{}return null}(c);m&&l.some(e=>m.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${c}' is on a network filesystem (${m})`,path:c,found:m,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(d,"journal_mode = wal"),(0,t.pragmaSet)(d,"foreign_keys = 1"),(0,t.pragmaSet)(d,"busy_timeout = 5000"),(0,t.pragmaSet)(d,"synchronous = 1"),(0,t.pragmaSet)(d,"cache_size = -64000");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(d,"journal_mode = DELETE");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(d,"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}])},173426,e=>{"use strict";e.s(["createAdminDbClient",0,function(){let{createAdminDbClientSQLite:t}=e.r(779429);return t()}])},391310,e=>{"use strict";var t=e.i(846888),r=e.i(566453),s=e.i(744071);async function i(){let e=await (0,t.getAgents)(s.LOCAL_USER.id),i=new Map,n=new Map;return await Promise.all(e.map(async e=>{i.set(e.id,await (0,t.getAgentSkills)(e.id)),n.set(e.id,await (0,r.getAgentSkillBindings)(e.id))})),e.map(e=>({id:e.id,name:e.name,...e.role?{role:e.role}:{},provider:e.provider||"claude",model:e.model||null,color:e.color||"#6B7280",...e.description?{identity:e.description}:{},...e.voice?{voice:e.voice}:{},...e.seed?{seed:e.seed}:{},...i.get(e.id)?.length?{skills:i.get(e.id).map(e=>({file:e.file,condition:e.condition??""}))}:{},...n.get(e.id)?.length?{skillBindings:n.get(e.id)}:{}}))}e.s(["filterActiveParticipants",0,function(e,t){if(!Array.isArray(t))return e;let r=new Set,s=[];for(let e of t){if("string"!=typeof e)continue;let t=e.trim();!t||r.has(t)||(r.add(t),s.push(t))}let i=new Set(s),n=e.filter(e=>i.has(e.id));if(s.length>0&&0===n.length)return e;let a=new Map(s.map((e,t)=>[e,t]));return n.sort((e,t)=>(a.get(e.id)??Number.MAX_SAFE_INTEGER)-(a.get(t.id)??Number.MAX_SAFE_INTEGER))},"loadDbParticipants",0,i])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__0x6w64i._.js.map
@@ -26,7 +26,12 @@ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/pro
26
26
  FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),d=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
27
  FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),s=e.query(`SELECT event_type, payload, timestamp
28
28
  FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of o.rows)u[e.node_id]=function(e){let t={...l(p(e.config)),type:e.type,status:e.status},r=p(e.metrics);null!==r&&(t.metrics=r);let i=p(e.output);return null!==i&&(t.output=i),t}(e);let _=d.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:p(e.condition)}:{},...e.data_mapping?{dataMapping:p(e.data_mapping)}:{}})),E=[],g=[];for(let e of s.rows){let t=h(e);n.has(t.eventType)?E.push(t):g.push(t)}var T={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,executionState:r.execution_state??void 0,nodes:u,edges:_,policy:p(r.policy)??{},doneCriteria:p(r.done_criteria)??{},schedule:p(r.schedule)??void 0,versionHistory:E,runtimeEvents:g,createdAt:c(r.created_at),updatedAt:c(r.updated_at)};if(!(0,a.isAutomationFrontmatterEnabled)())return T;let m=(0,a.getAutomationRepository)().getAutomation(T.id);return m&&"execution_graph"===m.definition.target.type?{...T,schedule:(0,i.automationRecordToGraphSchedule)(m,T.schedule)}:T}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
- VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}}let f=new m;function S(e){return f.getGraph(e)}e.s(["GraphNodeNotFoundError",0,d,"GraphStore",0,m,"GraphTaskAlreadyBoundError",0,s,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return f.appendEvent(e,t)},"createGraph",0,function(e,t){return f.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let i=0;if((0,a.isAutomationFrontmatterEnabled)()){for(let e of(0,a.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??E(t);if(!r)continue;let a=S(r);a?.schedule&&(f.updateGraphStructure(a.id,{mode:a.mode,nodes:a.nodes,edges:a.edges,policy:a.policy,doneCriteria:a.doneCriteria,schedule:{...a.schedule,state:"stopped",tickInProgress:!1}},a.graphVersion),i+=1)}if(i>0||!(0,a.isAutomationDualReadEnabled)())return i}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}claimScheduleTick(e){return(this.getDb().prepare(`UPDATE execution_graphs
30
+ SET schedule = json_set(schedule, '$.tickInProgress', json('true')),
31
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
+ WHERE task_id = ?
33
+ AND json_extract(schedule, '$.tickInProgress') = 0
34
+ AND json_extract(schedule, '$.state') = 'active'`).run(e).changes??0)>0}}let f=new m;function S(e){return f.getGraph(e)}e.s(["GraphNodeNotFoundError",0,d,"GraphStore",0,m,"GraphTaskAlreadyBoundError",0,s,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return f.appendEvent(e,t)},"createGraph",0,function(e,t){return f.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let i=0;if((0,a.isAutomationFrontmatterEnabled)()){for(let e of(0,a.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??E(t);if(!r)continue;let a=S(r);a?.schedule&&(f.updateGraphStructure(a.id,{mode:a.mode,nodes:a.nodes,edges:a.edges,policy:a.policy,doneCriteria:a.doneCriteria,schedule:{...a.schedule,state:"stopped",tickInProgress:!1}},a.graphVersion),i+=1)}if(i>0||!(0,a.isAutomationDualReadEnabled)())return i}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
30
35
  SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
31
36
  updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
37
  WHERE schedule IS NOT NULL
@@ -1,7 +1,7 @@
1
- module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},951336,e=>{"use strict";var t=e.i(779429),r=e.i(769025);e.i(508241);var o=e.i(72777),n=e.i(716279);let a=new Set(["replan","rollback"]);class i extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class s extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class d extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function u(e){return null==e?null:JSON.stringify(e)}function l(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function p(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function c(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,n.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,n.getAutomationRepository)(),r=(0,o.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function m(e){let r=e.trim();if(!r)return null;let o=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
1
+ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},951336,e=>{"use strict";var t=e.i(779429),r=e.i(769025);e.i(508241);var o=e.i(72777),n=e.i(716279);let a=new Set(["replan","rollback"]);class i extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class s extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class d extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function u(e){return null==e?null:JSON.stringify(e)}function l(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function c(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function p(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,n.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,n.getAutomationRepository)(),r=(0,o.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function m(e){let r=e.trim();if(!r)return null;let o=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
2
2
  FROM execution_graphs
3
3
  WHERE id = ?
4
- LIMIT 1`).get(r);return o?.taskId??null}function h(e){let{type:t,status:r,metrics:o,output:n,...a}=e;return{type:t,status:r,config:a,output:n??null,metrics:o??null}}function f(e){let t={...c(l(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=p(e.timestamp)),t}function _(e){return{query(t,r){let o=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(o.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:o.all(...(r??[]).map(e=>e))}}}}class y{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let o=this.getDb(),n=_(o);t?.skipTaskBinding&&(0,r.pragmaSet)(o,"foreign_keys = OFF");try{return(0,r.transaction)(o,()=>{let r=n.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new d(e.taskId,r.id);for(let[t,r]of(n.query(`INSERT INTO execution_graphs
4
+ LIMIT 1`).get(r);return o?.taskId??null}function h(e){let{type:t,status:r,metrics:o,output:n,...a}=e;return{type:t,status:r,config:a,output:n??null,metrics:o??null}}function f(e){let t={...p(l(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=c(e.timestamp)),t}function _(e){return{query(t,r){let o=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(o.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:o.all(...(r??[]).map(e=>e))}}}}class y{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let o=this.getDb(),n=_(o);t?.skipTaskBinding&&(0,r.pragmaSet)(o,"foreign_keys = OFF");try{return(0,r.transaction)(o,()=>{let r=n.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new d(e.taskId,r.id);for(let[t,r]of(n.query(`INSERT INTO execution_graphs
5
5
  (id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at)
6
6
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
7
7
  ON CONFLICT (id) DO UPDATE SET
@@ -14,19 +14,24 @@ module.exports=[924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/pro
14
14
  created_at = excluded.created_at,
15
15
  updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,u(e.policy),u(e.doneCriteria),u(e.schedule??null),e.createdAt,e.updatedAt]),n.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),n.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let o=h(r);n.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
16
16
  VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,o.type,o.status,u(o.config),u(o.output),u(o.metrics)])}for(let t of e.edges)n.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
17
- VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,u(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(n,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(n,e.id,t);t?.skipTaskBinding||n.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let o=this.getGraphForTask(n,e.taskId);if(!o)throw new i(e.id);return g(o),o})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(o,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(_(t),e)}updateNodeRuntime(e,t,o){let n=this.getDb(),a=_(n);return(0,r.transaction)(n,()=>{if(!a.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new i(e);let r=Object.keys(t);if(0===r.length){let t=a.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:p(t.rows[0].updated_at)}}let o=r.map(()=>"?").join(", "),n=a.query(`SELECT node_id, type, status, config, output, metrics
18
- FROM graph_nodes WHERE graph_id = ? AND node_id IN (${o})`,[e,...r]),d=new Map;for(let e of n.rows)d.set(e.node_id,e);let g=r.filter(e=>!d.has(e));if(g.length>0)throw new s(e,g);for(let o of r){let r=t[o],n=d.get(o);if(!n||!r)continue;let i={...c(l(n.config)),...c(r.configPatch)};void 0!==r.startedAt&&(i.startedAt=r.startedAt),void 0!==r.completedAt&&(i.completedAt=r.completedAt),void 0!==r.actualMinutes&&(i.actualMinutes=r.actualMinutes),a.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
19
- WHERE graph_id = ? AND node_id = ?`,[r.status??n.status,u(r.metrics??l(n.metrics)),u(r.output??l(n.output)),u(i),e,o])}let m=a.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:m.rows[0].graph_version,updatedAt:p(m.rows[0].updated_at)}})}updateGraphStructure(e,t,o){let n=this.getDb(),a=_(n);return(0,r.transaction)(n,()=>{let r=a.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new i(e);if(t.nodes)for(let[r,o]of(a.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=h(o);a.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
17
+ VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,u(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(n,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(n,e.id,t);t?.skipTaskBinding||n.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let o=this.getGraphForTask(n,e.taskId);if(!o)throw new i(e.id);return g(o),o})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(o,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(_(t),e)}updateNodeRuntime(e,t,o){let n=this.getDb(),a=_(n);return(0,r.transaction)(n,()=>{if(!a.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new i(e);let r=Object.keys(t);if(0===r.length){let t=a.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:c(t.rows[0].updated_at)}}let o=r.map(()=>"?").join(", "),n=a.query(`SELECT node_id, type, status, config, output, metrics
18
+ FROM graph_nodes WHERE graph_id = ? AND node_id IN (${o})`,[e,...r]),d=new Map;for(let e of n.rows)d.set(e.node_id,e);let g=r.filter(e=>!d.has(e));if(g.length>0)throw new s(e,g);for(let o of r){let r=t[o],n=d.get(o);if(!n||!r)continue;let i={...p(l(n.config)),...p(r.configPatch)};void 0!==r.startedAt&&(i.startedAt=r.startedAt),void 0!==r.completedAt&&(i.completedAt=r.completedAt),void 0!==r.actualMinutes&&(i.actualMinutes=r.actualMinutes),a.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
19
+ WHERE graph_id = ? AND node_id = ?`,[r.status??n.status,u(r.metrics??l(n.metrics)),u(r.output??l(n.output)),u(i),e,o])}let m=a.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:m.rows[0].graph_version,updatedAt:c(m.rows[0].updated_at)}})}updateGraphStructure(e,t,o){let n=this.getDb(),a=_(n);return(0,r.transaction)(n,()=>{let r=a.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new i(e);if(t.nodes)for(let[r,o]of(a.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=h(o);a.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
20
20
  VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,u(t.config),u(t.output),u(t.metrics)])}if(t.edges)for(let r of(a.query("DELETE FROM graph_edges WHERE graph_id = ?",[e]),t.edges))a.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
21
21
  VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,u(r.dataMapping??null)]);let o=a.query(`UPDATE execution_graphs
22
22
  SET mode = ?, policy = ?, done_criteria = ?, schedule = ?, updated_at = datetime('now')
23
23
  WHERE id = ?
24
- RETURNING graph_version, updated_at`,[t.mode??r.mode,u(t.policy??l(r.policy)??{}),u(t.doneCriteria??l(r.done_criteria)??{}),u(t.schedule??l(r.schedule)??null),e]);if(void 0!==t.schedule){let e=this.getGraphForTask(a,r.task_id);e?.schedule&&g(e)}return{graphVersion:o.rows[0].graph_version,updatedAt:p(o.rows[0].updated_at)}})}appendEvent(e,t){let r=this.getDb();this.appendEventInternal(_(r),e,t)}getGraphForTask(e,t){let r=e.query(`SELECT id, task_id, graph_version, mode, execution_state, policy, done_criteria, schedule, created_at, updated_at
24
+ RETURNING graph_version, updated_at`,[t.mode??r.mode,u(t.policy??l(r.policy)??{}),u(t.doneCriteria??l(r.done_criteria)??{}),u(t.schedule??l(r.schedule)??null),e]);if(void 0!==t.schedule){let e=this.getGraphForTask(a,r.task_id);e?.schedule&&g(e)}return{graphVersion:o.rows[0].graph_version,updatedAt:c(o.rows[0].updated_at)}})}appendEvent(e,t){let r=this.getDb();this.appendEventInternal(_(r),e,t)}getGraphForTask(e,t){let r=e.query(`SELECT id, task_id, graph_version, mode, execution_state, policy, done_criteria, schedule, created_at, updated_at
25
25
  FROM execution_graphs WHERE task_id = ? ORDER BY updated_at DESC LIMIT 1`,[t]).rows[0];if(!r)return null;let i=e.query(`SELECT node_id, type, status, config, output, metrics
26
26
  FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),s=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
27
  FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),d=e.query(`SELECT event_type, payload, timestamp
28
- FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of i.rows)u[e.node_id]=function(e){let t={...c(l(e.config)),type:e.type,status:e.status},r=l(e.metrics);null!==r&&(t.metrics=r);let o=l(e.output);return null!==o&&(t.output=o),t}(e);let g=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:l(e.condition)}:{},...e.data_mapping?{dataMapping:l(e.data_mapping)}:{}})),m=[],h=[];for(let e of d.rows){let t=f(e);a.has(t.eventType)?m.push(t):h.push(t)}var _={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,executionState:r.execution_state??void 0,nodes:u,edges:g,policy:l(r.policy)??{},doneCriteria:l(r.done_criteria)??{},schedule:l(r.schedule)??void 0,versionHistory:m,runtimeEvents:h,createdAt:p(r.created_at),updatedAt:p(r.updated_at)};if(!(0,n.isAutomationFrontmatterEnabled)())return _;let y=(0,n.getAutomationRepository)().getAutomation(_.id);return y&&"execution_graph"===y.definition.target.type?{..._,schedule:(0,o.automationRecordToGraphSchedule)(y,_.schedule)}:_}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
- VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}}let E=new y;function w(e){return E.getGraph(e)}e.s(["GraphNodeNotFoundError",0,s,"GraphStore",0,y,"GraphTaskAlreadyBoundError",0,d,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return E.appendEvent(e,t)},"createGraph",0,function(e,t){return E.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let o=0;if((0,n.isAutomationFrontmatterEnabled)()){for(let e of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(!r)continue;let n=w(r);n?.schedule&&(E.updateGraphStructure(n.id,{mode:n.mode,nodes:n.nodes,edges:n.edges,policy:n.policy,doneCriteria:n.doneCriteria,schedule:{...n.schedule,state:"stopped",tickInProgress:!1}},n.graphVersion),o+=1)}if(o>0||!(0,n.isAutomationDualReadEnabled)())return o}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
28
+ FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of i.rows)u[e.node_id]=function(e){let t={...p(l(e.config)),type:e.type,status:e.status},r=l(e.metrics);null!==r&&(t.metrics=r);let o=l(e.output);return null!==o&&(t.output=o),t}(e);let g=s.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:l(e.condition)}:{},...e.data_mapping?{dataMapping:l(e.data_mapping)}:{}})),m=[],h=[];for(let e of d.rows){let t=f(e);a.has(t.eventType)?m.push(t):h.push(t)}var _={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,executionState:r.execution_state??void 0,nodes:u,edges:g,policy:l(r.policy)??{},doneCriteria:l(r.done_criteria)??{},schedule:l(r.schedule)??void 0,versionHistory:m,runtimeEvents:h,createdAt:c(r.created_at),updatedAt:c(r.updated_at)};if(!(0,n.isAutomationFrontmatterEnabled)())return _;let y=(0,n.getAutomationRepository)().getAutomation(_.id);return y&&"execution_graph"===y.definition.target.type?{..._,schedule:(0,o.automationRecordToGraphSchedule)(y,_.schedule)}:_}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}claimScheduleTick(e){return(this.getDb().prepare(`UPDATE execution_graphs
30
+ SET schedule = json_set(schedule, '$.tickInProgress', json('true')),
31
+ updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
+ WHERE task_id = ?
33
+ AND json_extract(schedule, '$.tickInProgress') = 0
34
+ AND json_extract(schedule, '$.state') = 'active'`).run(e).changes??0)>0}}let E=new y;function w(e){return E.getGraph(e)}e.s(["GraphNodeNotFoundError",0,s,"GraphStore",0,y,"GraphTaskAlreadyBoundError",0,d,"GraphVersionConflictError",0,class extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}},"appendEvent",0,function(e,t){return E.appendEvent(e,t)},"createGraph",0,function(e,t){return E.createGraph(e,t)},"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let o=0;if((0,n.isAutomationFrontmatterEnabled)()){for(let e of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??m(t);if(!r)continue;let n=w(r);n?.schedule&&(E.updateGraphStructure(n.id,{mode:n.mode,nodes:n.nodes,edges:n.edges,policy:n.policy,doneCriteria:n.doneCriteria,schedule:{...n.schedule,state:"stopped",tickInProgress:!1}},n.graphVersion),o+=1)}if(o>0||!(0,n.isAutomationDualReadEnabled)())return o}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
30
35
  SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
31
36
  updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
32
37
  WHERE schedule IS NOT NULL
@@ -80,13 +85,13 @@ Rules:
80
85
  - Do not wrap in markdown code blocks. Just raw JSON.`;async function l(e){let t=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),o=`${d}
81
86
 
82
87
  Task:
83
- ${t}`,n="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:o,onDelta:e=>{n+=e}})}catch(e){return console.warn("[memory-extractor] LLM call failed:",e),[]}var a=n;let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!Array.isArray(e))return[];return e.filter(e=>"object"==typeof e&&null!==e&&s.has(e.memory_type)&&"string"==typeof e.content&&e.content.trim().length>0).slice(0,3)}catch{return console.warn("[memory-extractor] Failed to parse LLM response:",i.slice(0,200)),[]}}let p=new Set(["outcome","decision","pattern","gotcha"]),c=["agent_id","agentId","agent","participant_id","participantId","assigned_agent","assignedAgent"];function g(e){return"string"!=typeof e?null:e.trim()||null}async function m(e,r,n){let i=(0,o.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
84
- VALUES (?, ?, ?, ?, ?, ?, ?)`),s=0,d=Date.now();for(let o of n){if(!p.has(o.memory_type)||!o.content?.trim())continue;let n=(0,t.createHash)("sha256").update(o.content.trim()).digest("hex");i.run((0,t.randomUUID)(),r,e,o.memory_type,o.content.trim(),n,d).changes>0&&s++}return s>0&&a(n.map(t=>({scope:"agent",subjectId:r,sourceType:"task_completion",sourceId:e,kind:t.memory_type,title:t.content.trim().slice(0,80),body:t.content.trim(),confidence:.7,durability:.6,metadata:{task_id:e}}))),s}async function h(e,t,r){let o=await l(r);if(0===o.length)return;let n=await m(e,t,o);n>0&&console.log(`[memory-extractor] Stored ${n} memories for task ${e}`)}async function f(e){let t=g(e);if(!t)return null;if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t))return t;let r=(0,o.getSQLiteDb)().prepare("SELECT id FROM projects WHERE slug = ? LIMIT 1").get(t);return r?.id??null}async function _(e,t){let o=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),n=`${u}
88
+ ${t}`,n="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:o,onDelta:e=>{n+=e}})}catch(e){return console.warn("[memory-extractor] LLM call failed:",e),[]}var a=n;let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!Array.isArray(e))return[];return e.filter(e=>"object"==typeof e&&null!==e&&s.has(e.memory_type)&&"string"==typeof e.content&&e.content.trim().length>0).slice(0,3)}catch{return console.warn("[memory-extractor] Failed to parse LLM response:",i.slice(0,200)),[]}}let c=new Set(["outcome","decision","pattern","gotcha"]),p=["agent_id","agentId","agent","participant_id","participantId","assigned_agent","assignedAgent"];function g(e){return"string"!=typeof e?null:e.trim()||null}async function m(e,r,n){let i=(0,o.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
89
+ VALUES (?, ?, ?, ?, ?, ?, ?)`),s=0,d=Date.now();for(let o of n){if(!c.has(o.memory_type)||!o.content?.trim())continue;let n=(0,t.createHash)("sha256").update(o.content.trim()).digest("hex");i.run((0,t.randomUUID)(),r,e,o.memory_type,o.content.trim(),n,d).changes>0&&s++}return s>0&&a(n.map(t=>({scope:"agent",subjectId:r,sourceType:"task_completion",sourceId:e,kind:t.memory_type,title:t.content.trim().slice(0,80),body:t.content.trim(),confidence:.7,durability:.6,metadata:{task_id:e}}))),s}async function h(e,t,r){let o=await l(r);if(0===o.length)return;let n=await m(e,t,o);n>0&&console.log(`[memory-extractor] Stored ${n} memories for task ${e}`)}async function f(e){let t=g(e);if(!t)return null;if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t))return t;let r=(0,o.getSQLiteDb)().prepare("SELECT id FROM projects WHERE slug = ? LIMIT 1").get(t);return r?.id??null}async function _(e,t){let o=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),n=`${u}
85
90
 
86
91
  Current note:
87
92
  ${t||"(empty)"}
88
93
 
89
94
  Task:
90
- ${o}`,a="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:n,onDelta:e=>{a+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!e||"object"!=typeof e||Array.isArray(e))return[];let t="string"==typeof e.updated_note?e.updated_note.trim():"";if(e.no_change||!t)return[];return[{updated_note:t,change_summary:"string"==typeof e.change_summary?e.change_summary.trim():void 0,no_change:!1}]}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",i.slice(0,200)),[]}}async function y(e,t,r){if(0===r.length)return 0;let o=r[0];return o&&o.updated_note?.trim()?+!!(0,i.upsertKnowledgeNote)({scope:"project",subjectId:e,content:o.updated_note.trim(),changeSummary:o.change_summary,sourceType:"task_completion",sourceId:t,metadata:{task_id:t}}).changed:0}async function E(e,t,r){let o=await f(t);if(!o)return;let n=await _(r,(0,i.getKnowledgeNote)("project",o)?.content??"");if(0===n.length)return;let a=await y(o,e,n);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}e.s(["extractAndStoreMemories",0,h,"extractAndStoreProjectKnowledge",0,E,"resolveMemoryAgentId",0,function(e){let t=g(e.explicitAgentId);if(t)return t;let r=e.frontmatter||{};for(let e of c){let t=g(r[e]);if(t)return t}return g(e.defaultUserId)||"system"}],582743)},689303,e=>{"use strict";var t=e.i(488877);e.s(["listResolvedRepoKnowledge",0,function(e){let r=[];for(let o of e){if(!o.id){let e=String(o.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:o.name,path:o.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",o.id),n=e?.content.trim()||String(o.notes??"").trim();n&&r.push({repoId:o.id,repoName:o.name,path:o.path??null,content:n,producer:"human"})}return r}])},323218,e=>{"use strict";var t=e.i(254799),r=e.i(173426),o=e.i(779429),n=e.i(689303),a=e.i(33878),i=e.i(488877),s=e.i(582743),d=e.i(846888);async function u(e){let t=(0,r.createAdminDbClient)(),{data:o,error:n}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n){let e="string"==typeof n.message?n.message:"";if("42P01"===n.code||"PGRST205"===n.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw n}return o||[]}async function l(e){let t=(0,r.createAdminDbClient)(),o=e.user_id,n=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);o&&n.eq("user_id",o);let[{data:a,error:s}]=await Promise.all([n]);if(s)throw s;return{task:a||[],project:[],global:i.vaultStore.getLearnings("global")||[]}}async function p(e){let t,o=e.stage;if(!o)return{prompt:null};let n=(0,r.createAdminDbClient)(),a=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!a&&e.project_id)try{let t=await (0,d.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(a=t.workflow_id)}catch{}a||(a=d.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await n.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",o).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,o=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:o};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:o}}}catch{}try{let t=[];t.push(n.from("stage_prompts").select("*").eq("stage",o).eq("is_default",!0).eq("workflow_id",a).maybeSingle()),e.user_id&&t.push(n.from("stage_prompts").select("*").eq("stage",o).eq("user_id",e.user_id).eq("workflow_id",a).maybeSingle());let r=await Promise.all(t),i=r[0]?.data||null,s=e.user_id?r[1]?.data:null,d=s?.prompt||i?.prompt||null;if(d)return{prompt:d,swarm:s?.swarm??i?.swarm??!1,provider:s?.provider||i?.provider,model:s?.model||i?.model,swarm_models:s?.swarm_models||i?.swarm_models}}catch{}let i=d.defaultStagePrompts[o];return i?.prompt?{prompt:i.prompt,swarm:i.swarm??!1,provider:i.provider,model:i.model,swarm_models:i.swarm_models}:{prompt:null}}async function c(e,t){let r=e.project_id,o=e.project||void 0,i=null;if(r&&(i=await (0,d.getProjectWithRepos)(r,e.user_id)),!i&&o){let t=await (0,d.getProjectBySlug)(o,e.user_id);if(t){let e=await (0,d.getProjectRepos)(t.id);i={...t,repos:e}}}if(!i)return null;let s=await (0,d.getProjectMemory)(i.id,"human"),u=(0,a.getKnowledgeNote)("project",i.id);if(i.repos.length>0){let e=(0,n.listResolvedRepoKnowledge)(i.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,o=t.get(r.repoId)??[];o.push(e),t.set(r.repoId,o)}i={...i,repos:i.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:i,repos:i.repos??[],learnings:[...s.map(e=>e.content),...u?.content?[`[System-generated] ${u.content}`]:[]]}}async function g(e){let r,[n,a,i,g]=await Promise.all([u(e.id),l(e),p(e),e.user_id?(0,d.getUserSettings)(e.user_id):Promise.resolve(null)]),m=await c(e,a.project),{frontmatter:h}=(0,d.parseFrontmatter)(e.content),f=(0,s.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:h}),_=h.no_memory?[]:function(e,t=5){try{return(0,o.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(f),y=(r=JSON.stringify(n.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),E="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",w=i.prompt??null,v={};if(w&&E){v[E]=w;let e=E.toLowerCase();v[e]||(v[e]=w)}let S=w&&E?[{stage:E,prompt:w}]:[];return{comments:n,learnings:a,agent_memories:_,stage_config:i,stage_prompt:w,stage_prompts:v,stage_objective:w,stageObjective:w,stagePrompts:S,project_context:m,comments_digest:y,user_settings:g}}e.s(["buildTaskContext",0,g])},703329,550201,e=>{"use strict";function t(e,t){if(void 0===e)return t;let r=e.trim().toLowerCase();return"1"===r||"true"===r||"yes"===r||"on"===r||"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r&&t}function r(){return t(process.env.AGX_GRAPH_PARITY_LOGGING,!0)}e.s(["isDualWriteEnabled",0,function(){return t(process.env.AGX_GRAPH_DUAL_WRITE,!0)},"isParityLoggingEnabled",0,r,"isV2ReadPathEnabled",0,function(){return!t(process.env.AGX_GRAPH_READ_PATH_KILL_SWITCH,!1)&&"v2"===(process.env.AGX_GRAPH_READ_PATH_MODE||"v1").trim().toLowerCase()}],550201);let o=new Set(["done","passed","failed","skipped"]),n=new Set(["running","awaiting_human","blocked"]),a=new Set(["done","passed","skipped"]);function i(e,t){let r=String(e||"").trim().toUpperCase();return"INTAKE"===r||"PROGRESS"===r||"DONE"===r?r:t}function s(e){let t,r=Object.values(e.nodes);if(0===r.length)return"queued";let i=r.filter(e=>"gate"===e.type&&e.required).every(e=>"passed"===e.status||"skipped"===e.status);return 0!==(t=e.doneCriteria?.completionSinkNodeIds??[]).length&&t.every(t=>{let r=e.nodes[t];return!!(r&&a.has(r.status))})&&i||r.every(e=>o.has(e.status))&&i?"completed":r.some(e=>"failed"===e.status)?"failed":r.some(e=>"blocked"===e.status)?"blocked":r.some(e=>n.has(e.status))||r.filter(e=>"done"===e.status||"passed"===e.status).length>0?"in_progress":"queued"}function d(e,t="INTAKE"){let r,n,a=s(e),i="completed"===(r=s(e))?"DONE":"in_progress"===r||"blocked"===r||"failed"===r?"PROGRESS":t,u="completed"===a?100:0===(n=Object.values(e.nodes)).length?0:Math.max(0,Math.min(100,Math.round(n.filter(e=>o.has(e.status)).length/n.length*100)));return{status:a,stage:i,progressPercent:u}}e.s(["logParityDiff",0,function(e){var t;let o,n,a,s,u,l=(t={taskId:e.task.id,source:e.source,legacy:{status:e.task.status,stage:e.task.stage,progressPercent:e.legacyProgressPercent??null},v2:d(e.graph,i(e.task.stage||"INTAKE","INTAKE"))},n=[],a="queued"===(o=String(t.legacy.status||"").trim().toLowerCase())||"in_progress"===o||"blocked"===o||"completed"===o||"failed"===o?o:"queued",s=i(t.legacy.stage,"INTAKE"),u=Number.isFinite(Number(t.legacy.progressPercent))?Number(t.legacy.progressPercent):null,(a!==t.v2.status&&n.push({field:"status",legacy:a,v2:t.v2.status}),s!==t.v2.stage&&n.push({field:"stage",legacy:s,v2:t.v2.stage}),null!==u&&u!==t.v2.progressPercent&&n.push({field:"progressPercent",legacy:u,v2:t.v2.progressPercent}),0===n.length)?null:{taskId:t.taskId,source:t.source,diffs:n});return l&&r()&&console.warn("[graph-parity-diff]",JSON.stringify(l)),l},"projectLegacyCompatFromGraph",0,d],703329)},574749,e=>{"use strict";var t=e.i(846888),r=e.i(550201),o=e.i(703329),n=e.i(951336);function a(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 i(e){if(a(e.depends_on).length||"string"!=typeof e?.content)return e;let{frontmatter:r}=(0,t.parseFrontmatter)(e.content||""),o=a(r.depends_on);return o.length?{...e,depends_on:o}:e}function s(e){return"blocked"!==e.status||e.blocked_reason||e.stage&&"intake"!==e.stage.toLowerCase()?e.blocked_reason:"Awaiting approval"}async function d(e){if(!(0,r.isV2ReadPathEnabled)())return{...i(e),blocked_reason:s(e),read_path_source:"v1"};try{let t=await (0,n.getGraph)(e.id);if(!t)return{...i(e),read_path_source:"v1"};let r=(0,o.projectLegacyCompatFromGraph)(t,e.stage||"INTAKE"),a="queued"===r.status&&e.status&&"queued"!==e.status?e.status:r.status,d="completed"===a?"DONE":r.stage;(0,o.logParityDiff)({source:"read_path",task:e,graph:t});let u={...i(e),status:a,stage:d};return{...u,blocked_reason:s(u),read_path_source:"v2"}}catch(t){return console.error("Failed to project task from v2 graph; using v1 compatibility mode",t),{...i(e),read_path_source:"v1"}}}async function u(e){return Promise.all(e.map(e=>d(e)))}e.s(["projectTaskReadModel",0,d,"projectTaskReadModels",0,u])}];
95
+ ${o}`,a="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:n,onDelta:e=>{a+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!e||"object"!=typeof e||Array.isArray(e))return[];let t="string"==typeof e.updated_note?e.updated_note.trim():"";if(e.no_change||!t)return[];return[{updated_note:t,change_summary:"string"==typeof e.change_summary?e.change_summary.trim():void 0,no_change:!1}]}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",i.slice(0,200)),[]}}async function y(e,t,r){if(0===r.length)return 0;let o=r[0];return o&&o.updated_note?.trim()?+!!(0,i.upsertKnowledgeNote)({scope:"project",subjectId:e,content:o.updated_note.trim(),changeSummary:o.change_summary,sourceType:"task_completion",sourceId:t,metadata:{task_id:t}}).changed:0}async function E(e,t,r){let o=await f(t);if(!o)return;let n=await _(r,(0,i.getKnowledgeNote)("project",o)?.content??"");if(0===n.length)return;let a=await y(o,e,n);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}e.s(["extractAndStoreMemories",0,h,"extractAndStoreProjectKnowledge",0,E,"resolveMemoryAgentId",0,function(e){let t=g(e.explicitAgentId);if(t)return t;let r=e.frontmatter||{};for(let e of p){let t=g(r[e]);if(t)return t}return g(e.defaultUserId)||"system"}],582743)},689303,e=>{"use strict";var t=e.i(488877);e.s(["listResolvedRepoKnowledge",0,function(e){let r=[];for(let o of e){if(!o.id){let e=String(o.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:o.name,path:o.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",o.id),n=e?.content.trim()||String(o.notes??"").trim();n&&r.push({repoId:o.id,repoName:o.name,path:o.path??null,content:n,producer:"human"})}return r}])},323218,e=>{"use strict";var t=e.i(254799),r=e.i(173426),o=e.i(779429),n=e.i(689303),a=e.i(33878),i=e.i(488877),s=e.i(582743),d=e.i(846888);async function u(e){let t=(0,r.createAdminDbClient)(),{data:o,error:n}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n){let e="string"==typeof n.message?n.message:"";if("42P01"===n.code||"PGRST205"===n.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw n}return o||[]}async function l(e){let t=(0,r.createAdminDbClient)(),o=e.user_id,n=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);o&&n.eq("user_id",o);let[{data:a,error:s}]=await Promise.all([n]);if(s)throw s;return{task:a||[],project:[],global:i.vaultStore.getLearnings("global")||[]}}async function c(e){let t,o=e.stage;if(!o)return{prompt:null};let n=(0,r.createAdminDbClient)(),a=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!a&&e.project_id)try{let t=await (0,d.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(a=t.workflow_id)}catch{}a||(a=d.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await n.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",o).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,o=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:o};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:o}}}catch{}try{let t=[];t.push(n.from("stage_prompts").select("*").eq("stage",o).eq("is_default",!0).eq("workflow_id",a).maybeSingle()),e.user_id&&t.push(n.from("stage_prompts").select("*").eq("stage",o).eq("user_id",e.user_id).eq("workflow_id",a).maybeSingle());let r=await Promise.all(t),i=r[0]?.data||null,s=e.user_id?r[1]?.data:null,d=s?.prompt||i?.prompt||null;if(d)return{prompt:d,swarm:s?.swarm??i?.swarm??!1,provider:s?.provider||i?.provider,model:s?.model||i?.model,swarm_models:s?.swarm_models||i?.swarm_models}}catch{}let i=d.defaultStagePrompts[o];return i?.prompt?{prompt:i.prompt,swarm:i.swarm??!1,provider:i.provider,model:i.model,swarm_models:i.swarm_models}:{prompt:null}}async function p(e,t){let r=e.project_id,o=e.project||void 0,i=null;if(r&&(i=await (0,d.getProjectWithRepos)(r,e.user_id)),!i&&o){let t=await (0,d.getProjectBySlug)(o,e.user_id);if(t){let e=await (0,d.getProjectRepos)(t.id);i={...t,repos:e}}}if(!i)return null;let s=await (0,d.getProjectMemory)(i.id,"human"),u=(0,a.getKnowledgeNote)("project",i.id);if(i.repos.length>0){let e=(0,n.listResolvedRepoKnowledge)(i.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,o=t.get(r.repoId)??[];o.push(e),t.set(r.repoId,o)}i={...i,repos:i.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:i,repos:i.repos??[],learnings:[...s.map(e=>e.content),...u?.content?[`[System-generated] ${u.content}`]:[]]}}async function g(e){let r,[n,a,i,g]=await Promise.all([u(e.id),l(e),c(e),e.user_id?(0,d.getUserSettings)(e.user_id):Promise.resolve(null)]),m=await p(e,a.project),{frontmatter:h}=(0,d.parseFrontmatter)(e.content),f=(0,s.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:h}),_=h.no_memory?[]:function(e,t=5){try{return(0,o.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(f),y=(r=JSON.stringify(n.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),E="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",w=i.prompt??null,v={};if(w&&E){v[E]=w;let e=E.toLowerCase();v[e]||(v[e]=w)}let S=w&&E?[{stage:E,prompt:w}]:[];return{comments:n,learnings:a,agent_memories:_,stage_config:i,stage_prompt:w,stage_prompts:v,stage_objective:w,stageObjective:w,stagePrompts:S,project_context:m,comments_digest:y,user_settings:g}}e.s(["buildTaskContext",0,g])},703329,550201,e=>{"use strict";function t(e,t){if(void 0===e)return t;let r=e.trim().toLowerCase();return"1"===r||"true"===r||"yes"===r||"on"===r||"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r&&t}function r(){return t(process.env.AGX_GRAPH_PARITY_LOGGING,!0)}e.s(["isDualWriteEnabled",0,function(){return t(process.env.AGX_GRAPH_DUAL_WRITE,!0)},"isParityLoggingEnabled",0,r,"isV2ReadPathEnabled",0,function(){return!t(process.env.AGX_GRAPH_READ_PATH_KILL_SWITCH,!1)&&"v2"===(process.env.AGX_GRAPH_READ_PATH_MODE||"v1").trim().toLowerCase()}],550201);let o=new Set(["done","passed","failed","skipped"]),n=new Set(["running","awaiting_human","blocked"]),a=new Set(["done","passed","skipped"]);function i(e,t){let r=String(e||"").trim().toUpperCase();return"INTAKE"===r||"PROGRESS"===r||"DONE"===r?r:t}function s(e){let t,r=Object.values(e.nodes);if(0===r.length)return"queued";let i=r.filter(e=>"gate"===e.type&&e.required).every(e=>"passed"===e.status||"skipped"===e.status);return 0!==(t=e.doneCriteria?.completionSinkNodeIds??[]).length&&t.every(t=>{let r=e.nodes[t];return!!(r&&a.has(r.status))})&&i||r.every(e=>o.has(e.status))&&i?"completed":r.some(e=>"failed"===e.status)?"failed":r.some(e=>"blocked"===e.status)?"blocked":r.some(e=>n.has(e.status))||r.filter(e=>"done"===e.status||"passed"===e.status).length>0?"in_progress":"queued"}function d(e,t="INTAKE"){let r,n,a=s(e),i="completed"===(r=s(e))?"DONE":"in_progress"===r||"blocked"===r||"failed"===r?"PROGRESS":t,u="completed"===a?100:0===(n=Object.values(e.nodes)).length?0:Math.max(0,Math.min(100,Math.round(n.filter(e=>o.has(e.status)).length/n.length*100)));return{status:a,stage:i,progressPercent:u}}e.s(["logParityDiff",0,function(e){var t;let o,n,a,s,u,l=(t={taskId:e.task.id,source:e.source,legacy:{status:e.task.status,stage:e.task.stage,progressPercent:e.legacyProgressPercent??null},v2:d(e.graph,i(e.task.stage||"INTAKE","INTAKE"))},n=[],a="queued"===(o=String(t.legacy.status||"").trim().toLowerCase())||"in_progress"===o||"blocked"===o||"completed"===o||"failed"===o?o:"queued",s=i(t.legacy.stage,"INTAKE"),u=Number.isFinite(Number(t.legacy.progressPercent))?Number(t.legacy.progressPercent):null,(a!==t.v2.status&&n.push({field:"status",legacy:a,v2:t.v2.status}),s!==t.v2.stage&&n.push({field:"stage",legacy:s,v2:t.v2.stage}),null!==u&&u!==t.v2.progressPercent&&n.push({field:"progressPercent",legacy:u,v2:t.v2.progressPercent}),0===n.length)?null:{taskId:t.taskId,source:t.source,diffs:n});return l&&r()&&console.warn("[graph-parity-diff]",JSON.stringify(l)),l},"projectLegacyCompatFromGraph",0,d],703329)},574749,e=>{"use strict";var t=e.i(846888),r=e.i(550201),o=e.i(703329),n=e.i(951336);function a(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 i(e){if(a(e.depends_on).length||"string"!=typeof e?.content)return e;let{frontmatter:r}=(0,t.parseFrontmatter)(e.content||""),o=a(r.depends_on);return o.length?{...e,depends_on:o}:e}function s(e){return"blocked"!==e.status||e.blocked_reason||e.stage&&"intake"!==e.stage.toLowerCase()?e.blocked_reason:"Awaiting approval"}async function d(e){if(!(0,r.isV2ReadPathEnabled)())return{...i(e),blocked_reason:s(e),read_path_source:"v1"};try{let t=await (0,n.getGraph)(e.id);if(!t)return{...i(e),read_path_source:"v1"};let r=(0,o.projectLegacyCompatFromGraph)(t,e.stage||"INTAKE"),a="queued"===r.status&&e.status&&"queued"!==e.status?e.status:r.status,d="completed"===a?"DONE":r.stage;(0,o.logParityDiff)({source:"read_path",task:e,graph:t});let u={...i(e),status:a,stage:d};return{...u,blocked_reason:s(u),read_path_source:"v2"}}catch(t){return console.error("Failed to project task from v2 graph; using v1 compatibility mode",t),{...i(e),read_path_source:"v1"}}}async function u(e){return Promise.all(e.map(e=>d(e)))}e.s(["projectTaskReadModel",0,d,"projectTaskReadModels",0,u])}];
91
96
 
92
97
  //# sourceMappingURL=%5Broot-of-the-server%5D__0zrv3p3._.js.map