@mndrk/agx 2.0.32 → 2.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +3 -4
  35. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +3 -3
  39. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/app-paths-manifest.json +3 -0
  54. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/build-manifest.json +11 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/server-reference-manifest.json +4 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +8 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.map +5 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route_client-reference-manifest.js +2 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +2 -2
  71. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +3 -2
  75. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +4 -3
  99. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +6 -6
  101. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +2 -3
  105. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +2 -3
  107. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +3 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  111. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +4 -4
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +2 -2
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +5 -5
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +6 -6
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +6 -6
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +3 -3
  173. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +3 -3
  175. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  182. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  183. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  187. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  189. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  190. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  191. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  195. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
  201. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  207. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  208. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  214. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  218. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  225. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  226. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  227. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  229. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  230. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  240. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  244. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  245. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  247. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  249. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  253. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  254. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  256. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  258. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  260. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  263. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  264. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  265. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  266. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  267. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  269. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  270. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  271. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  272. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +1 -0
  273. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +80 -0
  274. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0b3b6a47._.js +51 -0
  275. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__86f7d27b._.js → [root-of-the-server]__18423486._.js} +2 -2
  276. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dede3dcd._.js → [root-of-the-server]__19520d85._.js} +1 -1
  277. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__399b2ca9._.js → [root-of-the-server]__1c18c0d1._.js} +2 -2
  278. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +3 -0
  279. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +42 -0
  280. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6e59b27c._.js → [root-of-the-server]__32b13ba9._.js} +2 -2
  281. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1dd062c1._.js → [root-of-the-server]__3c1567b6._.js} +2 -2
  282. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__29ce9c60._.js → [root-of-the-server]__3c37453e._.js} +2 -2
  283. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__507a4363._.js → [root-of-the-server]__3faa64cd._.js} +2 -2
  284. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +80 -0
  285. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e446cb39._.js → [root-of-the-server]__4837d72a._.js} +2 -2
  286. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__10940c29._.js → [root-of-the-server]__49c03d66._.js} +2 -2
  287. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b40c7aab._.js → [root-of-the-server]__4a8d14c1._.js} +2 -2
  288. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__75bff965._.js → [root-of-the-server]__4c861686._.js} +2 -2
  289. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d8c6e3d._.js +58 -0
  290. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +1 -1
  291. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__94fa1edc._.js → [root-of-the-server]__588b6ab0._.js} +2 -2
  292. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ccfcbcd5._.js → [root-of-the-server]__5a348fba._.js} +2 -2
  293. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9dfaaf72._.js → [root-of-the-server]__61c99680._.js} +2 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c08bef05._.js → [root-of-the-server]__6acb940d._.js} +2 -2
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98535eb3._.js → [root-of-the-server]__7e79d86a._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c187704._.js → [root-of-the-server]__7ffcc20c._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5634f17._.js → [root-of-the-server]__875279cb._.js} +1 -1
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13677d96._.js → [root-of-the-server]__8b0ab82f._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5b93200._.js → [root-of-the-server]__8b461158._.js} +2 -2
  300. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +80 -0
  301. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +80 -0
  302. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e6ad07c3._.js → [root-of-the-server]__a67cd108._.js} +2 -2
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d8cedc8a._.js → [root-of-the-server]__abb032c1._.js} +2 -2
  304. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b3ed0a00._.js +46 -0
  305. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b63cb741._.js +63 -0
  306. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2388b2b3._.js → [root-of-the-server]__b9b3fde6._.js} +2 -2
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f4b70b67._.js → [root-of-the-server]__be4ad4b5._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +80 -0
  309. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5ca87ba0._.js → [root-of-the-server]__c480c9c2._.js} +2 -2
  310. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +79 -0
  311. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c99509c2._.js +101 -0
  312. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +1 -1
  313. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d6e1ee6e._.js +32 -0
  314. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__80655727._.js → [root-of-the-server]__e069c0a3._.js} +2 -2
  315. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5a2358a._.js → [root-of-the-server]__e1e51c02._.js} +2 -2
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__12afd8a3._.js → [root-of-the-server]__ef82dda1._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +25 -0
  318. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1b7932f._.js +36 -0
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d318eb0._.js → [root-of-the-server]__f701b208._.js} +24 -24
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2e596cc8._.js → [root-of-the-server]__fee58db1._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffffceac._.js +6 -0
  322. package/cloud-runtime/standalone/.next/server/chunks/_5462a047._.js +3 -0
  323. package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +57 -0
  324. package/cloud-runtime/standalone/.next/server/chunks/_c965f7b3._.js +3 -0
  325. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
  326. package/cloud-runtime/standalone/.next/server/chunks/{_3e0d34cc._.js → _d22934ab._.js} +24 -24
  327. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_knowledge-notes_route_actions_0ddf6109.js +3 -0
  328. package/cloud-runtime/standalone/.next/server/chunks/lib_7cad5c77._.js +64 -0
  329. package/cloud-runtime/standalone/.next/server/chunks/lib_87c06aeb._.js +25 -0
  330. package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
  331. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +1 -1
  332. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +45 -37
  333. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +45 -37
  334. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +12 -12
  335. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a8a8afdc._.js → [root-of-the-server]__04d1aa70._.js} +2 -2
  336. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9166c1d6._.js → [root-of-the-server]__2d80540b._.js} +2 -2
  337. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ffa2883._.js +1 -1
  338. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +1 -1
  339. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1322ced8._.js → [root-of-the-server]__a416df95._.js} +2 -2
  340. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__783669c3._.js → [root-of-the-server]__c108f06c._.js} +2 -2
  341. package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +1 -1
  342. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_0f4e70b1._.js → _41f60c52._.js} +2 -2
  343. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6b14826d._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6fc3736e._.js → _84879a01._.js} +2 -2
  345. package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +1 -1
  346. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_ff5799d6._.js → _9eeb2fa0._.js} +2 -2
  347. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_68ac991e._.js → _a1d30b20._.js} +2 -2
  348. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_5b2b8a85._.js → _c87c359c._.js} +2 -2
  349. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_fb292eed._.js → _dd31b6e0._.js} +2 -2
  350. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6de3f1de._.js → _f0ce6183._.js} +2 -2
  351. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +1 -1
  352. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bf855424._.js +3 -0
  355. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +1 -0
  356. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  357. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  358. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  359. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  360. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  361. package/cloud-runtime/standalone/.next/static/chunks/{a66e1891e808a664.js → 012e3e9699415997.js} +1 -1
  362. package/cloud-runtime/standalone/.next/static/chunks/031d99fbe758545a.js +1 -0
  363. package/cloud-runtime/standalone/.next/static/chunks/{87f099ea02aa419d.js → 116985039c24f1f8.js} +9 -9
  364. package/cloud-runtime/standalone/.next/static/chunks/2ee8d24314eec47c.js +1 -0
  365. package/cloud-runtime/standalone/.next/static/chunks/3a55441b018d52e4.js +1 -0
  366. package/cloud-runtime/standalone/.next/static/chunks/{cd308f61797939cd.js → 43f6157bc3db9c52.js} +2 -2
  367. package/cloud-runtime/standalone/.next/static/chunks/{58025a80caa3629d.js → 56a01238098d495d.js} +9 -9
  368. package/cloud-runtime/standalone/.next/static/chunks/{6fbe08eab578c7d3.js → 601996727991149e.js} +9 -9
  369. package/cloud-runtime/standalone/.next/static/chunks/851b1d97179bd39b.css +1 -0
  370. package/cloud-runtime/standalone/.next/static/chunks/90b581e9631d8cea.js +1 -0
  371. package/cloud-runtime/standalone/.next/static/chunks/b22947e6df238fd5.js +1 -0
  372. package/cloud-runtime/standalone/.next/static/chunks/{4200b512bdc226bc.js → b2dcd19ebe3af3f6.js} +9 -9
  373. package/cloud-runtime/standalone/.next/static/chunks/{e62d5fa120fdf21f.js → bc06988336ffd261.js} +1 -1
  374. package/cloud-runtime/standalone/.next/static/chunks/{1f415d0ce7ebbd08.js → c93b9643c81c134e.js} +1 -1
  375. package/cloud-runtime/standalone/.next/static/chunks/{88e24940a5d5d386.js → d78cc7d749043fef.js} +1 -1
  376. package/cloud-runtime/standalone/.next/static/chunks/ebaf4e8f04bae7b6.js +1 -0
  377. package/cloud-runtime/standalone/.next/static/chunks/f4909e7ae8229b1c.js +1 -0
  378. package/cloud-runtime/standalone/.next/static/chunks/fd221a50082e5128.js +1 -0
  379. package/cloud-runtime/standalone/app/api/chat/route.ts +36 -0
  380. package/cloud-runtime/standalone/app/api/knowledge-notes/route.ts +53 -0
  381. package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +210 -26
  382. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +62 -41
  383. package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +19 -9
  384. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +33 -28
  385. package/cloud-runtime/standalone/hooks/useGroupChat.ts +4 -0
  386. package/cloud-runtime/standalone/hooks/useProcessPolling.ts +4 -3
  387. package/cloud-runtime/standalone/hooks/useThreadState.ts +10 -2
  388. package/cloud-runtime/standalone/lib/cli-runner.ts +212 -14
  389. package/cloud-runtime/standalone/lib/db.ts +1 -1
  390. package/cloud-runtime/standalone/lib/debug-log.ts +48 -0
  391. package/cloud-runtime/standalone/lib/history-store.ts +78 -2
  392. package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +51 -0
  393. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +6 -0
  394. package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +117 -2
  395. package/cloud-runtime/standalone/transcri +0 -0
  396. package/cloud-runtime/standalone/worker/index.js +604 -165
  397. package/lib/cli/runCli.js +0 -97
  398. package/lib/commands/update.js +159 -17
  399. package/package.json +1 -1
  400. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +0 -46
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +0 -29
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +0 -52
  403. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +0 -55
  404. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +0 -20
  405. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +0 -52
  406. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +0 -67
  407. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +0 -8
  408. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +0 -52
  409. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4dc25d71._.js +0 -18
  410. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +0 -52
  411. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +0 -52
  412. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +0 -52
  413. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +0 -25
  414. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e45a2a1d._.js +0 -3
  415. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +0 -15
  416. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +0 -3
  417. package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +0 -57
  418. package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +0 -57
  419. package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +0 -18
  420. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +0 -3
  421. package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +0 -3
  422. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +0 -3
  423. package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +0 -1
  424. package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +0 -1
  425. package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +0 -1
  426. package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +0 -1
  427. package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +0 -1
  428. package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +0 -1
  429. package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +0 -1
  430. package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +0 -1
  431. package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +0 -1
  432. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_buildManifest.js +0 -0
  433. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_clientMiddlewareManifest.json +0 -0
  434. /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_ssgManifest.js +0 -0
@@ -0,0 +1,25 @@
1
+ module.exports=[37269,e=>{"use strict";var t=e.i(22734),r=e.i(46786),n=e.i(14747);let s=process.env.AGX_DATA_DIR||n.default.join(r.default.homedir(),".agx"),i=process.env.AGX_DEBUG_LOG_PATH||n.default.join(s,"logs","desktop-chat-debug.log");function l(e,t){return t instanceof Error?{name:t.name,message:t.message,stack:t.stack}:"string"==typeof t&&t.length>2e3?`${t.slice(0,2e3)}...<truncated>`:t}function a(){return i}function o(e,r){try{t.default.mkdirSync(n.default.dirname(i),{recursive:!0});let s=JSON.stringify({ts:new Date().toISOString(),pid:process.pid,event:e,...r?{payload:r}:{}},l);t.default.appendFileSync(i,`${s}
2
+ `,"utf8")}catch{}}e.s(["getDebugLogPath",()=>a,"writeDebugLog",()=>o])},14350,e=>{"use strict";var t=e.i(33405),r=e.i(22734),n=e.i(14747),s=e.i(37269);let i=e=>"string"==typeof e&&e.trim().length>0,l=e=>{try{return 0===(0,t.spawnSync)("bash",["-lc",`command -v ${e} >/dev/null 2>&1`],{encoding:"utf8"}).status}catch{return!1}},a=e=>({push:e,flush:()=>{}}),o=e=>{let t="",r=0,n=!1,s=t=>{let s=t.trim();if(s)try{let t=JSON.parse(s);n=!0;let l=(e=>{if(!e||"object"!=typeof e)return"";if("assistant"===e.type)return(Array.isArray(e?.message?.content)?e.message.content:[]).flatMap(e=>e?.type==="text"&&i(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&i(t?.delta?.text)?t.delta.text:""})(t);if(!l||t?.type==="assistant"&&r>0)return;r+=l.length,e(l)}catch{n||e(`${t}
3
+ `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;s(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&s(t),t=""}}},u=e=>{let t="",r=!1,n="",s=t=>{let s=t.trim();if(s)try{let t=JSON.parse(s);r=!0,t?.type==="message"&&t?.role==="assistant"&&i(t?.content)&&((t,r)=>{if(t){if(r){if(n&&t.startsWith(n)){let r=t.slice(n.length);r&&e(r),n=t;return}e(t),n+=t;return}if(n&&t.startsWith(n)){let r=t.slice(n.length);r&&e(r),n=t;return}n||(e(t),n=t)}})(t.content,t?.delta===!0)}catch{r||e(`${t}
4
+ `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;s(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&s(t),t=""}}},c=e=>{let t="",r=!1,n=new Set,s=t=>{let s=t.trim();if(s)try{let t=JSON.parse(s);if(r=!0,t?.type==="item.completed"&&i(t?.item?.id)){if(n.has(t.item.id))return;n.add(t.item.id)}let l=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&i(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&i(t.delta?.text)?t.delta.text:"":"";l&&e(l)}catch{r||e(`${t}
5
+ `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;s(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&s(t),t=""}}},d=e=>{let t="",r=!1,n=[/^Thinking\.\.\./,/^<think>/i],s=[/\.\.\.done thinking\.?\s*/,/<\/think>/i];return{push:i=>{t+=i,(()=>{for(;t.length>0;){if(r){let e=-1,n=0;for(let r of s){let s=t.match(r);s&&void 0!==s.index&&(s.index,s[0].length,(-1===e||s.index<e)&&(e=s.index,n=s[0].length))}if(-1!==e){t=t.slice(e+n),r=!1,t=t.replace(/^\s*\n*/,"");continue}return}for(let s of n){let n=t.match(s);if(n&&void 0!==n.index){let s=t.slice(0,n.index);s&&e.push(s),t=t.slice(n.index+n[0].length),r=!0;break}}if(r)continue;let i=Math.max(0,t.length-30);i>0&&(e.push(t.slice(0,i)),t=t.slice(i));return}})()},flush:()=>{!r&&t&&e.push(t),t="",e.flush()}}},p=new Set(["claude","gemini","ollama","codex"]);function m(){let e=process.env.AGX_CLI_PATH?.trim();if(e&&r.default.existsSync(e))return e;for(let e of[n.default.resolve(process.cwd(),"..","cli","index.js"),n.default.resolve("/ROOT/lib","..","cli","index.js"),n.default.resolve(process.execPath,"..","..","Resources","cli","index.js")])if(r.default.existsSync(e))return e;return null}function g({provider:e,model:t,prompt:r,systemPrompt:n,passthroughArgs:s},i={}){let a=i.commandExists??l,o=void 0===i.bundledCliPath?m():i.bundledCliPath,u=[],c=n?`${n}
6
+
7
+ ${r}`:r;if(p.has(e)){let r=function({provider:e,model:t,prompt:r,cliPath:n,passthroughArgs:s}){let i=void 0===n?m():n;if(!i)return null;let l=[i,e,"-y","--print","--prompt",r];return t&&l.push("--model",t),s&&s.length>0&&l.push("--",...s),{command:process.execPath,args:l,parser:"raw"}}({provider:e,model:t,prompt:c,cliPath:o,passthroughArgs:s});return r&&u.push(r),a("agx")&&u.push(function({provider:e,model:t,prompt:r,passthroughArgs:n}){let s=[e,"-y","--print","--prompt",r];return t&&s.push("--model",t),n&&n.length>0&&s.push("--",...n),{command:"agx",args:s,parser:"raw"}}({provider:e,model:t,prompt:c,passthroughArgs:s})),u}let d=function({provider:e,model:t,prompt:r,systemPrompt:n}){switch(e){case"claude":{let e=["-p","--verbose","--output-format","stream-json","--include-partial-messages"];return t&&e.push("--model",t),n&&e.push("--system-prompt",n),e.push(r),{command:"claude",args:e,parser:"claude-stream-json"}}case"gemini":return{command:"gemini",args:["--yolo","-p",n?`${n}
8
+
9
+ ${r}`:r,"-o","stream-json"],parser:"gemini-stream-json"};case"ollama":return{command:"ollama",args:["run",t||"llama3.2",n?`${n}
10
+
11
+ ${r}`:r],parser:"raw"};case"codex":{let e=["exec","--json"];return t&&e.push("--model",t),e.push(n?`${n}
12
+
13
+ ${r}`:r),{command:"codex",args:e,parser:"codex-json"}}case"zai":{let e=process.env.ZAI_API_KEY?.trim(),s=["-p","--verbose","--output-format","stream-json","--include-partial-messages"];return t&&s.push("--model",t),n&&s.push("--system-prompt",n),s.push(r),{command:"claude",args:s,parser:"claude-stream-json",env:{ANTHROPIC_BASE_URL:"https://api.z.ai/api/anthropic",...e?{ANTHROPIC_AUTH_TOKEN:e}:{}}}}default:return null}}({provider:e,model:t,prompt:r,systemPrompt:n});return d&&a(d.command)&&u.push(d),u}async function f({command:e,args:r,timeoutMs:n,signal:i,onDelta:l,onLog:a,onSpawn:o,env:u}){await new Promise((c,d)=>{(0,s.writeDebugLog)("cli-runner.spawn",{command:e,args:r,timeoutMs:n,bundledCliPath:m(),isElectron:process.env.AGX_ELECTRON||null}),a&&a("stderr",`$ ${e} ${r.map(e=>e.length>80?e.slice(0,80)+"…":e).join(" ")}
14
+ `);let p=(0,t.spawn)(e,r,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0,...u}}),g=!1,f="",h=!1,x=e=>{g||(g=!0,clearTimeout(v),i&&i.removeEventListener("abort",y),e?d(e):c())},y=()=>{(0,s.writeDebugLog)("cli-runner.abort",{command:e,args:r,pid:p.pid??null}),p.kill("SIGTERM"),x(Error("Chat request aborted."))};i&&i.addEventListener("abort",y,{once:!0}),o&&p.pid&&o(p.pid),(0,s.writeDebugLog)("cli-runner.spawned",{command:e,args:r,pid:p.pid??null});let v=setTimeout(()=>{h=!0,(0,s.writeDebugLog)("cli-runner.timeout",{command:e,args:r,pid:p.pid??null,timeoutMs:n}),p.kill("SIGKILL"),x(Error(`CLI request timed out after ${n}ms.`))},n);p.stdout.on("data",e=>{let t=e.toString();f+=t,l(t),a&&a("stdout",t)}),p.stderr.on("data",e=>{let t=e.toString();f+=t,a&&a("stderr",t)}),p.on("error",t=>{(0,s.writeDebugLog)("cli-runner.process_error",{command:e,args:r,pid:p.pid??null,error:t}),x(t)}),p.on("close",(t,n)=>{if(!g&&!h){if((0,s.writeDebugLog)("cli-runner.close",{command:e,args:r,pid:p.pid??null,code:t??null,signal:n??null}),0===t)return void x();x(Error(`CLI command failed (exit=${t??"unknown"} signal=${n??"none"}).${f.trim()?` ${f.trim()}`:""}`))}})})}async function h({provider:e,model:t,prompt:r,identity:n,self:i,skills:l,systemContext:p,passthroughArgs:h,signal:x,onDelta:y,onLog:v,onSpawn:b}){let w,$,L,E,_=(w=!1,$=!1,L="",E=/^(?:```|~~~|#{1,6}\s|>\s|[-*+]\s|\d+\.\s)/,e=>{let t=e.replace(/\u001B\[[0-9;]*[A-Za-z]/g,"").replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n");if(!t.trim())return t.includes("\n")&&!w?(w=!0,"\n"):"";let r=w?t.replace(/^\n+/,"\n"):t,n=r.trimStart(),s=E.test(n),i=$&&s&&!w,l=$&&!w&&!i&&!/^\s/.test(r)&&/[.!?)]/.test(L)&&/^[A-Z0-9`(]/.test(r),a=i?`
15
+
16
+ ${r}`:l?`
17
+ ${r}`:r;w=a.endsWith("\n"),$=$||a.trim().length>0;let o=a.replace(/\s+$/g,"");return o.length>0&&(L=o[o.length-1]??L),a}),j=e=>{let t=_(e);t&&y(t)},A=[];p&&A.push(p),n&&A.push(`<identity>
18
+ ${n}
19
+ </identity>`),i&&A.push(`<self>
20
+ ${i}
21
+ </self>`),l&&A.push(`<skills>
22
+ ${l}
23
+ </skills>`);let S=g({provider:e,model:t,prompt:r,systemPrompt:A.length>0?A.join("\n\n"):void 0,passthroughArgs:h});if(0===S.length)throw(0,s.writeDebugLog)("cli-runner.no_attempts",{provider:e,model:t,bundledCliPath:m(),isElectron:process.env.AGX_ELECTRON||null}),Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let C=null;for(let r of S){(0,s.writeDebugLog)("cli-runner.attempt",{provider:e,model:t,command:r.command,args:r.args,parser:r.parser});let n="claude-stream-json"===r.parser?o(j):"codex-json"===r.parser?c(j):"gemini-stream-json"===r.parser?u(j):a(j),i=r.filterThoughts?d(n):n;try{await f({command:r.command,args:r.args,timeoutMs:6e5,signal:x,onDelta:i.push,onLog:v,onSpawn:b,env:r.env}),i.flush(),(0,s.writeDebugLog)("cli-runner.success",{provider:e,model:t,command:r.command});return}catch(n){C=n instanceof Error?n:Error(String(n)),(0,s.writeDebugLog)("cli-runner.failure",{provider:e,model:t,command:r.command,error:C})}}throw C||Error("CLI execution failed.")}e.s(["buildCliAttempts",()=>g,"runCliResponse",()=>h],14350)}];
24
+
25
+ //# sourceMappingURL=lib_87c06aeb._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[62294,12592,e=>{"use strict";var t=e.i(57431);let r="Waiting on dependencies",i=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class n extends Error{}function o(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>i.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function a(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,i="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||i.includes(`relation "${t}" does not exist`)||i.includes(`Could not find the table 'agx.${t}'`)||i.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new n(`Missing relation: ${e}`);throw t}async function l(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(n&&await a("notification_webhooks",n),i)?(Array.isArray(i)?i:[i]).map(o):[]}async function s(e){if(!e.userId)return;let t=[];try{t=await l(e.userId)}catch(e){if(e instanceof n)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let i=e.timestamp||new Date().toISOString(),o={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:i,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",()=>s],12592);var d=e.i(54799);function c(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function u(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(c(n,"user_settings"))return null;throw n}return i||null}async function f(e,r,i){let n=i?.onlyIfNewer!==!1,o=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),a=await u(e);if(n&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(o);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let l={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:o},s=(0,t.createAdminDbClient)(),{error:d}=await s.from("user_settings").upsert(l,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function p(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(22734),r=e.r(14747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));o=n(i?.defaultProvider)||null}catch{}let a=n(i?.default_provider)||o||"claude",l=n(t.provider)||n(r?.provider)||a,s=n(i?.models?.[l])||null,d=n(t.model)||n(r?.model)||s||null;return{provider:l,model:d,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}}function m(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function w(e,t){let r=m(e);for(let i=0;i<5;i++){let{data:i,error:n}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(n)throw n;if(!i||0===i.length)return r;let o=Math.random().toString(36).slice(2,6);r=`${m(e)}-${o}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function _(e,t,r,i){let n=m(e);for(let o=0;o<5;o++){let o=r.from("projects").select("id").eq("slug",n).eq("user_id",t);i&&(o=o.neq("id",i));let{data:a,error:l}=await o.limit(1);if(l)throw l;if(!a||0===a.length)return n;let s=Math.random().toString(36).slice(2,6);n=`${m(e)}-${s}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function g(e){return e??(0,t.createAdminDbClient)()}function k(e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e||"").trim()).filter(Boolean)}catch{}return t.split(",").map(e=>e.trim()).filter(Boolean)}function y(e){let t;if(!e)return[];if(Array.isArray(e))t=e.map(e=>"string"==typeof e?e:null==e?"":String(e)).filter(Boolean);else{if("string"!=typeof e)return[];t=k(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function h(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if("depends_on"===i){r[i]=k(n);continue}"true"===n?r[i]=!0:"false"===n?r[i]=!1:/^\d+$/.test(n)?r[i]=parseInt(n):r[i]=n}}return{frontmatter:r,body:t[2]}}async function b(e,t,r){if(!e||!t?.length)return;let i=g(r),n=new Set,o=[...t];for(;o.length;){let t=o.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(n.has(t))continue;n.add(t);let{data:r,error:a}=await i.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(a){if("PGRST116"===a.code||"42703"===a.code)continue;throw a}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!n.has(e)&&o.push(e)}}function j(e){let{body:t}=h(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function v(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function q(e,i){var n;let o=Array.isArray(e.depends_on)?e.depends_on:[];if(!o.length)return;let a=(0,t.createAdminDbClient)(),{data:l,error:s}=await a.from("tasks").select("id, title, slug, status, stage").in("id",o);if(s)return;let d=(Array.isArray(l)?l:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.stage?.toLowerCase()==="intake"?" (awaiting approval)":e.status?` (${e.status})`:null)??""}`),i=`${r}: ${t.join(", ")}`;return e.length>3&&(i+=` +${e.length-3} more`),i}(d),n=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(n=n.eq("user_id",i));let{error:o}=await n;if(o&&"42703"!==o.code)throw o;return}if("blocked"===e.status&&"string"==typeof(n=e.blocked_reason)&&n.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);i&&(t=t.eq("user_id",i));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function A(e,r){console.log("getTasks called with userId:",e);let i=(0,t.createAdminDbClient)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(i=i.eq("user_id",e)),r?.project&&(i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?i.eq("project_id",r.project):i.eq("project",r.project)),r?.orphan&&(i=i.is("project_id",null)),r?.status&&(i=i.eq("status",r.status)),r?.search){let e=r.search;i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?i.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):i.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:n,error:o}=await i;if(o)throw o;let a=n||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function C(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function S(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function D(e,r,i){let n=(0,t.createAdminDbClient)(),{frontmatter:o,body:a}=h(e),l="boolean"==typeof o.swarm?o.swarm:void 0,c=i?.title||j(e),u=String(o.slug||c||"task"),f=await w(u,n),p=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),m="string"==typeof o.workflow_id?o.workflow_id:void 0,_="string"==typeof o.project?o.project:void 0;if(!_&&p){let{data:e}=await n.from("projects").select("slug").eq("id",p).single();e?.slug&&(_=e.slug)}/^---\n/.test(e);let g="string"==typeof o.provider?o.provider:null,k="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,S="ai"===o.created_by?"ai":"user",D=y(o.depends_on),T=y(i?.dependsOn),P=T.length>0?T:D,O={id:(0,d.randomUUID)(),content:e,description:v(a),title:c,slug:f,status:o.status||"queued",stage:o.stage||"intake",project:_||null,...void 0!==p?{project_id:p}:{},...void 0!==m?{workflow_id:m}:{},priority:o.priority,engine:A,provider:g,model:k,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:S,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await b(O.id,P,n);let{data:$,error:I}=await n.from("tasks").insert(O).select().single();if(I&&"42703"===I.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:o,next_action:a,version:l,depends_on:s,...d}=O;({data:$,error:I}=await n.from("tasks").insert(d).select().single())}if(I)throw I;if(!$)throw Error("Failed to create task");await q($,r);let x=await C($.id,r)||$,E=r||x.user_id;if(E){let e=x.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(x.depends_on)?x.depends_on:[],project:x.project||null,projectId:x.project_id||null,workflowId:x.workflow_id||null,createdBy:x.created_by||null};s({taskId:x.id,userId:E,eventType:"task.created",title:x.title||null,slug:x.slug||null,stage:x.stage||null,status:x.status||null,timestamp:e,details:t})}return x}async function T(e,r,i,n){let o=(0,t.createAdminDbClient)(),{frontmatter:a,body:l}=h(r),d="boolean"==typeof a.swarm?a.swarm:void 0,c=j(r),u="string"==typeof a.project_id?a.project_id:void 0,f=Object.prototype.hasOwnProperty.call(a,"provider"),p=Object.prototype.hasOwnProperty.call(a,"model"),m=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),_=y(a.depends_on),g=y(n?.dependsOn),k=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?g:_,S={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:m?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:p?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...k?{depends_on:A.length?A:null}:{},updated_at:new Date().toISOString(),current_plan:n?.currentPlan??void 0,open_blockers:n?.openBlockers??void 0,next_action:n?.nextAction??void 0};Object.keys(S).forEach(e=>{void 0===S[e]&&delete S[e]}),k&&await b(e,A,o);let D=o.from("tasks").update({...S,version:o.rpc("increment_version")}).eq("id",e);i&&(D=D.eq("user_id",i)),n?.expectedVersion!==void 0&&(D=D.eq("version",n.expectedVersion));let{data:T,error:P}=await o.from("tasks").update({...S}).eq("id",e).select().maybeSingle();if(P&&console.error(`[db.updateTask] error updating task ${e}:`,P),T||P||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(S)),P&&"42703"===P.code){let{swarm_models:t,swarm:r,workflow_id:n,current_plan:a,open_blockers:l,next_action:s,version:d,depends_on:c,...u}=S,f=o.from("tasks").update(u).eq("id",e);i&&(f=f.eq("user_id",i)),{data:T,error:P}=await f.select().maybeSingle()}if(P)throw P;if(!T){let t=await C(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await C(T.id,i)||T,$=i||O.user_id;if($){let e=O.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(O.depends_on)?O.depends_on:[],project:O.project||null,projectId:O.project_id||null,workflowId:O.workflow_id||null,createdBy:O.created_by||null};s({taskId:O.id,userId:$,eventType:"task.created",title:O.title||null,slug:O.slug||null,stage:O.stage||null,status:O.status||null,timestamp:e,details:t})}return O}async function P(e,r,i=25){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let l=[r,...Array.isArray(o.run_index)?o.run_index:[]].slice(0,i),{error:s}=await n.from("tasks").update({run_index:l}).eq("id",e);if(s){if(s?.code==="42703")return;throw s}}async function O(e,r){let i=(0,t.createAdminDbClient)().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function $(e){let r=(0,t.createAdminDbClient)().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:i,error:n}=await r.single();if(n){if("PGRST116"===n.code)return null;throw n}return i}async function I(e){let r=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:i,error:n}=await r;if(n){if(c(n,"projects"))return[];throw n}return(i||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let i=(0,t.createAdminDbClient)().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"projects"))return null;throw o}return n||null}async function E(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(c(n,"project_repos"))return[];throw n}return i||[]}let N=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function W(e,r){let i=(0,t.createAdminDbClient)(),n=N.test(e),o=i.from("projects").select("*");o=n?o.eq("id",e):o.eq("slug",e),r&&(o=o.eq("user_id",r));let a=await o.maybeSingle();if(a.error){if(c(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await E(l.id);return{...l,repos:s}}async function F(e,t,r){if(!t.length)return[];let i=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:n,error:o}=await r.from("project_repos").insert(i).select("*");if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}async function M(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=g(r),n=t.name.trim()||"project",o=await _(n,e,i),a={user_id:e,name:t.name.trim(),slug:o,description:t.description??null,workflow_id:t.workflow_id??null},{data:l,error:s}=await i.from("projects").insert(a).select("*").single();if(s)throw s;let d=await F(l.id,t.repos??[],i);return{...l,repos:d}}async function R(e,t,r,i){let n=g(i),o=N.test(e),a=e;if(!o){let r=await x(e,t);if(!r)return null;a=r.id}let l={};if(void 0!==r.name){let e=r.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==r.slug){let e=r.slug?.trim();e&&(l.slug=e)}if(void 0!==r.description&&(l.description=r.description),void 0!==r.metadata&&(l.metadata=r.metadata),void 0!==r.ci_cd_info&&(l.ci_cd_info=r.ci_cd_info),void 0!==r.workflow_id&&(l.workflow_id=r.workflow_id),Object.keys(l).length){let{error:e}=await n.from("projects").update(l).eq("id",a).eq("user_id",t);if(e)throw e}if(r.repos){let{data:e,error:t}=await n.from("project_repos").select("*").eq("project_id",a);if(t&&!c(t,"project_repos"))throw t;let i=e||[],o=new Set(i.map(e=>e.id)),l=new Set(r.repos.map(e=>e.id).filter(e=>!!e));for(let e of i){if(l.has(e.id))continue;let{error:t}=await n.from("project_repos").delete().eq("id",e.id).eq("project_id",a);if(t&&!c(t,"project_repos"))throw t}for(let e of r.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:a};if(e.id&&o.has(e.id)){let{error:r}=await n.from("project_repos").update(t).eq("id",e.id).eq("project_id",a);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=g(r),{error:n}=await i.from("projects").delete().eq("id",e).eq("user_id",t);if(n)throw n}async function B(e,t,r){let i=g(r),{data:n,error:o}=await i.from("projects").select("id, slug").eq("id",e).eq("user_id",t).maybeSingle();if(o)throw o;if(!n)throw Error("Project not found");let{data:a,error:l}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(l)throw l;let s=String(n.slug||"").trim().toLowerCase(),d=(a||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===s}).map(e=>e.id);if(!d.length)return{updatedCount:0,taskIds:[]};let{error:c}=await i.from("tasks").update({project:n.slug,project_id:n.id,updated_at:new Date().toISOString()}).eq("user_id",t).is("project_id",null).in("id",d);if(c)throw c;return{updatedCount:d.length,taskIds:d}}let G="00000000-0000-0000-0000-000000000001",U=[{id:"00000000-0000-0000-0001-000000000001",name:"INTAKE",label:"Intake",prompt:"New task. Triage, scope, and prepare for work.",position:0,node_type:"step"},{id:"00000000-0000-0000-0001-000000000002",name:"PROGRESS",label:"Progress",prompt:"Task is actively being worked on.",position:1,node_type:"step"},{id:"00000000-0000-0000-0001-000000000003",name:"DONE",label:"Done",prompt:"Task completed.",position:2,node_type:"terminal"}],V=new Map(U.map(e=>[e.id,e]));async function J(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:G,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:n}=await r.from("workflow_nodes").upsert(U.map(e=>({...e,workflow_id:G,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:G,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:G,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(o)throw o}async function K(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(n){if(c(n,"workflows"))return[];throw n}return i||[]}async function z(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"workflows"))return null;throw o}return n}async function H(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};void 0!==i.definition&&(o.definition=i.definition),void 0!==i.name&&(o.name=i.name),void 0!==i.description&&(o.description=i.description);let{data:a,error:l}=await n.from("workflows").update(o).eq("id",e).select().single();if(l)throw l;return a}async function Q(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(n){if(c(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===G&&await J(r),!await z(e,r))throw Error("Workflow not found");if(e===G){let t=i.map(t=>{let r=V.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await n.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Q(e)}return await Promise.all(i.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:i}=await n.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),Q(e)}async function Y(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(o){if(c(o,"workflow_nodes"))return null;throw o}return n}async function Z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(n){if(c(n,"workflow_transitions"))return[];throw n}return i||[]}async function ee(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(o){if(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await z(e,t);if(!r)return null;let[i,n]=await Promise.all([Q(e),Z(e)]);return{...r,nodes:i,transitions:n}}async function er(e,r={}){let i=(0,t.createAdminDbClient)(),n=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),o="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=o?null:void 0===r.tail?n:Number(r.tail),l=null!==a&&Number.isFinite(a)&&a>0,s=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(s=s.eq("node_id",r.nodeId)),s=o?s.gt("created_at",o).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n):l?s.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(n):s.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n);let{data:d,error:c}=await s;if(c)throw c;let u=d||[];return o?u:l?u.slice().reverse():u}async function ei(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_logs").insert({task_id:e,content:r,log_type:i,...n?{node_id:n}:{}}).select().single();if(l)throw l;return a}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function eo(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function ea(e){let r=(0,t.createAdminDbClient)(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:en(e.inputTokens),output_tokens:en(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:n,error:o}=await r.from("task_costs").insert(i).select().single();if(o)throw o;return n}async function el(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(n)throw n;return i||[]}async function es(e){return function(e){let t={},r=0,i=0,n=0;for(let o of e){let e=o.stage||"unknown",a=en(o.input_tokens),l=en(o.output_tokens),s=eo(o.estimated_cost??0);r+=a,i+=l,n+=s;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=l,d.estimated_cost+=s,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:i,total_cost:n,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await el(e))}async function ed(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n)throw n;return i||[]}async function ec(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:n??null}).select().single();if(l)throw l;return a}async function eu(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("task_comments").select("author_id, author_type").eq("id",e).single();if(o)throw o;if(!n)throw Error("Comment not found");if("user"!==n.author_type||n.author_id!==r)throw Error("Unauthorized");let{error:a}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function ef(e,r,i){let n=(0,t.createAdminDbClient)().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(n=n.eq("scope_id",r)),i&&(n=n.eq("user_id",i));let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function ep(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:n}).select().single();if(l)throw l;return a}async function em(e,r){let i=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ew(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});i=e?i.or(`user_id.eq.${e},is_default.eq.true`):i.eq("is_default",!0);let{data:n,error:o}=await i;if(o)throw o;return n||[]}async function e_(e,r,i){let n=(0,t.createAdminDbClient)();if(r){let{data:t}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:o}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return o||null}async function eg(e,r,i=[],n,o,a){let l=(0,t.createAdminDbClient)(),s={stage:e,prompt:r,outputs:i,user_id:n,is_default:!n,workflow_id:a};o&&(void 0!==o.swarm&&(s.swarm=o.swarm),void 0!==o.provider&&(s.provider=o.provider),void 0!==o.model&&(s.model=o.model),void 0!==o.swarm_models&&(s.swarm_models=o.swarm_models));let{data:d,error:c}=await l.from("stage_prompts").upsert(s,{onConflict:n?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ek(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ey(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(n){if(c(n,"agents"))return[];throw n}return i||[]}async function eh(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(o){if("PGRST116"===o.code||c(o,"agents"))return null;throw o}return n}async function eb(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"agent_skills"))return[];throw n}return i||[]}async function ej(e,r){let i=(0,t.createAdminDbClient)(),n=new Map;for(let t of r){let r=t.file.trim();r&&n.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let o=await eb(e);for(let t of o)if(!n.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}for(let t of n.values()){let r=o.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!c(e,"agent_skills"))throw e;continue}if((r.condition??null)!==t.condition){let{error:r}=await i.from("agent_skills").update({condition:t.condition}).eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}}return eb(e)}async function ev(e,r){let i=(0,t.createAdminDbClient)(),n={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(n.id=r.id),void 0!==r.voice&&(n.voice=r.voice),void 0!==r.seed&&(n.seed=r.seed),void 0!==r.model&&(n.model=r.model),void 0!==r.provider&&(n.provider=r.provider),void 0!==r.color&&(n.color=r.color);let{data:o,error:a}=await i.from("agents").insert(n).select().single();if(a){if(c(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eq(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};if(void 0!==i.name&&(o.name=i.name),void 0!==i.style&&(o.style=i.style),void 0!==i.description&&(o.description=i.description),void 0!==i.voice&&(o.voice=i.voice),void 0!==i.seed&&(o.seed=i.seed),void 0!==i.model&&(o.model=i.model),void 0!==i.provider&&(o.provider=i.provider),void 0!==i.color&&(o.color=i.color),1===Object.keys(o).length)return eh(e,r);let{data:a,error:l}=await n.from("agents").update(o).eq("id",e).eq("user_id",r).select().single();if(l){if("PGRST116"===l.code||c(l,"agents"))return null;throw l}return a}async function eA(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!c(n,"agents"))throw n}async function eC(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(n){if(c(n,"project_agents"))return[];throw n}return i||[]}async function eS(e,r,i){let n=(0,t.createAdminDbClient)();if(void 0===i){let{data:t}=await n.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);i=(t?.[0]?.routing_order??-1)+1}let{data:o,error:a}=await n.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(a)throw a;return o}async function eD(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(n)throw n}async function eT(e,r){let i=(0,t.createAdminDbClient)();for(let t=0;t<r.length;t++)await i.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return eC(e)}async function eP(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"project_skills"))return[];throw n}return i||[]}async function eO(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(a)throw a;return o}async function e$(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eI(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(c(n,"project_variables"))return[];throw n}return i||[]}async function ex(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(a)throw a;return o}async function eE(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(n)throw n}async function eN(e,r){let i=(0,t.createAdminDbClient)().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(i=i.eq("producer",r));let{data:n,error:o}=await i;if(o){if(c(o,"project_memory"))return[];throw o}return n||[]}async function eW(e,r,i,n="human"){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("project_memory").insert({project_id:e,content:r,source:i??null,producer:n}).select().single();if(l)throw l;return a}async function eF(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_memory").delete().eq("id",e);if(i)throw i}async function eM(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!1});if(n){if(c(n,"project_threads"))return[];throw n}return i||[]}async function eR(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(o)throw o;return n}async function eL(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(n)throw n}async function eB(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return n?(c(n,"project_threads"),null):i?.project_id??null}async function eG(e){return(await eI(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function eU(e,t,r,i){let n=await eP(t),o=await eN(t),a=await eG(t);return{skills:function(e,t){let r=[],i=new Set;for(let t of e){let e=t.file.split("/").pop()||t.file;i.add(e),r.push({file:t.file,condition:t.condition,source:"agent"})}for(let e of t){let t=e.file.split("/").pop()||e.file;i.has(t)||r.push({file:e.file,condition:e.condition??void 0,source:"project"})}return r}(r,n),memory:function(e,t){let r=[];for(let e of t)r.push({content:e.content,source:"project",id:e.id});for(let t of e)r.push({content:t.content,source:"agent",id:t.id});return r}(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",()=>ep,"addProjectAgent",()=>eS,"addProjectMemory",()=>eW,"addProjectSkill",()=>eO,"addProjectThread",()=>eR,"addTaskComment",()=>ec,"addTaskCostEntry",()=>ea,"addTaskLog",()=>ei,"appendRunToIndex",()=>P,"assignOrphanTasksToProject",()=>B,"buildExecutionProvenance",()=>eU,"createAgent",()=>ev,"createProject",()=>M,"createTask",()=>D,"defaultStagePrompts",0,{INTAKE:{prompt:"New task. Triage, scope, and prepare for work.",outputs:[],swarm:!1},PROGRESS:{prompt:"Task is actively being worked on.",outputs:[],swarm:!1},DONE:{prompt:"Task completed.",outputs:[],swarm:!1}},"deleteAgent",()=>eA,"deleteLearning",()=>em,"deleteProject",()=>L,"deleteProjectMemory",()=>eF,"deleteProjectVariable",()=>eE,"deleteStagePrompt",()=>ek,"deleteTask",()=>O,"deleteTaskComment",()=>eu,"ensureNoCircularDependency",()=>b,"getAgent",()=>eh,"getAgentSkills",()=>eb,"getAgents",()=>ey,"getLearnings",()=>ef,"getNextQueuedTask",()=>$,"getProjectAgents",()=>eC,"getProjectBySlug",()=>x,"getProjectForThread",()=>eB,"getProjectMemory",()=>eN,"getProjectRepos",()=>E,"getProjectSkills",()=>eP,"getProjectThreads",()=>eM,"getProjectVariables",()=>eI,"getProjectWithRepos",()=>W,"getProjects",()=>I,"getStagePrompt",()=>e_,"getStagePrompts",()=>ew,"getTask",()=>C,"getTaskBySlug",()=>S,"getTaskComments",()=>ed,"getTaskCostEntries",()=>el,"getTaskCostSummary",()=>es,"getTaskLogs",()=>er,"getTasks",()=>A,"getUserSettings",()=>u,"getWorkflow",()=>z,"getWorkflowNodeByName",()=>Y,"getWorkflowNodes",()=>Q,"getWorkflowTransitions",()=>Z,"getWorkflowTransitionsFromNode",()=>ee,"getWorkflowWithGraph",()=>et,"getWorkflows",()=>K,"parseFrontmatter",()=>h,"removeProjectAgent",()=>eD,"removeProjectSkill",()=>e$,"removeProjectThread",()=>eL,"reorderProjectAgents",()=>eT,"resolveTaskConfig",()=>p,"setAgentSkills",()=>ej,"setProjectVariable",()=>ex,"updateAgent",()=>eq,"updateProject",()=>R,"updateTask",()=>T,"updateWorkflow",()=>H,"updateWorkflowNodes",()=>X,"upsertStagePrompt",()=>eg,"upsertUserSettings",()=>f],62294)}];
1
+ module.exports=[62294,12592,e=>{"use strict";var t=e.i(57431);let r="Waiting on dependencies",i=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class n extends Error{}function o(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>i.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function a(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,i="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||i.includes(`relation "${t}" does not exist`)||i.includes(`Could not find the table 'agx.${t}'`)||i.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new n(`Missing relation: ${e}`);throw t}async function l(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(n&&await a("notification_webhooks",n),i)?(Array.isArray(i)?i:[i]).map(o):[]}async function s(e){if(!e.userId)return;let t=[];try{t=await l(e.userId)}catch(e){if(e instanceof n)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let i=e.timestamp||new Date().toISOString(),o={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:i,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",()=>s],12592);var d=e.i(54799);function c(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function u(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(c(n,"user_settings"))return null;throw n}return i||null}async function f(e,r,i){let n=i?.onlyIfNewer!==!1,o=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),a=await u(e);if(n&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(o);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let l={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:o},s=(0,t.createAdminDbClient)(),{error:d}=await s.from("user_settings").upsert(l,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function p(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(22734),r=e.r(14747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));o=n(i?.defaultProvider)||null}catch{}let a=n(i?.default_provider)||o||"claude",l=n(t.provider)||n(r?.provider)||a,s=n(i?.models?.[l])||null,d=n(t.model)||n(r?.model)||s||null;return{provider:l,model:d,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}}function m(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function w(e,t){let r=m(e);for(let i=0;i<5;i++){let{data:i,error:n}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(n)throw n;if(!i||0===i.length)return r;let o=Math.random().toString(36).slice(2,6);r=`${m(e)}-${o}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function _(e,t,r,i){let n=m(e);for(let o=0;o<5;o++){let o=r.from("projects").select("id").eq("slug",n).eq("user_id",t);i&&(o=o.neq("id",i));let{data:a,error:l}=await o.limit(1);if(l)throw l;if(!a||0===a.length)return n;let s=Math.random().toString(36).slice(2,6);n=`${m(e)}-${s}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function g(e){return e??(0,t.createAdminDbClient)()}function k(e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e||"").trim()).filter(Boolean)}catch{}return t.split(",").map(e=>e.trim()).filter(Boolean)}function y(e){let t;if(!e)return[];if(Array.isArray(e))t=e.map(e=>"string"==typeof e?e:null==e?"":String(e)).filter(Boolean);else{if("string"!=typeof e)return[];t=k(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function h(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if("depends_on"===i){r[i]=k(n);continue}"true"===n?r[i]=!0:"false"===n?r[i]=!1:/^\d+$/.test(n)?r[i]=parseInt(n):r[i]=n}}return{frontmatter:r,body:t[2]}}async function b(e,t,r){if(!e||!t?.length)return;let i=g(r),n=new Set,o=[...t];for(;o.length;){let t=o.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(n.has(t))continue;n.add(t);let{data:r,error:a}=await i.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(a){if("PGRST116"===a.code||"42703"===a.code)continue;throw a}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!n.has(e)&&o.push(e)}}function j(e){let{body:t}=h(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function v(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function q(e,i){var n;let o=Array.isArray(e.depends_on)?e.depends_on:[];if(!o.length)return;let a=(0,t.createAdminDbClient)(),{data:l,error:s}=await a.from("tasks").select("id, title, slug, status, stage").in("id",o);if(s)return;let d=(Array.isArray(l)?l:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.stage?.toLowerCase()==="intake"?" (awaiting approval)":e.status?` (${e.status})`:null)??""}`),i=`${r}: ${t.join(", ")}`;return e.length>3&&(i+=` +${e.length-3} more`),i}(d),n=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(n=n.eq("user_id",i));let{error:o}=await n;if(o&&"42703"!==o.code)throw o;return}if("blocked"===e.status&&"string"==typeof(n=e.blocked_reason)&&n.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);i&&(t=t.eq("user_id",i));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function A(e,r){console.log("getTasks called with userId:",e);let i=(0,t.createAdminDbClient)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(i=i.eq("user_id",e)),r?.project&&(i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?i.eq("project_id",r.project):i.eq("project",r.project)),r?.orphan&&(i=i.is("project_id",null)),r?.status&&(i=i.eq("status",r.status)),r?.search){let e=r.search;i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?i.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):i.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:n,error:o}=await i;if(o)throw o;let a=n||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function C(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function S(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function D(e,r,i){let n=(0,t.createAdminDbClient)(),{frontmatter:o,body:a}=h(e),l="boolean"==typeof o.swarm?o.swarm:void 0,c=i?.title||j(e),u=String(o.slug||c||"task"),f=await w(u,n),p=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),m="string"==typeof o.workflow_id?o.workflow_id:void 0,_="string"==typeof o.project?o.project:void 0;if(!_&&p){let{data:e}=await n.from("projects").select("slug").eq("id",p).single();e?.slug&&(_=e.slug)}/^---\n/.test(e);let g="string"==typeof o.provider?o.provider:null,k="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,S="ai"===o.created_by?"ai":"user",D=y(o.depends_on),T=y(i?.dependsOn),P=T.length>0?T:D,O={id:(0,d.randomUUID)(),content:e,description:v(a),title:c,slug:f,status:o.status||"queued",stage:o.stage||"intake",project:_||null,...void 0!==p?{project_id:p}:{},...void 0!==m?{workflow_id:m}:{},priority:o.priority,engine:A,provider:g,model:k,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:S,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await b(O.id,P,n);let{data:$,error:I}=await n.from("tasks").insert(O).select().single();if(I&&"42703"===I.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:o,next_action:a,version:l,depends_on:s,...d}=O;({data:$,error:I}=await n.from("tasks").insert(d).select().single())}if(I)throw I;if(!$)throw Error("Failed to create task");await q($,r);let x=await C($.id,r)||$,E=r||x.user_id;if(E){let e=x.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(x.depends_on)?x.depends_on:[],project:x.project||null,projectId:x.project_id||null,workflowId:x.workflow_id||null,createdBy:x.created_by||null};s({taskId:x.id,userId:E,eventType:"task.created",title:x.title||null,slug:x.slug||null,stage:x.stage||null,status:x.status||null,timestamp:e,details:t})}return x}async function T(e,r,i,n){let o=(0,t.createAdminDbClient)(),{frontmatter:a,body:l}=h(r),d="boolean"==typeof a.swarm?a.swarm:void 0,c=j(r),u="string"==typeof a.project_id?a.project_id:void 0,f=Object.prototype.hasOwnProperty.call(a,"provider"),p=Object.prototype.hasOwnProperty.call(a,"model"),m=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),_=y(a.depends_on),g=y(n?.dependsOn),k=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?g:_,S={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:m?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:p?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...k?{depends_on:A.length?A:null}:{},updated_at:new Date().toISOString(),current_plan:n?.currentPlan??void 0,open_blockers:n?.openBlockers??void 0,next_action:n?.nextAction??void 0};Object.keys(S).forEach(e=>{void 0===S[e]&&delete S[e]}),k&&await b(e,A,o);let D=o.from("tasks").update({...S,version:o.rpc("increment_version")}).eq("id",e);i&&(D=D.eq("user_id",i)),n?.expectedVersion!==void 0&&(D=D.eq("version",n.expectedVersion));let{data:T,error:P}=await o.from("tasks").update({...S}).eq("id",e).select().maybeSingle();if(P&&console.error(`[db.updateTask] error updating task ${e}:`,P),T||P||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(S)),P&&"42703"===P.code){let{swarm_models:t,swarm:r,workflow_id:n,current_plan:a,open_blockers:l,next_action:s,version:d,depends_on:c,...u}=S,f=o.from("tasks").update(u).eq("id",e);i&&(f=f.eq("user_id",i)),{data:T,error:P}=await f.select().maybeSingle()}if(P)throw P;if(!T){let t=await C(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await C(T.id,i)||T,$=i||O.user_id;if($){let e=O.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(O.depends_on)?O.depends_on:[],project:O.project||null,projectId:O.project_id||null,workflowId:O.workflow_id||null,createdBy:O.created_by||null};s({taskId:O.id,userId:$,eventType:"task.created",title:O.title||null,slug:O.slug||null,stage:O.stage||null,status:O.status||null,timestamp:e,details:t})}return O}async function P(e,r,i=25){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let l=[r,...Array.isArray(o.run_index)?o.run_index:[]].slice(0,i),{error:s}=await n.from("tasks").update({run_index:l}).eq("id",e);if(s){if(s?.code==="42703")return;throw s}}async function O(e,r){let i=(0,t.createAdminDbClient)().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function $(e){let r=(0,t.createAdminDbClient)().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:i,error:n}=await r.single();if(n){if("PGRST116"===n.code)return null;throw n}return i}async function I(e){let r=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:i,error:n}=await r;if(n){if(c(n,"projects"))return[];throw n}return(i||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let i=(0,t.createAdminDbClient)().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"projects"))return null;throw o}return n||null}async function E(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(c(n,"project_repos"))return[];throw n}return i||[]}let N=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function W(e,r){let i=(0,t.createAdminDbClient)(),n=N.test(e),o=i.from("projects").select("*");o=n?o.eq("id",e):o.eq("slug",e),r&&(o=o.eq("user_id",r));let a=await o.maybeSingle();if(a.error){if(c(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await E(l.id);return{...l,repos:s}}async function F(e,t,r){if(!t.length)return[];let i=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:n,error:o}=await r.from("project_repos").insert(i).select("*");if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}async function M(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=g(r),n=t.name.trim()||"project",o=await _(n,e,i),a={user_id:e,name:t.name.trim(),slug:o,description:t.description??null,workflow_id:t.workflow_id??null},{data:l,error:s}=await i.from("projects").insert(a).select("*").single();if(s)throw s;let d=await F(l.id,t.repos??[],i);return{...l,repos:d}}async function R(e,t,r,i){let n=g(i),o=N.test(e),a=e;if(!o){let r=await x(e,t);if(!r)return null;a=r.id}let l={};if(void 0!==r.name){let e=r.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==r.slug){let e=r.slug?.trim();e&&(l.slug=e)}if(void 0!==r.description&&(l.description=r.description),void 0!==r.metadata&&(l.metadata=r.metadata),void 0!==r.ci_cd_info&&(l.ci_cd_info=r.ci_cd_info),void 0!==r.workflow_id&&(l.workflow_id=r.workflow_id),Object.keys(l).length){let{error:e}=await n.from("projects").update(l).eq("id",a).eq("user_id",t);if(e)throw e}if(r.repos){let{data:e,error:t}=await n.from("project_repos").select("*").eq("project_id",a);if(t&&!c(t,"project_repos"))throw t;let i=e||[],o=new Set(i.map(e=>e.id)),l=new Set(r.repos.map(e=>e.id).filter(e=>!!e));for(let e of i){if(l.has(e.id))continue;let{error:t}=await n.from("project_repos").delete().eq("id",e.id).eq("project_id",a);if(t&&!c(t,"project_repos"))throw t}for(let e of r.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:a};if(e.id&&o.has(e.id)){let{error:r}=await n.from("project_repos").update(t).eq("id",e.id).eq("project_id",a);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=g(r),{error:n}=await i.from("projects").delete().eq("id",e).eq("user_id",t);if(n)throw n}async function B(e,t,r){let i=g(r),{data:n,error:o}=await i.from("projects").select("id, slug").eq("id",e).eq("user_id",t).maybeSingle();if(o)throw o;if(!n)throw Error("Project not found");let{data:a,error:l}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(l)throw l;let s=String(n.slug||"").trim().toLowerCase(),d=(a||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===s}).map(e=>e.id);if(!d.length)return{updatedCount:0,taskIds:[]};let{error:c}=await i.from("tasks").update({project:n.slug,project_id:n.id,updated_at:new Date().toISOString()}).eq("user_id",t).is("project_id",null).in("id",d);if(c)throw c;return{updatedCount:d.length,taskIds:d}}let G="00000000-0000-0000-0000-000000000001",U=[{id:"00000000-0000-0000-0001-000000000001",name:"INTAKE",label:"Intake",prompt:"New task. Triage, scope, and prepare for work.",position:0,node_type:"step"},{id:"00000000-0000-0000-0001-000000000002",name:"PROGRESS",label:"Progress",prompt:"Task is actively being worked on.",position:1,node_type:"step"},{id:"00000000-0000-0000-0001-000000000003",name:"DONE",label:"Done",prompt:"Task completed.",position:2,node_type:"terminal"}],V=new Map(U.map(e=>[e.id,e]));async function J(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:G,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:n}=await r.from("workflow_nodes").upsert(U.map(e=>({...e,workflow_id:G,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:G,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:G,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(o)throw o}async function K(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(n){if(c(n,"workflows"))return[];throw n}return i||[]}async function z(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"workflows"))return null;throw o}return n}async function H(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};void 0!==i.definition&&(o.definition=i.definition),void 0!==i.name&&(o.name=i.name),void 0!==i.description&&(o.description=i.description);let{data:a,error:l}=await n.from("workflows").update(o).eq("id",e).select().single();if(l)throw l;return a}async function Q(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(n){if(c(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===G&&await J(r),!await z(e,r))throw Error("Workflow not found");if(e===G){let t=i.map(t=>{let r=V.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await n.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Q(e)}return await Promise.all(i.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:i}=await n.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),Q(e)}async function Y(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(o){if(c(o,"workflow_nodes"))return null;throw o}return n}async function Z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(n){if(c(n,"workflow_transitions"))return[];throw n}return i||[]}async function ee(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(o){if(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await z(e,t);if(!r)return null;let[i,n]=await Promise.all([Q(e),Z(e)]);return{...r,nodes:i,transitions:n}}async function er(e,r={}){let i=(0,t.createAdminDbClient)(),n=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),o="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=o?null:void 0===r.tail?n:Number(r.tail),l=null!==a&&Number.isFinite(a)&&a>0,s=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(s=s.eq("node_id",r.nodeId)),s=o?s.gt("created_at",o).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n):l?s.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(n):s.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n);let{data:d,error:c}=await s;if(c)throw c;let u=d||[];return o?u:l?u.slice().reverse():u}async function ei(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_logs").insert({task_id:e,content:r,log_type:i,...n?{node_id:n}:{}}).select().single();if(l)throw l;return a}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function eo(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function ea(e){let r=(0,t.createAdminDbClient)(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:en(e.inputTokens),output_tokens:en(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:n,error:o}=await r.from("task_costs").insert(i).select().single();if(o)throw o;return n}async function el(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(n)throw n;return i||[]}async function es(e){return function(e){let t={},r=0,i=0,n=0;for(let o of e){let e=o.stage||"unknown",a=en(o.input_tokens),l=en(o.output_tokens),s=eo(o.estimated_cost??0);r+=a,i+=l,n+=s;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=l,d.estimated_cost+=s,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:i,total_cost:n,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await el(e))}async function ed(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n)throw n;return i||[]}async function ec(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:n??null}).select().single();if(l)throw l;return a}async function eu(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("task_comments").select("author_id, author_type").eq("id",e).single();if(o)throw o;if(!n)throw Error("Comment not found");if("user"!==n.author_type||n.author_id!==r)throw Error("Unauthorized");let{error:a}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function ef(e,r,i){let n=(0,t.createAdminDbClient)().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(n=n.eq("scope_id",r)),i&&(n=n.eq("user_id",i));let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function ep(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:n}).select().single();if(l)throw l;return a}async function em(e,r){let i=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ew(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});i=e?i.or(`user_id.eq.${e},is_default.eq.true`):i.eq("is_default",!0);let{data:n,error:o}=await i;if(o)throw o;return n||[]}async function e_(e,r,i){let n=(0,t.createAdminDbClient)();if(r){let{data:t}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:o}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return o||null}async function eg(e,r,i=[],n,o,a){let l=(0,t.createAdminDbClient)(),s={stage:e,prompt:r,outputs:i,user_id:n,is_default:!n,workflow_id:a};o&&(void 0!==o.swarm&&(s.swarm=o.swarm),void 0!==o.provider&&(s.provider=o.provider),void 0!==o.model&&(s.model=o.model),void 0!==o.swarm_models&&(s.swarm_models=o.swarm_models));let{data:d,error:c}=await l.from("stage_prompts").upsert(s,{onConflict:n?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ek(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ey(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(n){if(c(n,"agents"))return[];throw n}return i||[]}async function eh(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(o){if("PGRST116"===o.code||c(o,"agents"))return null;throw o}return n}async function eb(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"agent_skills"))return[];throw n}return i||[]}async function ej(e,r){let i=(0,t.createAdminDbClient)(),n=new Map;for(let t of r){let r=t.file.trim();r&&n.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let o=await eb(e);for(let t of o)if(!n.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}for(let t of n.values()){let r=o.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!c(e,"agent_skills"))throw e;continue}if((r.condition??null)!==t.condition){let{error:r}=await i.from("agent_skills").update({condition:t.condition}).eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}}return eb(e)}async function ev(e,r){let i=(0,t.createAdminDbClient)(),n={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(n.id=r.id),void 0!==r.voice&&(n.voice=r.voice),void 0!==r.seed&&(n.seed=r.seed),void 0!==r.model&&(n.model=r.model),void 0!==r.provider&&(n.provider=r.provider),void 0!==r.color&&(n.color=r.color);let{data:o,error:a}=await i.from("agents").insert(n).select().single();if(a){if(c(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eq(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};if(void 0!==i.name&&(o.name=i.name),void 0!==i.style&&(o.style=i.style),void 0!==i.description&&(o.description=i.description),void 0!==i.voice&&(o.voice=i.voice),void 0!==i.seed&&(o.seed=i.seed),void 0!==i.model&&(o.model=i.model),void 0!==i.provider&&(o.provider=i.provider),void 0!==i.color&&(o.color=i.color),1===Object.keys(o).length)return eh(e,r);let{data:a,error:l}=await n.from("agents").update(o).eq("id",e).eq("user_id",r).select().single();if(l){if("PGRST116"===l.code||c(l,"agents"))return null;throw l}return a}async function eA(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!c(n,"agents"))throw n}async function eC(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(n){if(c(n,"project_agents"))return[];throw n}return i||[]}async function eS(e,r,i){let n=(0,t.createAdminDbClient)();if(void 0===i){let{data:t}=await n.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);i=(t?.[0]?.routing_order??-1)+1}let{data:o,error:a}=await n.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(a)throw a;return o}async function eD(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(n)throw n}async function eT(e,r){let i=(0,t.createAdminDbClient)();for(let t=0;t<r.length;t++)await i.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return eC(e)}async function eP(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"project_skills"))return[];throw n}return i||[]}async function eO(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(a)throw a;return o}async function e$(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eI(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(c(n,"project_variables"))return[];throw n}return i||[]}async function ex(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(a)throw a;return o}async function eE(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(n)throw n}async function eN(e,r){let i=(0,t.createAdminDbClient)().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(i=i.eq("producer",r));let{data:n,error:o}=await i;if(o){if(c(o,"project_memory"))return[];throw o}return n||[]}async function eW(e,r,i,n="human"){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("project_memory").insert({project_id:e,content:r,source:i??null,producer:n}).select().single();if(l)throw l;return a}async function eF(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_memory").delete().eq("id",e);if(i)throw i}async function eM(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"project_threads"))return[];throw n}return i||[]}async function eR(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(o)throw o;return n}async function eL(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(n)throw n}async function eB(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return n?(c(n,"project_threads"),null):i?.project_id??null}async function eG(e){return(await eI(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function eU(e,t,r,i){let n=await eP(t),o=await eN(t),a=await eG(t);return{skills:function(e,t){let r=[],i=new Set;for(let t of e){let e=t.file.split("/").pop()||t.file;i.add(e),r.push({file:t.file,condition:t.condition,source:"agent"})}for(let e of t){let t=e.file.split("/").pop()||e.file;i.has(t)||r.push({file:e.file,condition:e.condition??void 0,source:"project"})}return r}(r,n),memory:function(e,t){let r=[];for(let e of t)r.push({content:e.content,source:"project",id:e.id});for(let t of e)r.push({content:t.content,source:"agent",id:t.id});return r}(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",()=>ep,"addProjectAgent",()=>eS,"addProjectMemory",()=>eW,"addProjectSkill",()=>eO,"addProjectThread",()=>eR,"addTaskComment",()=>ec,"addTaskCostEntry",()=>ea,"addTaskLog",()=>ei,"appendRunToIndex",()=>P,"assignOrphanTasksToProject",()=>B,"buildExecutionProvenance",()=>eU,"createAgent",()=>ev,"createProject",()=>M,"createTask",()=>D,"defaultStagePrompts",0,{INTAKE:{prompt:"New task. Triage, scope, and prepare for work.",outputs:[],swarm:!1},PROGRESS:{prompt:"Task is actively being worked on.",outputs:[],swarm:!1},DONE:{prompt:"Task completed.",outputs:[],swarm:!1}},"deleteAgent",()=>eA,"deleteLearning",()=>em,"deleteProject",()=>L,"deleteProjectMemory",()=>eF,"deleteProjectVariable",()=>eE,"deleteStagePrompt",()=>ek,"deleteTask",()=>O,"deleteTaskComment",()=>eu,"ensureNoCircularDependency",()=>b,"getAgent",()=>eh,"getAgentSkills",()=>eb,"getAgents",()=>ey,"getLearnings",()=>ef,"getNextQueuedTask",()=>$,"getProjectAgents",()=>eC,"getProjectBySlug",()=>x,"getProjectForThread",()=>eB,"getProjectMemory",()=>eN,"getProjectRepos",()=>E,"getProjectSkills",()=>eP,"getProjectThreads",()=>eM,"getProjectVariables",()=>eI,"getProjectWithRepos",()=>W,"getProjects",()=>I,"getStagePrompt",()=>e_,"getStagePrompts",()=>ew,"getTask",()=>C,"getTaskBySlug",()=>S,"getTaskComments",()=>ed,"getTaskCostEntries",()=>el,"getTaskCostSummary",()=>es,"getTaskLogs",()=>er,"getTasks",()=>A,"getUserSettings",()=>u,"getWorkflow",()=>z,"getWorkflowNodeByName",()=>Y,"getWorkflowNodes",()=>Q,"getWorkflowTransitions",()=>Z,"getWorkflowTransitionsFromNode",()=>ee,"getWorkflowWithGraph",()=>et,"getWorkflows",()=>K,"parseFrontmatter",()=>h,"removeProjectAgent",()=>eD,"removeProjectSkill",()=>e$,"removeProjectThread",()=>eL,"reorderProjectAgents",()=>eT,"resolveTaskConfig",()=>p,"setAgentSkills",()=>ej,"setProjectVariable",()=>ex,"updateAgent",()=>eq,"updateProject",()=>R,"updateTask",()=>T,"updateWorkflow",()=>H,"updateWorkflowNodes",()=>X,"upsertStagePrompt",()=>eg,"upsertUserSettings",()=>f],62294)}];
2
2
 
3
3
  //# sourceMappingURL=lib_db_ts_e06c6085._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[99904,45491,29264,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(65196);return t()}e.i(86213),e.s(["createAdminDbClient",()=>t],45491);let r="Waiting on dependencies",n=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class o extends Error{}function a(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>n.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function i(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,n="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||n.includes(`relation "${t}" does not exist`)||n.includes(`Could not find the table 'agx.${t}'`)||n.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new o(`Missing relation: ${e}`);throw t}async function s(e){let r=t(),{data:n,error:o}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(o&&await i("notification_webhooks",o),n)?(Array.isArray(n)?n:[n]).map(a):[]}async function l(e){if(!e.userId)return;let t=[];try{t=await s(e.userId)}catch(e){if(e instanceof o)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let n=e.timestamp||new Date().toISOString(),a={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:n,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",()=>l],29264);var d=e.i(54799);function c(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function u(e){let r=t(),{data:n,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(c(o,"user_settings"))return null;throw o}return n||null}async function p(e,r,n){let o=n?.onlyIfNewer!==!1,a=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),i=await u(e);if(o&&i?.changed_at){let e=Date.parse(i.changed_at),t=Date.parse(a);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:i,updated:!1}}let s={user_id:e,default_provider:r.default_provider??i?.default_provider??null,models:r.models??i?.models??{},provenance:r.provenance,changed_at:a},l=t(),{error:d}=await l.from("user_settings").upsert(s,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function f(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function g(e,t){let r=f(e);for(let n=0;n<5;n++){let{data:n,error:o}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(o)throw o;if(!n||0===n.length)return r;let a=Math.random().toString(36).slice(2,6);r=`${f(e)}-${a}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function m(e,t,r,n){let o=f(e);for(let a=0;a<5;a++){let a=r.from("projects").select("id").eq("slug",o).eq("user_id",t);n&&(a=a.neq("id",n));let{data:i,error:s}=await a.limit(1);if(s)throw s;if(!i||0===i.length)return o;let l=Math.random().toString(36).slice(2,6);o=`${f(e)}-${l}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function w(e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e||"").trim()).filter(Boolean)}catch{}return t.split(",").map(e=>e.trim()).filter(Boolean)}function _(e){let t;if(!e)return[];if(Array.isArray(e))t=e.map(e=>"string"==typeof e?e:null==e?"":String(e)).filter(Boolean);else{if("string"!=typeof e)return[];t=w(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function y(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let n=e.slice(0,t).trim(),o=e.slice(t+1).trim();if("depends_on"===n){r[n]=w(o);continue}"true"===o?r[n]=!0:"false"===o?r[n]=!1:/^\d+$/.test(o)?r[n]=parseInt(o):r[n]=o}}return{frontmatter:r,body:t[2]}}async function k(e,r,n){if(!e||!r?.length)return;let o=n??t(),a=new Set,i=[...r];for(;i.length;){let t=i.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(a.has(t))continue;a.add(t);let{data:r,error:n}=await o.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(n){if("PGRST116"===n.code||"42703"===n.code)continue;throw n}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!a.has(e)&&i.push(e)}}function h(e){let{body:t}=y(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function S(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function j(e,n){var o;let a=Array.isArray(e.depends_on)?e.depends_on:[];if(!a.length)return;let i=t(),{data:s,error:l}=await i.from("tasks").select("id, title, slug, status, stage").in("id",a);if(l)return;let d=(Array.isArray(s)?s:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.stage?.toLowerCase()==="intake"?" (awaiting approval)":e.status?` (${e.status})`:null)??""}`),n=`${r}: ${t.join(", ")}`;return e.length>3&&(n+=` +${e.length-3} more`),n}(d),o=i.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);n&&(o=o.eq("user_id",n));let{error:a}=await o;if(a&&"42703"!==a.code)throw a;return}if("blocked"===e.status&&"string"==typeof(o=e.blocked_reason)&&o.startsWith(r)){let t=i.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);n&&(t=t.eq("user_id",n));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function T(e,r){console.log("getTasks called with userId:",e);let n=t().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(n=n.eq("user_id",e)),r?.project&&(n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?n.eq("project_id",r.project):n.eq("project",r.project)),r?.orphan&&(n=n.is("project_id",null)),r?.status&&(n=n.eq("status",r.status)),r?.search){let e=r.search;n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?n.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):n.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:o,error:a}=await n;if(a)throw a;let i=o||[];return r?.orphan?i.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):i}async function v(e,r){let n=t().from("tasks").select("*").eq("id",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function b(e,r){let n=t().from("tasks").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function I(e,r,n){let o=t(),{frontmatter:a,body:i}=y(e),s="boolean"==typeof a.swarm?a.swarm:void 0,c=n?.title||h(e),u=String(a.slug||c||"task"),p=await g(u,o),f=n?.projectId||("string"==typeof a.project_id?a.project_id:void 0),m="string"==typeof a.workflow_id?a.workflow_id:void 0,w="string"==typeof a.project?a.project:void 0;if(!w&&f){let{data:e}=await o.from("projects").select("slug").eq("id",f).single();e?.slug&&(w=e.slug)}/^---\n/.test(e);let T="string"==typeof a.provider?a.provider:null,b="string"==typeof a.model?a.model:null,I="string"==typeof a.engine?a.engine:null,q="ai"===a.created_by?"ai":"user",E=_(a.depends_on),$=_(n?.dependsOn),A=$.length>0?$:E,P={id:(0,d.randomUUID)(),content:e,description:S(i),title:c,slug:p,status:a.status||"queued",stage:a.stage||"intake",project:w||null,...void 0!==f?{project_id:f}:{},...void 0!==m?{workflow_id:m}:{},priority:a.priority,engine:I,provider:T,model:b,swarm:s,swarm_models:n?.swarmModels??null,depends_on:A.length?A:null,created_by:q,user_id:r,current_plan:n?.currentPlan||null,open_blockers:n?.openBlockers||[],next_action:n?.nextAction||null,version:1};await k(P.id,A,o);let{data:x,error:N}=await o.from("tasks").insert(P).select().single();if(N&&"42703"===N.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:n,open_blockers:a,next_action:i,version:s,depends_on:l,...d}=P;({data:x,error:N}=await o.from("tasks").insert(d).select().single())}if(N)throw N;if(!x)throw Error("Failed to create task");await j(x,r);let C=await v(x.id,r)||x,O=r||C.user_id;if(O){let e=C.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(C.depends_on)?C.depends_on:[],project:C.project||null,projectId:C.project_id||null,workflowId:C.workflow_id||null,createdBy:C.created_by||null};l({taskId:C.id,userId:O,eventType:"task.created",title:C.title||null,slug:C.slug||null,stage:C.stage||null,status:C.status||null,timestamp:e,details:t})}return C}async function q(e,r,n,o){let a=t(),{frontmatter:i,body:s}=y(r),d="boolean"==typeof i.swarm?i.swarm:void 0,c=h(r),u="string"==typeof i.project_id?i.project_id:void 0,p=Object.prototype.hasOwnProperty.call(i,"provider"),f=Object.prototype.hasOwnProperty.call(i,"model"),g=Object.prototype.hasOwnProperty.call(i,"workflow_id"),m=Object.prototype.hasOwnProperty.call(i,"depends_on"),w=_(i.depends_on),T=_(o?.dependsOn),b=o?.dependsOn!==void 0||m,I=o?.dependsOn!==void 0?T:w,q={content:r,description:S(s),title:c,status:i.status,stage:i.stage,project:i.project,...void 0!==u?{project_id:u}:{},workflow_id:g?i.workflow_id:void 0,priority:i.priority,engine:i.engine,provider:p?i.provider:null,model:f?i.model:null,swarm:d,swarm_models:o?.swarmModels??void 0,...b?{depends_on:I.length?I:null}:{},updated_at:new Date().toISOString(),current_plan:o?.currentPlan??void 0,open_blockers:o?.openBlockers??void 0,next_action:o?.nextAction??void 0};Object.keys(q).forEach(e=>{void 0===q[e]&&delete q[e]}),b&&await k(e,I,a);let E=a.from("tasks").update({...q,version:a.rpc("increment_version")}).eq("id",e);n&&(E=E.eq("user_id",n)),o?.expectedVersion!==void 0&&(E=E.eq("version",o.expectedVersion));let{data:$,error:A}=await a.from("tasks").update({...q}).eq("id",e).select().maybeSingle();if(A&&console.error(`[db.updateTask] error updating task ${e}:`,A),$||A||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(q)),A&&"42703"===A.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:i,open_blockers:s,next_action:l,version:d,depends_on:c,...u}=q,p=a.from("tasks").update(u).eq("id",e);n&&(p=p.eq("user_id",n)),{data:$,error:A}=await p.select().maybeSingle()}if(A)throw A;if(!$){let t=await v(e,n);if(!t)throw Error(`Task ${e} not found`);return t}await j($,n);let P=await v($.id,n)||$,x=n||P.user_id;if(x){let e=P.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(P.depends_on)?P.depends_on:[],project:P.project||null,projectId:P.project_id||null,workflowId:P.workflow_id||null,createdBy:P.created_by||null};l({taskId:P.id,userId:x,eventType:"task.created",title:P.title||null,slug:P.slug||null,stage:P.stage||null,status:P.status||null,timestamp:e,details:t})}return P}async function E(e,r,n=25){let o=t(),{data:a,error:i}=await o.from("tasks").select("run_index").eq("id",e).single();if(i){if(i?.code==="42703")return;throw i}let s=[r,...Array.isArray(a.run_index)?a.run_index:[]].slice(0,n),{error:l}=await o.from("tasks").update({run_index:s}).eq("id",e);if(l){if(l?.code==="42703")return;throw l}}async function $(e,r){let n=t().from("tasks").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function A(e){let r=t().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:n,error:o}=await r.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function P(e){let r=t().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:n,error:o}=await r;if(o){if(c(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let n=t().from("projects").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"projects"))return null;throw a}return o||null}async function N(e){let r=t(),{data:n,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}let C=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function O(e,r){let n=t(),o=C.test(e),a=n.from("projects").select("*");a=o?a.eq("id",e):a.eq("slug",e),r&&(a=a.eq("user_id",r));let i=await a.maybeSingle();if(i.error){if(c(i.error,"projects"))return null;throw i.error}let s=i.data;if(!s)return null;let l=await N(s.id);return{...s,repos:l}}async function L(e,t,r){if(!t.length)return[];let n=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:o,error:a}=await r.from("project_repos").insert(n).select("*");if(a){if(c(a,"project_repos"))return[];throw a}return o||[]}async function R(e,r,n){if(!r.name?.trim())throw Error("Project name is required");let o=n??t(),a=r.name.trim()||"project",i=await m(a,e,o),s={user_id:e,name:r.name.trim(),slug:i,description:r.description??null,workflow_id:r.workflow_id??null},{data:l,error:d}=await o.from("projects").insert(s).select("*").single();if(d)throw d;let c=await L(l.id,r.repos??[],o);return{...l,repos:c}}async function D(e,r,n,o){let a=o??t(),i=C.test(e),s=e;if(!i){let t=await x(e,r);if(!t)return null;s=t.id}let l={};if(void 0!==n.name){let e=n.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==n.slug){let e=n.slug?.trim();e&&(l.slug=e)}if(void 0!==n.description&&(l.description=n.description),void 0!==n.metadata&&(l.metadata=n.metadata),void 0!==n.ci_cd_info&&(l.ci_cd_info=n.ci_cd_info),void 0!==n.workflow_id&&(l.workflow_id=n.workflow_id),Object.keys(l).length){let{error:e}=await a.from("projects").update(l).eq("id",s).eq("user_id",r);if(e)throw e}if(n.repos){let{data:e,error:t}=await a.from("project_repos").select("*").eq("project_id",s);if(t&&!c(t,"project_repos"))throw t;let r=e||[],o=new Set(r.map(e=>e.id)),i=new Set(n.repos.map(e=>e.id).filter(e=>!!e));for(let e of r){if(i.has(e.id))continue;let{error:t}=await a.from("project_repos").delete().eq("id",e.id).eq("project_id",s);if(t&&!c(t,"project_repos"))throw t}for(let e of n.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:s};if(e.id&&o.has(e.id)){let{error:r}=await a.from("project_repos").update(t).eq("id",e.id).eq("project_id",s);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await a.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return O(s,r)}async function W(e,r,n){let o=n??t(),{error:a}=await o.from("projects").delete().eq("id",e).eq("user_id",r);if(a)throw a}async function M(e,r,n){let o=n??t(),{data:a,error:i}=await o.from("projects").select("id, slug").eq("id",e).eq("user_id",r).maybeSingle();if(i)throw i;if(!a)throw Error("Project not found");let{data:s,error:l}=await o.from("tasks").select("id, project").eq("user_id",r).is("project_id",null);if(l)throw l;let d=String(a.slug||"").trim().toLowerCase(),c=(s||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!c.length)return{updatedCount:0,taskIds:[]};let{error:u}=await o.from("tasks").update({project:a.slug,project_id:a.id,updated_at:new Date().toISOString()}).eq("user_id",r).is("project_id",null).in("id",c);if(u)throw u;return{updatedCount:c.length,taskIds:c}}let U="00000000-0000-0000-0000-000000000001",B=[{id:"00000000-0000-0000-0001-000000000001",name:"INTAKE",label:"Intake",prompt:"New task. Triage, scope, and prepare for work.",position:0,node_type:"step"},{id:"00000000-0000-0000-0001-000000000002",name:"PROGRESS",label:"Progress",prompt:"Task is actively being worked on.",position:1,node_type:"step"},{id:"00000000-0000-0000-0001-000000000003",name:"DONE",label:"Done",prompt:"Task completed.",position:2,node_type:"terminal"}],F=new Map(B.map(e=>[e.id,e]));async function Q(e){let r=t(),{error:n}=await r.from("workflows").upsert({id:U,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_nodes").upsert(B.map(e=>({...e,workflow_id:U,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:a}=await r.from("workflow_transitions").upsert([{workflow_id:U,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:U,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(a)throw a}async function G(e){let r=t(),{data:n,error:o}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(o){if(c(o,"workflows"))return[];throw o}return n||[]}async function V(e,r){let n=t().from("workflows").select("*").eq("id",e),{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"workflows"))return null;throw a}return o}async function J(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};void 0!==n.definition&&(a.definition=n.definition),void 0!==n.name&&(a.name=n.name),void 0!==n.description&&(a.description=n.description);let{data:i,error:s}=await o.from("workflows").update(a).eq("id",e).select().single();if(s)throw s;return i}async function Y(e){let r=t(),{data:n,error:o}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(o){if(c(o,"workflow_nodes"))return[];throw o}return n||[]}async function H(e,r,n){let o=t();if(e===U&&await Q(r),!await V(e,r))throw Error("Workflow not found");if(e===U){let t=n.map(t=>{let r=F.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await o.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Y(e)}return await Promise.all(n.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:n}=await o.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(n)throw n})),Y(e)}async function K(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(a){if(c(a,"workflow_nodes"))return null;throw a}return o}async function z(e){let r=t(),{data:n,error:o}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(o){if(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function X(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(a){if(c(a,"workflow_transitions"))return[];throw a}return o||[]}async function Z(e,t){let r=await V(e,t);if(!r)return null;let[n,o]=await Promise.all([Y(e),z(e)]);return{...r,nodes:n,transitions:o}}async function ee(e,r={}){let n=t(),o=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),a="string"==typeof r.after&&r.after.trim()?r.after.trim():null,i=a?null:void 0===r.tail?o:Number(r.tail),s=null!==i&&Number.isFinite(i)&&i>0,l=n.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(l=l.eq("node_id",r.nodeId)),l=a?l.gt("created_at",a).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o):s?l.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(o):l.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o);let{data:d,error:c}=await l;if(c)throw c;let u=d||[];return a?u:s?u.slice().reverse():u}async function et(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("task_logs").insert({task_id:e,content:r,log_type:n,...o?{node_id:o}:{}}).select().single();if(s)throw s;return i}function er(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function eo(e){let r=t(),n={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:er(e.inputTokens),output_tokens:er(e.outputTokens),estimated_cost:en(e.estimatedCost)},{data:o,error:a}=await r.from("task_costs").insert(n).select().single();if(a)throw a;return o}async function ea(e){let r=t(),{data:n,error:o}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(o)throw o;return n||[]}async function ei(e){return function(e){let t={},r=0,n=0,o=0;for(let a of e){let e=a.stage||"unknown",i=er(a.input_tokens),s=er(a.output_tokens),l=en(a.estimated_cost??0);r+=i,n+=s,o+=l;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=i,d.output_tokens+=s,d.estimated_cost+=l,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:n,total_cost:o,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await ea(e))}async function es(e){let r=t(),{data:n,error:o}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o)throw o;return n||[]}async function el(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("task_comments").insert({task_id:e,content:r,author_type:n,author_id:o??null}).select().single();if(s)throw s;return i}async function ed(e,r){let n=t(),{data:o,error:a}=await n.from("task_comments").select("author_id, author_type").eq("id",e).single();if(a)throw a;if(!o)throw Error("Comment not found");if("user"!==o.author_type||o.author_id!==r)throw Error("Unauthorized");let{error:i}=await n.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(i)throw i}async function ec(e,r,n){let o=t().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(o=o.eq("scope_id",r)),n&&(o=o.eq("user_id",n));let{data:a,error:i}=await o;if(i)throw i;return a||[]}async function eu(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("learnings").insert({scope:e,scope_id:n,content:r,user_id:o}).select().single();if(s)throw s;return i}async function ep(e,r){let n=t().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function ef(e,r){let n=t().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});n=e?n.or(`user_id.eq.${e},is_default.eq.true`):n.eq("is_default",!0);let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function eg(e,r,n){let o=t();if(r){let{data:t}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:a}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("is_default",!0).single();return a||null}async function em(e,r,n=[],o,a,i){let s=t(),l={stage:e,prompt:r,outputs:n,user_id:o,is_default:!o,workflow_id:i};a&&(void 0!==a.swarm&&(l.swarm=a.swarm),void 0!==a.provider&&(l.provider=a.provider),void 0!==a.model&&(l.model=a.model),void 0!==a.swarm_models&&(l.swarm_models=a.swarm_models));let{data:d,error:c}=await s.from("stage_prompts").upsert(l,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ew(e,r){let n=t().from("stage_prompts").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function e_(e){let r=t(),{data:n,error:o}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(o){if(c(o,"agents"))return[];throw o}return n||[]}async function ey(e,r){let n=t(),{data:o,error:a}=await n.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(a){if("PGRST116"===a.code||c(a,"agents"))return null;throw a}return o}async function ek(e,r){let n=t(),o={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(o.id=r.id),void 0!==r.voice&&(o.voice=r.voice),void 0!==r.seed&&(o.seed=r.seed),void 0!==r.model&&(o.model=r.model),void 0!==r.provider&&(o.provider=r.provider),void 0!==r.color&&(o.color=r.color);let{data:a,error:i}=await n.from("agents").insert(o).select().single();if(i){if(c(i,"agents"))throw Error("Agents table does not exist");throw i}return a}async function eh(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};if(void 0!==n.name&&(a.name=n.name),void 0!==n.style&&(a.style=n.style),void 0!==n.description&&(a.description=n.description),void 0!==n.voice&&(a.voice=n.voice),void 0!==n.seed&&(a.seed=n.seed),void 0!==n.model&&(a.model=n.model),void 0!==n.provider&&(a.provider=n.provider),void 0!==n.color&&(a.color=n.color),1===Object.keys(a).length)return ey(e,r);let{data:i,error:s}=await o.from("agents").update(a).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||c(s,"agents"))return null;throw s}return i}async function eS(e,r){let n=t(),{error:o}=await n.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!c(o,"agents"))throw o}async function ej(e){let r=t(),{data:n,error:o}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(o){if(c(o,"project_agents"))return[];throw o}return n||[]}async function eT(e,r,n){let o=t();if(void 0===n){let{data:t}=await o.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:i}=await o.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:n}).select().single();if(i)throw i;return a}async function ev(e,r){let n=t(),{error:o}=await n.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(o)throw o}async function eb(e,r){let n=t();for(let t=0;t<r.length;t++)await n.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return ej(e)}async function eI(e){let r=t(),{data:n,error:o}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(c(o,"project_skills"))return[];throw o}return n||[]}async function eq(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_skills").insert({project_id:e,file:r,condition:n??null}).select().single();if(i)throw i;return a}async function eE(e){let r=t(),{error:n}=await r.from("project_skills").delete().eq("id",e);if(n)throw n}async function e$(e){let r=t(),{data:n,error:o}=await r.from("project_variables").select("*").eq("project_id",e);if(o){if(c(o,"project_variables"))return[];throw o}return n||[]}async function eA(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_variables").upsert({project_id:e,key:r,value:n}).select().single();if(i)throw i;return a}async function eP(e,r){let n=t(),{error:o}=await n.from("project_variables").delete().eq("project_id",e).eq("key",r);if(o)throw o}async function ex(e,r){let n=t().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(n=n.eq("producer",r));let{data:o,error:a}=await n;if(a){if(c(a,"project_memory"))return[];throw a}return o||[]}async function eN(e,r,n,o="human"){let a=t(),{data:i,error:s}=await a.from("project_memory").insert({project_id:e,content:r,source:n??null,producer:o}).select().single();if(s)throw s;return i}async function eC(e){let r=t(),{error:n}=await r.from("project_memory").delete().eq("id",e);if(n)throw n}async function eO(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!1});if(o){if(c(o,"project_threads"))return[];throw o}return n||[]}async function eL(e,r){let n=t(),{data:o,error:a}=await n.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(a)throw a;return o}async function eR(e,r){let n=t(),{error:o}=await n.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(o)throw o}async function eD(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return o?(c(o,"project_threads"),null):n?.project_id??null}e.s(["addLearning",()=>eu,"addProjectAgent",()=>eT,"addProjectMemory",()=>eN,"addProjectSkill",()=>eq,"addProjectThread",()=>eL,"addTaskComment",()=>el,"addTaskCostEntry",()=>eo,"addTaskLog",()=>et,"appendRunToIndex",()=>E,"assignOrphanTasksToProject",()=>M,"createAgent",()=>ek,"createProject",()=>R,"createTask",()=>I,"deleteAgent",()=>eS,"deleteLearning",()=>ep,"deleteProject",()=>W,"deleteProjectMemory",()=>eC,"deleteProjectVariable",()=>eP,"deleteStagePrompt",()=>ew,"deleteTask",()=>$,"deleteTaskComment",()=>ed,"ensureNoCircularDependency",()=>k,"getAgent",()=>ey,"getAgents",()=>e_,"getLearnings",()=>ec,"getNextQueuedTask",()=>A,"getProjectAgents",()=>ej,"getProjectBySlug",()=>x,"getProjectForThread",()=>eD,"getProjectMemory",()=>ex,"getProjectRepos",()=>N,"getProjectSkills",()=>eI,"getProjectThreads",()=>eO,"getProjectVariables",()=>e$,"getProjectWithRepos",()=>O,"getProjects",()=>P,"getStagePrompt",()=>eg,"getStagePrompts",()=>ef,"getTask",()=>v,"getTaskBySlug",()=>b,"getTaskComments",()=>es,"getTaskCostEntries",()=>ea,"getTaskCostSummary",()=>ei,"getTaskLogs",()=>ee,"getTasks",()=>T,"getUserSettings",()=>u,"getWorkflow",()=>V,"getWorkflowNodeByName",()=>K,"getWorkflowNodes",()=>Y,"getWorkflowTransitions",()=>z,"getWorkflowTransitionsFromNode",()=>X,"getWorkflowWithGraph",()=>Z,"getWorkflows",()=>G,"parseFrontmatter",()=>y,"removeProjectAgent",()=>ev,"removeProjectSkill",()=>eE,"removeProjectThread",()=>eR,"reorderProjectAgents",()=>eb,"setProjectVariable",()=>eA,"updateAgent",()=>eh,"updateProject",()=>D,"updateTask",()=>q,"updateWorkflow",()=>J,"updateWorkflowNodes",()=>H,"upsertStagePrompt",()=>em,"upsertUserSettings",()=>p],99904)},87575,e=>{"use strict";var t=e.i(99904),r=e.i(65196);class n extends Error{constraint;detail;constructor(e,t){super(e),this.name="ConflictError",this.constraint=t?.constraint,this.detail=t?.detail}}class o extends Error{code;constructor(e,t){super(e),this.name="RetryableError",this.code=t}}class a extends Error{expectedVersion;actualVersion;entityId;entityType;constructor(e,t,r,n){super(void 0!==n?`Concurrent modification on ${e} ${t}: expected version ${r}, found ${n}`:`Concurrent modification on ${e} ${t}: expected version ${r}, row not updated`),this.name="ConcurrentModificationError",this.entityType=e,this.entityId=t,this.expectedVersion=r,this.actualVersion=n}}function i(e){if(!(e instanceof Error))throw e;let t=e.code??"",r=e.message??"";if("SQLITE_CONSTRAINT_UNIQUE"===t||"SQLITE_CONSTRAINT_PRIMARYKEY"===t||"SQLITE_CONSTRAINT"===t&&(r.includes("UNIQUE")||r.includes("PRIMARY KEY"))||r.includes("UNIQUE constraint failed")||r.includes("PRIMARY KEY constraint failed")){let e=r.match(/(?:UNIQUE|PRIMARY KEY) constraint failed: (.+)/);throw new n(r,{constraint:e?.[1],detail:r})}if("SQLITE_BUSY"===t||"SQLITE_LOCKED"===t||r.includes("database is locked"))throw new o(r,t||"SQLITE_BUSY");throw e}async function s(e){try{return await e()}catch(e){if(e instanceof n||e instanceof o||e instanceof a)throw e;i(e)}}class l{async transaction(e){let t=(0,r.getSQLiteDb)();t.exec("BEGIN IMMEDIATE");try{let r=await e(t);return t.exec("COMMIT"),r}catch(e){try{t.exec("ROLLBACK")}catch{}if(e instanceof n||e instanceof o||e instanceof a)throw e;i(e)}}getTasks(e,r){return t.getTasks(e,r)}getTask(e,r){return t.getTask(e,r)}getTaskBySlug(e,r){return t.getTaskBySlug(e,r)}createTask(e,r,n){return s(()=>t.createTask(e,r,n))}async updateTask(e,n,o,i){let l=i?.expectedVersion;if(void 0!==l){let d=(0,r.getSQLiteDb)();if(0===d.prepare("UPDATE tasks SET version = version + 1 WHERE id = ? AND version = ?").run(e,l).changes){let t=d.prepare("SELECT version FROM tasks WHERE id = ?").get(e);throw new a("task",e,l,t?.version)}let{expectedVersion:c,...u}=i??{};return s(()=>t.updateTask(e,n,o,u))}return(0,r.getSQLiteDb)().prepare("UPDATE tasks SET version = version + 1 WHERE id = ?").run(e),s(()=>t.updateTask(e,n,o,i))}appendRunToIndex(e,r,n){return t.appendRunToIndex(e,r,n)}deleteTask(e,r){return s(()=>t.deleteTask(e,r))}getNextQueuedTask(e){return t.getNextQueuedTask(e)}ensureNoCircularDependency(e,r,n){return t.ensureNoCircularDependency(e,r,n)}getProjects(e){return t.getProjects(e)}getProjectBySlug(e,r){return t.getProjectBySlug(e,r)}getProjectRepos(e){return t.getProjectRepos(e)}getProjectWithRepos(e,r){return t.getProjectWithRepos(e,r)}createProject(e,r,n){return s(()=>t.createProject(e,r,n))}updateProject(e,r,n,o){return t.updateProject(e,r,n,o)}deleteProject(e,r,n){return s(()=>t.deleteProject(e,r,n))}assignOrphanTasksToProject(e,r,n){return t.assignOrphanTasksToProject(e,r,n)}getWorkflows(e){return t.getWorkflows(e)}getWorkflow(e,r){return t.getWorkflow(e,r)}updateWorkflow(e,r,n){return t.updateWorkflow(e,r,n)}getWorkflowNodes(e){return t.getWorkflowNodes(e)}updateWorkflowNodes(e,r,n){return t.updateWorkflowNodes(e,r,n)}getWorkflowNodeByName(e,r){return t.getWorkflowNodeByName(e,r)}getWorkflowTransitions(e){return t.getWorkflowTransitions(e)}getWorkflowTransitionsFromNode(e,r){return t.getWorkflowTransitionsFromNode(e,r)}getWorkflowWithGraph(e,r){return t.getWorkflowWithGraph(e,r)}getTaskLogs(e,r){return t.getTaskLogs(e,r)}addTaskLog(e,r,n,o){return s(()=>t.addTaskLog(e,r,n,o))}addTaskCostEntry(e){return s(()=>t.addTaskCostEntry(e))}getTaskCostEntries(e){return t.getTaskCostEntries(e)}getTaskCostSummary(e){return t.getTaskCostSummary(e)}getTaskComments(e){return t.getTaskComments(e)}addTaskComment(e,r,n,o){return s(()=>t.addTaskComment(e,r,n,o))}deleteTaskComment(e,r){return s(()=>t.deleteTaskComment(e,r))}getLearnings(e,r,n){return t.getLearnings(e,r,n)}addLearning(e,r,n,o){return s(()=>t.addLearning(e,r,n,o))}deleteLearning(e,r){return s(()=>t.deleteLearning(e,r))}getStagePrompts(e,r){return t.getStagePrompts(e,r)}getStagePrompt(e,r,n){return t.getStagePrompt(e,r,n)}upsertStagePrompt(e,r,n,o,a,i){return s(()=>t.upsertStagePrompt(e,r,n,o,a,i))}deleteStagePrompt(e,r){return t.deleteStagePrompt(e,r)}getAgents(e){return t.getAgents(e)}getAgent(e,r){return t.getAgent(e,r)}createAgent(e,r){return s(()=>t.createAgent(e,r))}updateAgent(e,r,n){return t.updateAgent(e,r,n)}deleteAgent(e,r){return t.deleteAgent(e,r)}getProjectAgents(e){return t.getProjectAgents(e)}addProjectAgent(e,r,n){return s(()=>t.addProjectAgent(e,r,n))}removeProjectAgent(e,r){return t.removeProjectAgent(e,r)}reorderProjectAgents(e,r){return t.reorderProjectAgents(e,r)}getProjectSkills(e){return t.getProjectSkills(e)}addProjectSkill(e,r,n){return s(()=>t.addProjectSkill(e,r,n))}removeProjectSkill(e){return t.removeProjectSkill(e)}getProjectVariables(e){return t.getProjectVariables(e)}setProjectVariable(e,r,n){return s(()=>t.setProjectVariable(e,r,n))}deleteProjectVariable(e,r){return t.deleteProjectVariable(e,r)}getProjectMemory(e,r){return t.getProjectMemory(e,r)}addProjectMemory(e,r,n,o){return s(()=>t.addProjectMemory(e,r,n,o))}deleteProjectMemory(e){return t.deleteProjectMemory(e)}getProjectThreads(e){return t.getProjectThreads(e)}addProjectThread(e,r){return s(()=>t.addProjectThread(e,r))}removeProjectThread(e,r){return t.removeProjectThread(e,r)}getProjectForThread(e){return t.getProjectForThread(e)}getUserSettings(e){return t.getUserSettings(e)}upsertUserSettings(e,r,n){return s(()=>t.upsertUserSettings(e,r,n))}async healthCheck(){let e=performance.now();try{return(0,r.getSQLiteDb)().prepare("SELECT 1").get(),{adapter:"sqlite",connected:!0,latencyMs:Math.round(performance.now()-e)}}catch{return{adapter:"sqlite",connected:!1,latencyMs:Math.round(performance.now()-e)}}}}e.s(["SQLiteAdapter",()=>l],87575)},69324,e=>{"use strict";let t=function(){let{SQLiteAdapter:t}=e.r(87575);return new t}();var r=e.i(99904);let n=[["INTAKE","PROGRESS","DONE"]];async function o({workflowId:e,currentNodeName:t,decision:n,retryCount:o,maxRetries:a=3}){if("done"===String(t).trim().toLowerCase())return{nextNodeName:"done",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:"Task completed at done",logType:"checkpoint"},nodeConfig:null};let i=await (0,r.getWorkflowNodeByName)(e,t);if(!i)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:`Node '${t}' not found in workflow`,appendLog:{content:`Workflow error: node '${t}' not found`,logType:"error"},nodeConfig:null};if("terminal"===i.node_type)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};if("blocked"===n)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:i};let s=await (0,r.getWorkflowTransitionsFromNode)(e,i.id),l=function(e){switch(e){case"done":default:return"done";case"blocked":return"blocked";case"failed":case"not_done":return"failed"}}(n),d=s.find(e=>e.condition===l);if(d){let o=(await (0,r.getWorkflowNodes)(e)).find(e=>e.id===d.to_node_id);if(o){let e="terminal"===o.node_type;return{nextNodeName:o.name,nextStatus:e?"completed":"queued",retryCount:0,error:null,appendLog:{content:"done"===n?`Stage completed: ${i.label||t}`:`Transition to ${o.label||o.name}`,logType:"done"===n?"checkpoint":"system"},nodeConfig:o}}}if("done"===n)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};let c=o+1;return c<=a?{nextNodeName:t,nextStatus:"queued",retryCount:c,error:null,appendLog:{content:`Retrying (${c}/${a}) for ${i.label||t}`,logType:"system"},nodeConfig:i}:{nextNodeName:t,nextStatus:"failed",retryCount:c,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:i}}var a=e.i(54799),i=e.i(90107),s=e.i(65196);function l(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(1,e)):null}function d(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function c(e){return{id:e.id,scope:e.scope,subjectId:e.subject_id,sourceType:e.source_type,sourceId:e.source_id,kind:e.kind,title:e.title,body:e.body,confidence:l(e.confidence),durability:l(e.durability),tags:d(e.tags),evidence:d(e.evidence),metadata:function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}(e.metadata),createdAt:e.created_at,updatedAt:e.updated_at}}function u(e){return(0,s.getSQLiteDb)().prepare(`SELECT id, scope, subject_id, source_type, source_id, kind, title, body,
1
+ module.exports=[99904,45491,29264,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(65196);return t()}e.i(86213),e.s(["createAdminDbClient",()=>t],45491);let r="Waiting on dependencies",n=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class o extends Error{}function a(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>n.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function i(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,n="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||n.includes(`relation "${t}" does not exist`)||n.includes(`Could not find the table 'agx.${t}'`)||n.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new o(`Missing relation: ${e}`);throw t}async function s(e){let r=t(),{data:n,error:o}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(o&&await i("notification_webhooks",o),n)?(Array.isArray(n)?n:[n]).map(a):[]}async function l(e){if(!e.userId)return;let t=[];try{t=await s(e.userId)}catch(e){if(e instanceof o)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let n=e.timestamp||new Date().toISOString(),a={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:n,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",()=>l],29264);var d=e.i(54799);function c(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function u(e){let r=t(),{data:n,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(c(o,"user_settings"))return null;throw o}return n||null}async function p(e,r,n){let o=n?.onlyIfNewer!==!1,a=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),i=await u(e);if(o&&i?.changed_at){let e=Date.parse(i.changed_at),t=Date.parse(a);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:i,updated:!1}}let s={user_id:e,default_provider:r.default_provider??i?.default_provider??null,models:r.models??i?.models??{},provenance:r.provenance,changed_at:a},l=t(),{error:d}=await l.from("user_settings").upsert(s,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function f(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function g(e,t){let r=f(e);for(let n=0;n<5;n++){let{data:n,error:o}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(o)throw o;if(!n||0===n.length)return r;let a=Math.random().toString(36).slice(2,6);r=`${f(e)}-${a}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function m(e,t,r,n){let o=f(e);for(let a=0;a<5;a++){let a=r.from("projects").select("id").eq("slug",o).eq("user_id",t);n&&(a=a.neq("id",n));let{data:i,error:s}=await a.limit(1);if(s)throw s;if(!i||0===i.length)return o;let l=Math.random().toString(36).slice(2,6);o=`${f(e)}-${l}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function w(e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e||"").trim()).filter(Boolean)}catch{}return t.split(",").map(e=>e.trim()).filter(Boolean)}function _(e){let t;if(!e)return[];if(Array.isArray(e))t=e.map(e=>"string"==typeof e?e:null==e?"":String(e)).filter(Boolean);else{if("string"!=typeof e)return[];t=w(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function y(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let n=e.slice(0,t).trim(),o=e.slice(t+1).trim();if("depends_on"===n){r[n]=w(o);continue}"true"===o?r[n]=!0:"false"===o?r[n]=!1:/^\d+$/.test(o)?r[n]=parseInt(o):r[n]=o}}return{frontmatter:r,body:t[2]}}async function k(e,r,n){if(!e||!r?.length)return;let o=n??t(),a=new Set,i=[...r];for(;i.length;){let t=i.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(a.has(t))continue;a.add(t);let{data:r,error:n}=await o.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(n){if("PGRST116"===n.code||"42703"===n.code)continue;throw n}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!a.has(e)&&i.push(e)}}function h(e){let{body:t}=y(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function S(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function j(e,n){var o;let a=Array.isArray(e.depends_on)?e.depends_on:[];if(!a.length)return;let i=t(),{data:s,error:l}=await i.from("tasks").select("id, title, slug, status, stage").in("id",a);if(l)return;let d=(Array.isArray(s)?s:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.stage?.toLowerCase()==="intake"?" (awaiting approval)":e.status?` (${e.status})`:null)??""}`),n=`${r}: ${t.join(", ")}`;return e.length>3&&(n+=` +${e.length-3} more`),n}(d),o=i.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);n&&(o=o.eq("user_id",n));let{error:a}=await o;if(a&&"42703"!==a.code)throw a;return}if("blocked"===e.status&&"string"==typeof(o=e.blocked_reason)&&o.startsWith(r)){let t=i.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);n&&(t=t.eq("user_id",n));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function T(e,r){console.log("getTasks called with userId:",e);let n=t().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(n=n.eq("user_id",e)),r?.project&&(n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?n.eq("project_id",r.project):n.eq("project",r.project)),r?.orphan&&(n=n.is("project_id",null)),r?.status&&(n=n.eq("status",r.status)),r?.search){let e=r.search;n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?n.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):n.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:o,error:a}=await n;if(a)throw a;let i=o||[];return r?.orphan?i.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):i}async function v(e,r){let n=t().from("tasks").select("*").eq("id",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function b(e,r){let n=t().from("tasks").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function I(e,r,n){let o=t(),{frontmatter:a,body:i}=y(e),s="boolean"==typeof a.swarm?a.swarm:void 0,c=n?.title||h(e),u=String(a.slug||c||"task"),p=await g(u,o),f=n?.projectId||("string"==typeof a.project_id?a.project_id:void 0),m="string"==typeof a.workflow_id?a.workflow_id:void 0,w="string"==typeof a.project?a.project:void 0;if(!w&&f){let{data:e}=await o.from("projects").select("slug").eq("id",f).single();e?.slug&&(w=e.slug)}/^---\n/.test(e);let T="string"==typeof a.provider?a.provider:null,b="string"==typeof a.model?a.model:null,I="string"==typeof a.engine?a.engine:null,q="ai"===a.created_by?"ai":"user",E=_(a.depends_on),$=_(n?.dependsOn),A=$.length>0?$:E,P={id:(0,d.randomUUID)(),content:e,description:S(i),title:c,slug:p,status:a.status||"queued",stage:a.stage||"intake",project:w||null,...void 0!==f?{project_id:f}:{},...void 0!==m?{workflow_id:m}:{},priority:a.priority,engine:I,provider:T,model:b,swarm:s,swarm_models:n?.swarmModels??null,depends_on:A.length?A:null,created_by:q,user_id:r,current_plan:n?.currentPlan||null,open_blockers:n?.openBlockers||[],next_action:n?.nextAction||null,version:1};await k(P.id,A,o);let{data:x,error:N}=await o.from("tasks").insert(P).select().single();if(N&&"42703"===N.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:n,open_blockers:a,next_action:i,version:s,depends_on:l,...d}=P;({data:x,error:N}=await o.from("tasks").insert(d).select().single())}if(N)throw N;if(!x)throw Error("Failed to create task");await j(x,r);let C=await v(x.id,r)||x,O=r||C.user_id;if(O){let e=C.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(C.depends_on)?C.depends_on:[],project:C.project||null,projectId:C.project_id||null,workflowId:C.workflow_id||null,createdBy:C.created_by||null};l({taskId:C.id,userId:O,eventType:"task.created",title:C.title||null,slug:C.slug||null,stage:C.stage||null,status:C.status||null,timestamp:e,details:t})}return C}async function q(e,r,n,o){let a=t(),{frontmatter:i,body:s}=y(r),d="boolean"==typeof i.swarm?i.swarm:void 0,c=h(r),u="string"==typeof i.project_id?i.project_id:void 0,p=Object.prototype.hasOwnProperty.call(i,"provider"),f=Object.prototype.hasOwnProperty.call(i,"model"),g=Object.prototype.hasOwnProperty.call(i,"workflow_id"),m=Object.prototype.hasOwnProperty.call(i,"depends_on"),w=_(i.depends_on),T=_(o?.dependsOn),b=o?.dependsOn!==void 0||m,I=o?.dependsOn!==void 0?T:w,q={content:r,description:S(s),title:c,status:i.status,stage:i.stage,project:i.project,...void 0!==u?{project_id:u}:{},workflow_id:g?i.workflow_id:void 0,priority:i.priority,engine:i.engine,provider:p?i.provider:null,model:f?i.model:null,swarm:d,swarm_models:o?.swarmModels??void 0,...b?{depends_on:I.length?I:null}:{},updated_at:new Date().toISOString(),current_plan:o?.currentPlan??void 0,open_blockers:o?.openBlockers??void 0,next_action:o?.nextAction??void 0};Object.keys(q).forEach(e=>{void 0===q[e]&&delete q[e]}),b&&await k(e,I,a);let E=a.from("tasks").update({...q,version:a.rpc("increment_version")}).eq("id",e);n&&(E=E.eq("user_id",n)),o?.expectedVersion!==void 0&&(E=E.eq("version",o.expectedVersion));let{data:$,error:A}=await a.from("tasks").update({...q}).eq("id",e).select().maybeSingle();if(A&&console.error(`[db.updateTask] error updating task ${e}:`,A),$||A||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(q)),A&&"42703"===A.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:i,open_blockers:s,next_action:l,version:d,depends_on:c,...u}=q,p=a.from("tasks").update(u).eq("id",e);n&&(p=p.eq("user_id",n)),{data:$,error:A}=await p.select().maybeSingle()}if(A)throw A;if(!$){let t=await v(e,n);if(!t)throw Error(`Task ${e} not found`);return t}await j($,n);let P=await v($.id,n)||$,x=n||P.user_id;if(x){let e=P.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(P.depends_on)?P.depends_on:[],project:P.project||null,projectId:P.project_id||null,workflowId:P.workflow_id||null,createdBy:P.created_by||null};l({taskId:P.id,userId:x,eventType:"task.created",title:P.title||null,slug:P.slug||null,stage:P.stage||null,status:P.status||null,timestamp:e,details:t})}return P}async function E(e,r,n=25){let o=t(),{data:a,error:i}=await o.from("tasks").select("run_index").eq("id",e).single();if(i){if(i?.code==="42703")return;throw i}let s=[r,...Array.isArray(a.run_index)?a.run_index:[]].slice(0,n),{error:l}=await o.from("tasks").update({run_index:s}).eq("id",e);if(l){if(l?.code==="42703")return;throw l}}async function $(e,r){let n=t().from("tasks").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function A(e){let r=t().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:n,error:o}=await r.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function P(e){let r=t().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:n,error:o}=await r;if(o){if(c(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let n=t().from("projects").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"projects"))return null;throw a}return o||null}async function N(e){let r=t(),{data:n,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}let C=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function O(e,r){let n=t(),o=C.test(e),a=n.from("projects").select("*");a=o?a.eq("id",e):a.eq("slug",e),r&&(a=a.eq("user_id",r));let i=await a.maybeSingle();if(i.error){if(c(i.error,"projects"))return null;throw i.error}let s=i.data;if(!s)return null;let l=await N(s.id);return{...s,repos:l}}async function L(e,t,r){if(!t.length)return[];let n=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:o,error:a}=await r.from("project_repos").insert(n).select("*");if(a){if(c(a,"project_repos"))return[];throw a}return o||[]}async function R(e,r,n){if(!r.name?.trim())throw Error("Project name is required");let o=n??t(),a=r.name.trim()||"project",i=await m(a,e,o),s={user_id:e,name:r.name.trim(),slug:i,description:r.description??null,workflow_id:r.workflow_id??null},{data:l,error:d}=await o.from("projects").insert(s).select("*").single();if(d)throw d;let c=await L(l.id,r.repos??[],o);return{...l,repos:c}}async function D(e,r,n,o){let a=o??t(),i=C.test(e),s=e;if(!i){let t=await x(e,r);if(!t)return null;s=t.id}let l={};if(void 0!==n.name){let e=n.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==n.slug){let e=n.slug?.trim();e&&(l.slug=e)}if(void 0!==n.description&&(l.description=n.description),void 0!==n.metadata&&(l.metadata=n.metadata),void 0!==n.ci_cd_info&&(l.ci_cd_info=n.ci_cd_info),void 0!==n.workflow_id&&(l.workflow_id=n.workflow_id),Object.keys(l).length){let{error:e}=await a.from("projects").update(l).eq("id",s).eq("user_id",r);if(e)throw e}if(n.repos){let{data:e,error:t}=await a.from("project_repos").select("*").eq("project_id",s);if(t&&!c(t,"project_repos"))throw t;let r=e||[],o=new Set(r.map(e=>e.id)),i=new Set(n.repos.map(e=>e.id).filter(e=>!!e));for(let e of r){if(i.has(e.id))continue;let{error:t}=await a.from("project_repos").delete().eq("id",e.id).eq("project_id",s);if(t&&!c(t,"project_repos"))throw t}for(let e of n.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:s};if(e.id&&o.has(e.id)){let{error:r}=await a.from("project_repos").update(t).eq("id",e.id).eq("project_id",s);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await a.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return O(s,r)}async function W(e,r,n){let o=n??t(),{error:a}=await o.from("projects").delete().eq("id",e).eq("user_id",r);if(a)throw a}async function M(e,r,n){let o=n??t(),{data:a,error:i}=await o.from("projects").select("id, slug").eq("id",e).eq("user_id",r).maybeSingle();if(i)throw i;if(!a)throw Error("Project not found");let{data:s,error:l}=await o.from("tasks").select("id, project").eq("user_id",r).is("project_id",null);if(l)throw l;let d=String(a.slug||"").trim().toLowerCase(),c=(s||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!c.length)return{updatedCount:0,taskIds:[]};let{error:u}=await o.from("tasks").update({project:a.slug,project_id:a.id,updated_at:new Date().toISOString()}).eq("user_id",r).is("project_id",null).in("id",c);if(u)throw u;return{updatedCount:c.length,taskIds:c}}let U="00000000-0000-0000-0000-000000000001",B=[{id:"00000000-0000-0000-0001-000000000001",name:"INTAKE",label:"Intake",prompt:"New task. Triage, scope, and prepare for work.",position:0,node_type:"step"},{id:"00000000-0000-0000-0001-000000000002",name:"PROGRESS",label:"Progress",prompt:"Task is actively being worked on.",position:1,node_type:"step"},{id:"00000000-0000-0000-0001-000000000003",name:"DONE",label:"Done",prompt:"Task completed.",position:2,node_type:"terminal"}],F=new Map(B.map(e=>[e.id,e]));async function Q(e){let r=t(),{error:n}=await r.from("workflows").upsert({id:U,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_nodes").upsert(B.map(e=>({...e,workflow_id:U,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:a}=await r.from("workflow_transitions").upsert([{workflow_id:U,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:U,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(a)throw a}async function G(e){let r=t(),{data:n,error:o}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(o){if(c(o,"workflows"))return[];throw o}return n||[]}async function V(e,r){let n=t().from("workflows").select("*").eq("id",e),{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"workflows"))return null;throw a}return o}async function J(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};void 0!==n.definition&&(a.definition=n.definition),void 0!==n.name&&(a.name=n.name),void 0!==n.description&&(a.description=n.description);let{data:i,error:s}=await o.from("workflows").update(a).eq("id",e).select().single();if(s)throw s;return i}async function Y(e){let r=t(),{data:n,error:o}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(o){if(c(o,"workflow_nodes"))return[];throw o}return n||[]}async function H(e,r,n){let o=t();if(e===U&&await Q(r),!await V(e,r))throw Error("Workflow not found");if(e===U){let t=n.map(t=>{let r=F.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await o.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Y(e)}return await Promise.all(n.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:n}=await o.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(n)throw n})),Y(e)}async function K(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(a){if(c(a,"workflow_nodes"))return null;throw a}return o}async function z(e){let r=t(),{data:n,error:o}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(o){if(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function X(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(a){if(c(a,"workflow_transitions"))return[];throw a}return o||[]}async function Z(e,t){let r=await V(e,t);if(!r)return null;let[n,o]=await Promise.all([Y(e),z(e)]);return{...r,nodes:n,transitions:o}}async function ee(e,r={}){let n=t(),o=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),a="string"==typeof r.after&&r.after.trim()?r.after.trim():null,i=a?null:void 0===r.tail?o:Number(r.tail),s=null!==i&&Number.isFinite(i)&&i>0,l=n.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(l=l.eq("node_id",r.nodeId)),l=a?l.gt("created_at",a).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o):s?l.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(o):l.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o);let{data:d,error:c}=await l;if(c)throw c;let u=d||[];return a?u:s?u.slice().reverse():u}async function et(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("task_logs").insert({task_id:e,content:r,log_type:n,...o?{node_id:o}:{}}).select().single();if(s)throw s;return i}function er(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function eo(e){let r=t(),n={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:er(e.inputTokens),output_tokens:er(e.outputTokens),estimated_cost:en(e.estimatedCost)},{data:o,error:a}=await r.from("task_costs").insert(n).select().single();if(a)throw a;return o}async function ea(e){let r=t(),{data:n,error:o}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(o)throw o;return n||[]}async function ei(e){return function(e){let t={},r=0,n=0,o=0;for(let a of e){let e=a.stage||"unknown",i=er(a.input_tokens),s=er(a.output_tokens),l=en(a.estimated_cost??0);r+=i,n+=s,o+=l;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=i,d.output_tokens+=s,d.estimated_cost+=l,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:n,total_cost:o,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await ea(e))}async function es(e){let r=t(),{data:n,error:o}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o)throw o;return n||[]}async function el(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("task_comments").insert({task_id:e,content:r,author_type:n,author_id:o??null}).select().single();if(s)throw s;return i}async function ed(e,r){let n=t(),{data:o,error:a}=await n.from("task_comments").select("author_id, author_type").eq("id",e).single();if(a)throw a;if(!o)throw Error("Comment not found");if("user"!==o.author_type||o.author_id!==r)throw Error("Unauthorized");let{error:i}=await n.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(i)throw i}async function ec(e,r,n){let o=t().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(o=o.eq("scope_id",r)),n&&(o=o.eq("user_id",n));let{data:a,error:i}=await o;if(i)throw i;return a||[]}async function eu(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("learnings").insert({scope:e,scope_id:n,content:r,user_id:o}).select().single();if(s)throw s;return i}async function ep(e,r){let n=t().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function ef(e,r){let n=t().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});n=e?n.or(`user_id.eq.${e},is_default.eq.true`):n.eq("is_default",!0);let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function eg(e,r,n){let o=t();if(r){let{data:t}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:a}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("is_default",!0).single();return a||null}async function em(e,r,n=[],o,a,i){let s=t(),l={stage:e,prompt:r,outputs:n,user_id:o,is_default:!o,workflow_id:i};a&&(void 0!==a.swarm&&(l.swarm=a.swarm),void 0!==a.provider&&(l.provider=a.provider),void 0!==a.model&&(l.model=a.model),void 0!==a.swarm_models&&(l.swarm_models=a.swarm_models));let{data:d,error:c}=await s.from("stage_prompts").upsert(l,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ew(e,r){let n=t().from("stage_prompts").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function e_(e){let r=t(),{data:n,error:o}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(o){if(c(o,"agents"))return[];throw o}return n||[]}async function ey(e,r){let n=t(),{data:o,error:a}=await n.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(a){if("PGRST116"===a.code||c(a,"agents"))return null;throw a}return o}async function ek(e,r){let n=t(),o={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(o.id=r.id),void 0!==r.voice&&(o.voice=r.voice),void 0!==r.seed&&(o.seed=r.seed),void 0!==r.model&&(o.model=r.model),void 0!==r.provider&&(o.provider=r.provider),void 0!==r.color&&(o.color=r.color);let{data:a,error:i}=await n.from("agents").insert(o).select().single();if(i){if(c(i,"agents"))throw Error("Agents table does not exist");throw i}return a}async function eh(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};if(void 0!==n.name&&(a.name=n.name),void 0!==n.style&&(a.style=n.style),void 0!==n.description&&(a.description=n.description),void 0!==n.voice&&(a.voice=n.voice),void 0!==n.seed&&(a.seed=n.seed),void 0!==n.model&&(a.model=n.model),void 0!==n.provider&&(a.provider=n.provider),void 0!==n.color&&(a.color=n.color),1===Object.keys(a).length)return ey(e,r);let{data:i,error:s}=await o.from("agents").update(a).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||c(s,"agents"))return null;throw s}return i}async function eS(e,r){let n=t(),{error:o}=await n.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!c(o,"agents"))throw o}async function ej(e){let r=t(),{data:n,error:o}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(o){if(c(o,"project_agents"))return[];throw o}return n||[]}async function eT(e,r,n){let o=t();if(void 0===n){let{data:t}=await o.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:i}=await o.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:n}).select().single();if(i)throw i;return a}async function ev(e,r){let n=t(),{error:o}=await n.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(o)throw o}async function eb(e,r){let n=t();for(let t=0;t<r.length;t++)await n.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return ej(e)}async function eI(e){let r=t(),{data:n,error:o}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(c(o,"project_skills"))return[];throw o}return n||[]}async function eq(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_skills").insert({project_id:e,file:r,condition:n??null}).select().single();if(i)throw i;return a}async function eE(e){let r=t(),{error:n}=await r.from("project_skills").delete().eq("id",e);if(n)throw n}async function e$(e){let r=t(),{data:n,error:o}=await r.from("project_variables").select("*").eq("project_id",e);if(o){if(c(o,"project_variables"))return[];throw o}return n||[]}async function eA(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_variables").upsert({project_id:e,key:r,value:n}).select().single();if(i)throw i;return a}async function eP(e,r){let n=t(),{error:o}=await n.from("project_variables").delete().eq("project_id",e).eq("key",r);if(o)throw o}async function ex(e,r){let n=t().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(n=n.eq("producer",r));let{data:o,error:a}=await n;if(a){if(c(a,"project_memory"))return[];throw a}return o||[]}async function eN(e,r,n,o="human"){let a=t(),{data:i,error:s}=await a.from("project_memory").insert({project_id:e,content:r,source:n??null,producer:o}).select().single();if(s)throw s;return i}async function eC(e){let r=t(),{error:n}=await r.from("project_memory").delete().eq("id",e);if(n)throw n}async function eO(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(c(o,"project_threads"))return[];throw o}return n||[]}async function eL(e,r){let n=t(),{data:o,error:a}=await n.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(a)throw a;return o}async function eR(e,r){let n=t(),{error:o}=await n.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(o)throw o}async function eD(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return o?(c(o,"project_threads"),null):n?.project_id??null}e.s(["addLearning",()=>eu,"addProjectAgent",()=>eT,"addProjectMemory",()=>eN,"addProjectSkill",()=>eq,"addProjectThread",()=>eL,"addTaskComment",()=>el,"addTaskCostEntry",()=>eo,"addTaskLog",()=>et,"appendRunToIndex",()=>E,"assignOrphanTasksToProject",()=>M,"createAgent",()=>ek,"createProject",()=>R,"createTask",()=>I,"deleteAgent",()=>eS,"deleteLearning",()=>ep,"deleteProject",()=>W,"deleteProjectMemory",()=>eC,"deleteProjectVariable",()=>eP,"deleteStagePrompt",()=>ew,"deleteTask",()=>$,"deleteTaskComment",()=>ed,"ensureNoCircularDependency",()=>k,"getAgent",()=>ey,"getAgents",()=>e_,"getLearnings",()=>ec,"getNextQueuedTask",()=>A,"getProjectAgents",()=>ej,"getProjectBySlug",()=>x,"getProjectForThread",()=>eD,"getProjectMemory",()=>ex,"getProjectRepos",()=>N,"getProjectSkills",()=>eI,"getProjectThreads",()=>eO,"getProjectVariables",()=>e$,"getProjectWithRepos",()=>O,"getProjects",()=>P,"getStagePrompt",()=>eg,"getStagePrompts",()=>ef,"getTask",()=>v,"getTaskBySlug",()=>b,"getTaskComments",()=>es,"getTaskCostEntries",()=>ea,"getTaskCostSummary",()=>ei,"getTaskLogs",()=>ee,"getTasks",()=>T,"getUserSettings",()=>u,"getWorkflow",()=>V,"getWorkflowNodeByName",()=>K,"getWorkflowNodes",()=>Y,"getWorkflowTransitions",()=>z,"getWorkflowTransitionsFromNode",()=>X,"getWorkflowWithGraph",()=>Z,"getWorkflows",()=>G,"parseFrontmatter",()=>y,"removeProjectAgent",()=>ev,"removeProjectSkill",()=>eE,"removeProjectThread",()=>eR,"reorderProjectAgents",()=>eb,"setProjectVariable",()=>eA,"updateAgent",()=>eh,"updateProject",()=>D,"updateTask",()=>q,"updateWorkflow",()=>J,"updateWorkflowNodes",()=>H,"upsertStagePrompt",()=>em,"upsertUserSettings",()=>p],99904)},87575,e=>{"use strict";var t=e.i(99904),r=e.i(65196);class n extends Error{constraint;detail;constructor(e,t){super(e),this.name="ConflictError",this.constraint=t?.constraint,this.detail=t?.detail}}class o extends Error{code;constructor(e,t){super(e),this.name="RetryableError",this.code=t}}class a extends Error{expectedVersion;actualVersion;entityId;entityType;constructor(e,t,r,n){super(void 0!==n?`Concurrent modification on ${e} ${t}: expected version ${r}, found ${n}`:`Concurrent modification on ${e} ${t}: expected version ${r}, row not updated`),this.name="ConcurrentModificationError",this.entityType=e,this.entityId=t,this.expectedVersion=r,this.actualVersion=n}}function i(e){if(!(e instanceof Error))throw e;let t=e.code??"",r=e.message??"";if("SQLITE_CONSTRAINT_UNIQUE"===t||"SQLITE_CONSTRAINT_PRIMARYKEY"===t||"SQLITE_CONSTRAINT"===t&&(r.includes("UNIQUE")||r.includes("PRIMARY KEY"))||r.includes("UNIQUE constraint failed")||r.includes("PRIMARY KEY constraint failed")){let e=r.match(/(?:UNIQUE|PRIMARY KEY) constraint failed: (.+)/);throw new n(r,{constraint:e?.[1],detail:r})}if("SQLITE_BUSY"===t||"SQLITE_LOCKED"===t||r.includes("database is locked"))throw new o(r,t||"SQLITE_BUSY");throw e}async function s(e){try{return await e()}catch(e){if(e instanceof n||e instanceof o||e instanceof a)throw e;i(e)}}class l{async transaction(e){let t=(0,r.getSQLiteDb)();t.exec("BEGIN IMMEDIATE");try{let r=await e(t);return t.exec("COMMIT"),r}catch(e){try{t.exec("ROLLBACK")}catch{}if(e instanceof n||e instanceof o||e instanceof a)throw e;i(e)}}getTasks(e,r){return t.getTasks(e,r)}getTask(e,r){return t.getTask(e,r)}getTaskBySlug(e,r){return t.getTaskBySlug(e,r)}createTask(e,r,n){return s(()=>t.createTask(e,r,n))}async updateTask(e,n,o,i){let l=i?.expectedVersion;if(void 0!==l){let d=(0,r.getSQLiteDb)();if(0===d.prepare("UPDATE tasks SET version = version + 1 WHERE id = ? AND version = ?").run(e,l).changes){let t=d.prepare("SELECT version FROM tasks WHERE id = ?").get(e);throw new a("task",e,l,t?.version)}let{expectedVersion:c,...u}=i??{};return s(()=>t.updateTask(e,n,o,u))}return(0,r.getSQLiteDb)().prepare("UPDATE tasks SET version = version + 1 WHERE id = ?").run(e),s(()=>t.updateTask(e,n,o,i))}appendRunToIndex(e,r,n){return t.appendRunToIndex(e,r,n)}deleteTask(e,r){return s(()=>t.deleteTask(e,r))}getNextQueuedTask(e){return t.getNextQueuedTask(e)}ensureNoCircularDependency(e,r,n){return t.ensureNoCircularDependency(e,r,n)}getProjects(e){return t.getProjects(e)}getProjectBySlug(e,r){return t.getProjectBySlug(e,r)}getProjectRepos(e){return t.getProjectRepos(e)}getProjectWithRepos(e,r){return t.getProjectWithRepos(e,r)}createProject(e,r,n){return s(()=>t.createProject(e,r,n))}updateProject(e,r,n,o){return t.updateProject(e,r,n,o)}deleteProject(e,r,n){return s(()=>t.deleteProject(e,r,n))}assignOrphanTasksToProject(e,r,n){return t.assignOrphanTasksToProject(e,r,n)}getWorkflows(e){return t.getWorkflows(e)}getWorkflow(e,r){return t.getWorkflow(e,r)}updateWorkflow(e,r,n){return t.updateWorkflow(e,r,n)}getWorkflowNodes(e){return t.getWorkflowNodes(e)}updateWorkflowNodes(e,r,n){return t.updateWorkflowNodes(e,r,n)}getWorkflowNodeByName(e,r){return t.getWorkflowNodeByName(e,r)}getWorkflowTransitions(e){return t.getWorkflowTransitions(e)}getWorkflowTransitionsFromNode(e,r){return t.getWorkflowTransitionsFromNode(e,r)}getWorkflowWithGraph(e,r){return t.getWorkflowWithGraph(e,r)}getTaskLogs(e,r){return t.getTaskLogs(e,r)}addTaskLog(e,r,n,o){return s(()=>t.addTaskLog(e,r,n,o))}addTaskCostEntry(e){return s(()=>t.addTaskCostEntry(e))}getTaskCostEntries(e){return t.getTaskCostEntries(e)}getTaskCostSummary(e){return t.getTaskCostSummary(e)}getTaskComments(e){return t.getTaskComments(e)}addTaskComment(e,r,n,o){return s(()=>t.addTaskComment(e,r,n,o))}deleteTaskComment(e,r){return s(()=>t.deleteTaskComment(e,r))}getLearnings(e,r,n){return t.getLearnings(e,r,n)}addLearning(e,r,n,o){return s(()=>t.addLearning(e,r,n,o))}deleteLearning(e,r){return s(()=>t.deleteLearning(e,r))}getStagePrompts(e,r){return t.getStagePrompts(e,r)}getStagePrompt(e,r,n){return t.getStagePrompt(e,r,n)}upsertStagePrompt(e,r,n,o,a,i){return s(()=>t.upsertStagePrompt(e,r,n,o,a,i))}deleteStagePrompt(e,r){return t.deleteStagePrompt(e,r)}getAgents(e){return t.getAgents(e)}getAgent(e,r){return t.getAgent(e,r)}createAgent(e,r){return s(()=>t.createAgent(e,r))}updateAgent(e,r,n){return t.updateAgent(e,r,n)}deleteAgent(e,r){return t.deleteAgent(e,r)}getProjectAgents(e){return t.getProjectAgents(e)}addProjectAgent(e,r,n){return s(()=>t.addProjectAgent(e,r,n))}removeProjectAgent(e,r){return t.removeProjectAgent(e,r)}reorderProjectAgents(e,r){return t.reorderProjectAgents(e,r)}getProjectSkills(e){return t.getProjectSkills(e)}addProjectSkill(e,r,n){return s(()=>t.addProjectSkill(e,r,n))}removeProjectSkill(e){return t.removeProjectSkill(e)}getProjectVariables(e){return t.getProjectVariables(e)}setProjectVariable(e,r,n){return s(()=>t.setProjectVariable(e,r,n))}deleteProjectVariable(e,r){return t.deleteProjectVariable(e,r)}getProjectMemory(e,r){return t.getProjectMemory(e,r)}addProjectMemory(e,r,n,o){return s(()=>t.addProjectMemory(e,r,n,o))}deleteProjectMemory(e){return t.deleteProjectMemory(e)}getProjectThreads(e){return t.getProjectThreads(e)}addProjectThread(e,r){return s(()=>t.addProjectThread(e,r))}removeProjectThread(e,r){return t.removeProjectThread(e,r)}getProjectForThread(e){return t.getProjectForThread(e)}getUserSettings(e){return t.getUserSettings(e)}upsertUserSettings(e,r,n){return s(()=>t.upsertUserSettings(e,r,n))}async healthCheck(){let e=performance.now();try{return(0,r.getSQLiteDb)().prepare("SELECT 1").get(),{adapter:"sqlite",connected:!0,latencyMs:Math.round(performance.now()-e)}}catch{return{adapter:"sqlite",connected:!1,latencyMs:Math.round(performance.now()-e)}}}}e.s(["SQLiteAdapter",()=>l],87575)},69324,e=>{"use strict";let t=function(){let{SQLiteAdapter:t}=e.r(87575);return new t}();var r=e.i(99904);let n=[["INTAKE","PROGRESS","DONE"]];async function o({workflowId:e,currentNodeName:t,decision:n,retryCount:o,maxRetries:a=3}){if("done"===String(t).trim().toLowerCase())return{nextNodeName:"done",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:"Task completed at done",logType:"checkpoint"},nodeConfig:null};let i=await (0,r.getWorkflowNodeByName)(e,t);if(!i)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:`Node '${t}' not found in workflow`,appendLog:{content:`Workflow error: node '${t}' not found`,logType:"error"},nodeConfig:null};if("terminal"===i.node_type)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};if("blocked"===n)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:i};let s=await (0,r.getWorkflowTransitionsFromNode)(e,i.id),l=function(e){switch(e){case"done":default:return"done";case"blocked":return"blocked";case"failed":case"not_done":return"failed"}}(n),d=s.find(e=>e.condition===l);if(d){let o=(await (0,r.getWorkflowNodes)(e)).find(e=>e.id===d.to_node_id);if(o){let e="terminal"===o.node_type;return{nextNodeName:o.name,nextStatus:e?"completed":"queued",retryCount:0,error:null,appendLog:{content:"done"===n?`Stage completed: ${i.label||t}`:`Transition to ${o.label||o.name}`,logType:"done"===n?"checkpoint":"system"},nodeConfig:o}}}if("done"===n)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};let c=o+1;return c<=a?{nextNodeName:t,nextStatus:"queued",retryCount:c,error:null,appendLog:{content:`Retrying (${c}/${a}) for ${i.label||t}`,logType:"system"},nodeConfig:i}:{nextNodeName:t,nextStatus:"failed",retryCount:c,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:i}}var a=e.i(54799),i=e.i(90107),s=e.i(65196);function l(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(1,e)):null}function d(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function c(e){return{id:e.id,scope:e.scope,subjectId:e.subject_id,sourceType:e.source_type,sourceId:e.source_id,kind:e.kind,title:e.title,body:e.body,confidence:l(e.confidence),durability:l(e.durability),tags:d(e.tags),evidence:d(e.evidence),metadata:function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}(e.metadata),createdAt:e.created_at,updatedAt:e.updated_at}}function u(e){return(0,s.getSQLiteDb)().prepare(`SELECT id, scope, subject_id, source_type, source_id, kind, title, body,
2
2
  confidence, durability, tags, evidence, metadata, created_at, updated_at
3
3
  FROM knowledge_entries
4
4
  WHERE scope = ? AND subject_id = ?