@mndrk/agx 2.0.25 → 2.0.32

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 (844) hide show
  1. package/README.md +4 -6
  2. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +6 -0
  4. package/cloud-runtime/standalone/.next/build-manifest.json +4 -4
  5. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  6. package/cloud-runtime/standalone/.next/required-server-files.json +4 -4
  7. package/cloud-runtime/standalone/.next/routes-manifest.json +45 -0
  8. package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  28. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +2 -2
  30. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  34. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  35. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  37. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  38. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  39. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +2 -2
  41. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +2 -2
  43. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +2 -2
  45. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +4 -3
  47. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +3 -3
  49. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +7 -4
  51. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/app-paths-manifest.json +3 -0
  53. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/build-manifest.json +11 -0
  54. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/server-reference-manifest.json +4 -0
  55. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +8 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.map +5 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route_client-reference-manifest.js +2 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/app-paths-manifest.json +3 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/build-manifest.json +11 -0
  61. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/server-reference-manifest.json +4 -0
  62. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +7 -0
  63. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.map +5 -0
  64. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -0
  65. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route_client-reference-manifest.js +2 -0
  66. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/app-paths-manifest.json +3 -0
  67. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/build-manifest.json +11 -0
  68. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/server-reference-manifest.json +4 -0
  69. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +8 -0
  70. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.map +5 -0
  71. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -0
  72. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route_client-reference-manifest.js +2 -0
  73. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -2
  75. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +5 -4
  77. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +5 -4
  81. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js +2 -2
  84. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +2 -2
  86. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +2 -2
  89. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +2 -2
  91. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +3 -3
  93. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +3 -3
  95. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +5 -4
  97. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +4 -3
  99. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +3 -3
  101. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +3 -3
  103. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +4 -4
  105. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +4 -4
  107. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +4 -4
  109. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +4 -3
  111. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +3 -3
  113. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +3 -3
  115. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +3 -3
  117. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +4 -3
  119. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +3 -3
  123. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +5 -4
  125. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +3 -3
  128. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +5 -4
  130. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -3
  132. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +4 -3
  134. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
  139. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +6 -5
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +6 -5
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +5 -4
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +4 -3
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +4 -4
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +5 -5
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +5 -5
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +2 -2
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +5 -5
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +4 -3
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +4 -3
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +4 -4
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +5 -5
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +6 -5
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +4 -3
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +2 -2
  173. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +2 -2
  175. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +5 -4
  177. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +4 -3
  179. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +3 -3
  183. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +7 -6
  185. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  186. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +7 -6
  187. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +6 -5
  189. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +6 -5
  191. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +7 -6
  193. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +8 -6
  195. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -3
  197. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  198. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +5 -4
  199. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  200. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
  201. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +5 -4
  203. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  204. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js +2 -2
  205. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/app-paths-manifest.json +3 -0
  207. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/build-manifest.json +11 -0
  208. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/server-reference-manifest.json +4 -0
  209. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +10 -0
  210. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.map +5 -0
  211. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -0
  212. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route_client-reference-manifest.js +2 -0
  213. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +5 -2
  214. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  215. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +5 -4
  216. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +2 -2
  218. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  221. package/cloud-runtime/standalone/.next/server/app/automations.rsc +4 -4
  222. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +4 -4
  223. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  225. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  226. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  227. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +2 -2
  229. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  231. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  232. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  233. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  237. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
  240. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  242. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
  243. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  244. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  245. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  247. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  249. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  250. package/cloud-runtime/standalone/.next/server/app/index.rsc +4 -4
  251. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  252. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  253. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  254. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  256. package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  258. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +2 -2
  260. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/app-paths-manifest.json +3 -0
  263. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/build-manifest.json +18 -0
  264. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/next-font-manifest.json +11 -0
  265. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/react-loadable-manifest.json +1 -0
  266. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/server-reference-manifest.json +4 -0
  267. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js +16 -0
  268. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.map +5 -0
  269. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -0
  270. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +2 -0
  271. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +2 -2
  272. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  273. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  274. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/app-paths-manifest.json +3 -0
  275. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +18 -0
  276. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +11 -0
  277. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/react-loadable-manifest.json +1 -0
  278. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/server-reference-manifest.json +4 -0
  279. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js +16 -0
  280. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.map +5 -0
  281. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -0
  282. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +2 -0
  283. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +2 -2
  284. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  285. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  286. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  287. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +3 -3
  288. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  289. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  290. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  291. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  292. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  293. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  294. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  295. package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  296. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  297. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  298. package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
  299. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  300. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  301. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  302. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  303. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  304. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  305. package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +2 -2
  306. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  307. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  308. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  309. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  310. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  311. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  312. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  313. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  314. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  315. package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +2 -2
  316. package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
  317. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  318. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  319. package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
  320. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
  321. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  322. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  323. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  324. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  325. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  326. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +2 -2
  327. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  328. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  329. package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +2 -2
  330. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  331. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  332. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  333. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  334. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  335. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  336. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  337. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  338. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  339. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  340. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +6 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__017f03c3._.js +13 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +46 -0
  343. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__10940c29._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12afd8a3._.js +3 -0
  345. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +29 -0
  346. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__16dd1fd7._.js +13 -0
  347. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +52 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1dd062c1._.js +1 -1
  349. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +55 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2388b2b3._.js +3 -0
  351. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__241a8bcf._.js +1 -1
  352. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +20 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29ce9c60._.js +3 -0
  354. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2e596cc8._.js +4 -4
  355. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +2 -2
  356. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +14 -14
  357. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__399b2ca9._.js +3 -0
  358. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +8 -0
  359. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +52 -0
  360. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c50f159._.js +4 -4
  361. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c8624cc._.js +3 -0
  362. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d318eb0._.js +146 -0
  363. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__507a4363._.js +4 -0
  364. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +3 -0
  365. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +5 -1
  366. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59b5d4e5._.js +1 -1
  367. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5ca87ba0._.js +3 -0
  368. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5d359afa._.js +46 -0
  369. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__666f8712._.js +3 -0
  370. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c187704._.js +3 -0
  371. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c26221d._.js +7 -0
  372. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6e59b27c._.js +3 -0
  373. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74b97f0a._.js +1 -1
  374. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75bff965._.js +46 -0
  375. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +8 -8
  376. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__80655727._.js +3 -0
  377. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__86f7d27b._.js +3 -0
  378. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__94fa1edc._.js +46 -0
  379. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98535eb3._.js +3 -0
  380. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9dfaaf72._.js +52 -0
  381. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a189593a._.js +3 -0
  382. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +52 -0
  383. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b40c7aab._.js +1 -1
  384. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4d05543._.js +1 -1
  385. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +52 -0
  386. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c08bef05._.js +3 -0
  387. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5634f17._.js +112 -0
  388. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5b8ceb7._.js +3 -0
  389. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccfcbcd5._.js +42 -0
  390. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +3 -0
  391. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da20a0aa._.js +1 -1
  392. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dede3dcd._.js +75 -0
  393. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e122cae2._.js +3 -0
  394. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +25 -0
  395. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e446cb39._.js +3 -0
  396. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e6ad07c3._.js +1 -1
  397. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b70b67._.js +46 -0
  398. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5a2358a._.js +7 -0
  399. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5b93200._.js +3 -0
  400. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa0ebee3._.js +13 -0
  401. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +15 -0
  402. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fce2cdce._.js +3 -0
  403. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +3 -0
  404. package/cloud-runtime/standalone/.next/server/chunks/_05fa3b89._.js +46 -0
  405. package/cloud-runtime/standalone/.next/server/chunks/_0a767dfe._.js +3 -0
  406. package/cloud-runtime/standalone/.next/server/chunks/_2f3e5ac1._.js +6 -0
  407. package/cloud-runtime/standalone/.next/server/chunks/_3e0d34cc._.js +97 -0
  408. package/cloud-runtime/standalone/.next/server/chunks/_4190f170._.js +46 -0
  409. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a104cda8._.js → _42e9c8d5._.js} +7 -7
  410. package/cloud-runtime/standalone/.next/server/chunks/_5ca51127._.js +54 -0
  411. package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +57 -0
  412. package/cloud-runtime/standalone/.next/server/chunks/_6bb93816._.js +6 -0
  413. package/cloud-runtime/standalone/.next/server/chunks/_7011db4f._.js +3 -0
  414. package/cloud-runtime/standalone/.next/server/chunks/_8b9fde82._.js +97 -0
  415. package/cloud-runtime/standalone/.next/server/chunks/_95ac98db._.js +49 -0
  416. package/cloud-runtime/standalone/.next/server/chunks/_994414cd._.js +54 -0
  417. package/cloud-runtime/standalone/.next/server/chunks/_99b78daf._.js +46 -0
  418. package/cloud-runtime/standalone/.next/server/chunks/_a877d34f._.js +6 -0
  419. package/cloud-runtime/standalone/.next/server/chunks/_affbdbb0._.js +46 -0
  420. package/cloud-runtime/standalone/.next/server/chunks/_c31ca6ab._.js +3 -0
  421. package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
  422. package/cloud-runtime/standalone/.next/server/chunks/_ee99a36b._.js +6 -0
  423. package/cloud-runtime/standalone/.next/server/chunks/_efc73784._.js +46 -0
  424. package/cloud-runtime/standalone/.next/server/chunks/_fba13a4a._.js +6 -0
  425. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_route_actions_033ac330.js +3 -0
  426. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_signal_route_actions_4b56f1cd.js +3 -0
  427. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_route_actions_0c8cd01c.js +3 -0
  428. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_threads_knowledge_route_actions_c139bcf7.js +3 -0
  429. package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +57 -0
  430. package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +18 -0
  431. package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
  432. package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +68 -23
  433. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +74 -30
  434. package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +70 -31
  435. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +87 -17
  436. package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +294 -0
  437. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0f808fa3.js +3 -0
  438. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_2bdede98.js +3 -0
  439. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +50 -43
  440. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3d31fed0.js +3 -0
  441. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_57a073eb.js +3 -0
  442. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +3 -0
  443. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7f8022ab.js +3 -0
  444. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_84e28f38.js +3 -0
  445. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_8ec90680.js +3 -0
  446. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_a590fcd6.js +3 -0
  447. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cc6c687d.js +3 -0
  448. package/cloud-runtime/standalone/.next/server/chunks/src_graph_14067235._.js +46 -0
  449. package/cloud-runtime/standalone/.next/server/chunks/src_graph_api-route-utils_ts_b7225a0e._.js +1 -1
  450. package/cloud-runtime/standalone/.next/server/chunks/src_graph_b63e2d39._.js +46 -0
  451. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +3 -3
  452. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_a8bc8d58._.js +1 -1
  453. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1322ced8._.js +3 -0
  454. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
  455. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6e83bf83._.js +3 -0
  456. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__783669c3._.js +3 -0
  457. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +3 -0
  458. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9166c1d6._.js +3 -0
  459. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a0a1cb74._.js +3 -0
  460. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a8a8afdc._.js +3 -0
  461. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__fca7df40._.js +3 -0
  462. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ffbc2e98._.js +2 -2
  463. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27f9c020._.js → _0061ebd8._.js} +2 -2
  464. package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +3 -0
  465. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0f4e70b1._.js +3 -0
  466. package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ff7c687._.js +2 -4
  467. package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +3 -0
  468. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27cb3359._.js → _5b2b8a85._.js} +2 -2
  469. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a696e9b3._.js → _68ac991e._.js} +2 -2
  470. package/cloud-runtime/standalone/.next/server/chunks/ssr/_6de3f1de._.js +3 -0
  471. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_c838f593._.js → _6fc3736e._.js} +2 -2
  472. package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +8 -0
  473. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a0cc0fe7._.js +3 -0
  474. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a10eb951._.js +4 -0
  475. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cb4d8a23._.js +4 -0
  476. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6a367524._.js → _ccb409c5._.js} +2 -2
  477. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +1 -1
  478. package/cloud-runtime/standalone/.next/server/chunks/ssr/_e1769638._.js +2 -4
  479. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_d021529a._.js → _fb292eed._.js} +2 -2
  480. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_4b5d7c9b._.js → _ff5799d6._.js} +2 -2
  481. package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_knowledge_page_actions_1037c40a.js +3 -0
  482. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
  483. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_graph_[taskId]_page_tsx_d8b1d582._.js +1 -1
  484. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +3 -0
  485. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_welcome_page_tsx_6c79bc59._.js +3 -0
  486. package/cloud-runtime/standalone/.next/server/chunks/ssr/ce889_server_app_projects_[slug]_thread_[threadId]_page_actions_660a8857.js +3 -0
  487. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +5 -5
  488. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  489. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e70f9321._.js +3 -0
  490. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +3 -0
  491. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +4 -0
  492. package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +2 -2
  493. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  494. package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
  495. package/cloud-runtime/standalone/.next/server/next-font-manifest.json +8 -0
  496. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  497. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  498. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  499. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  500. package/cloud-runtime/standalone/.next/static/chunks/010aff7b601302de.js +16 -0
  501. package/cloud-runtime/standalone/.next/static/chunks/0c467f54bc78a380.js +1 -0
  502. package/cloud-runtime/standalone/.next/static/chunks/10b0642440302e99.css +2 -0
  503. package/cloud-runtime/standalone/.next/static/chunks/1f415d0ce7ebbd08.js +8 -0
  504. package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +1 -0
  505. package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +1 -0
  506. package/cloud-runtime/standalone/.next/static/chunks/{e44264686aa5ecbf.js → 4200b512bdc226bc.js} +1 -1
  507. package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +1 -0
  508. package/cloud-runtime/standalone/.next/static/chunks/486bf7ff282b91a6.js +5 -0
  509. package/cloud-runtime/standalone/.next/static/chunks/{616d66dbec9e4b8b.js → 58025a80caa3629d.js} +1 -1
  510. package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +1 -0
  511. package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +1 -0
  512. package/cloud-runtime/standalone/.next/static/chunks/{da434b1ad885d636.js → 651c7c97d3bd77e0.js} +2 -4
  513. package/cloud-runtime/standalone/.next/static/chunks/{45b4d0ee5c92d45b.js → 6fbe08eab578c7d3.js} +1 -1
  514. package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +1 -0
  515. package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +1 -0
  516. package/cloud-runtime/standalone/.next/static/chunks/{b4e298542d366e31.js → 87f099ea02aa419d.js} +1 -1
  517. package/cloud-runtime/standalone/.next/static/chunks/8d15ced2dc70090a.js +1 -0
  518. package/cloud-runtime/standalone/.next/static/chunks/{2acd153dc5252e88.js → 99174504a201d23e.js} +2 -4
  519. package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +1 -0
  520. package/cloud-runtime/standalone/.next/static/chunks/a66e1891e808a664.js +1 -0
  521. package/cloud-runtime/standalone/.next/static/chunks/{3344004561eabdf8.js → bc3cad3c821b169b.js} +1 -1
  522. package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +1 -0
  523. package/cloud-runtime/standalone/.next/static/chunks/cd308f61797939cd.js +6 -0
  524. package/cloud-runtime/standalone/.next/static/chunks/d5d6be8239e57c56.js +1 -0
  525. package/cloud-runtime/standalone/.next/static/chunks/{ee5f1457fbc593e1.js → dfff51033c303fc7.js} +1 -1
  526. package/cloud-runtime/standalone/.next/static/chunks/e62d5fa120fdf21f.js +1 -0
  527. package/cloud-runtime/standalone/.next/static/chunks/{turbopack-5b5918f610666d2d.js → turbopack-97e846241a3a64af.js} +1 -1
  528. package/cloud-runtime/standalone/README.md +3 -3
  529. package/cloud-runtime/standalone/app/api/chat/route.ts +38 -28
  530. package/cloud-runtime/standalone/app/api/chat-runs/[id]/route.ts +19 -0
  531. package/cloud-runtime/standalone/app/api/chat-runs/[id]/signal/route.ts +32 -0
  532. package/cloud-runtime/standalone/app/api/chat-runs/route.ts +37 -0
  533. package/cloud-runtime/standalone/app/api/history/route.ts +6 -0
  534. package/cloud-runtime/standalone/app/api/projects/[id]/memory/route.ts +17 -0
  535. package/cloud-runtime/standalone/app/api/providers/route.ts +9 -13
  536. package/cloud-runtime/standalone/app/api/schedules/debug/route.ts +23 -3
  537. package/cloud-runtime/standalone/app/api/schedules/poll/route.ts +5 -3
  538. package/cloud-runtime/standalone/app/api/schedules/route.ts +12 -17
  539. package/cloud-runtime/standalone/app/api/status/route.ts +6 -5
  540. package/cloud-runtime/standalone/app/api/threads/knowledge/route.ts +91 -0
  541. package/cloud-runtime/standalone/app/api/threads/route.ts +18 -1
  542. package/cloud-runtime/standalone/app/globals.css +22 -22
  543. package/cloud-runtime/standalone/app/projects/[slug]/graph/[taskId]/page.tsx +0 -21
  544. package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +608 -0
  545. package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +18 -2
  546. package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +1 -455
  547. package/cloud-runtime/standalone/app/projects/[slug]/thread/[threadId]/page.tsx +14 -0
  548. package/cloud-runtime/standalone/app/welcome/page.tsx +329 -107
  549. package/cloud-runtime/standalone/components/ActionToolbar.tsx +25 -0
  550. package/cloud-runtime/standalone/components/ConfirmDialog.tsx +133 -0
  551. package/cloud-runtime/standalone/components/IconButton.tsx +35 -0
  552. package/cloud-runtime/standalone/components/ProjectCard.tsx +2 -2
  553. package/cloud-runtime/standalone/components/ProjectModal.tsx +2 -2
  554. package/cloud-runtime/standalone/components/TaskCard.tsx +2 -4
  555. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +415 -76
  556. package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +152 -101
  557. package/cloud-runtime/standalone/components/chat-ui/FileMentionPopoverItem.tsx +2 -2
  558. package/cloud-runtime/standalone/components/chat-ui/MessageList.tsx +46 -43
  559. package/cloud-runtime/standalone/components/chat-ui/ThreadView.tsx +73 -34
  560. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +51 -23
  561. package/cloud-runtime/standalone/hooks/useComposerHistory.ts +130 -0
  562. package/cloud-runtime/standalone/hooks/useGroupChat.ts +24 -1
  563. package/cloud-runtime/standalone/hooks/useProcessPolling.ts +69 -6
  564. package/cloud-runtime/standalone/lib/history-store.ts +532 -38
  565. package/cloud-runtime/standalone/lib/knowledge-notes.ts +251 -0
  566. package/cloud-runtime/standalone/lib/knowledge-store.ts +233 -0
  567. package/cloud-runtime/standalone/lib/memory-extractor.ts +76 -60
  568. package/cloud-runtime/standalone/lib/mesh-core/journal.ts +30 -0
  569. package/cloud-runtime/standalone/lib/mesh-core/self.ts +94 -0
  570. package/cloud-runtime/standalone/lib/orchestrator/chat-activities.ts +60 -0
  571. package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +168 -0
  572. package/cloud-runtime/standalone/lib/orchestrator/chat-types.ts +29 -0
  573. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +20 -0
  574. package/cloud-runtime/standalone/lib/provider-clis.ts +63 -0
  575. package/cloud-runtime/standalone/lib/queue/boss.ts +2 -1
  576. package/cloud-runtime/standalone/lib/repo-knowledge.ts +19 -2
  577. package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +78 -0
  578. package/cloud-runtime/standalone/lib/stream-multiplexer.ts +101 -14
  579. package/cloud-runtime/standalone/lib/task-context.ts +7 -4
  580. package/cloud-runtime/standalone/lib/thread-knowledge-runs.ts +227 -0
  581. package/cloud-runtime/standalone/lib/thread-knowledge.ts +419 -0
  582. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/README.md +2 -2
  583. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
  584. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
  585. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/package.json +11 -5
  586. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  587. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  588. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  589. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  590. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  591. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  592. package/cloud-runtime/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  593. package/cloud-runtime/standalone/node_modules/@img/{sharp-darwin-arm64 → sharp-linux-x64}/package.json +13 -7
  594. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  595. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  596. package/cloud-runtime/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  597. package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/build/Release/better_sqlite3.node +0 -0
  598. package/cloud-runtime/standalone/package-lock.json +13 -0
  599. package/cloud-runtime/standalone/package.json +1 -0
  600. package/cloud-runtime/standalone/server.js +1 -1
  601. package/cloud-runtime/standalone/src/graph/api-schemas.ts +2 -2
  602. package/cloud-runtime/standalone/src/graph/executor.ts +9 -7
  603. package/cloud-runtime/standalone/src/graph/function-executor.ts +4 -1
  604. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +174 -0
  605. package/cloud-runtime/standalone/src/graph/types.ts +3 -3
  606. package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +5 -1
  607. package/cloud-runtime/standalone/styles/workspaceSidebar.css +2 -0
  608. package/cloud-runtime/standalone/tsconfig.json +3 -1
  609. package/cloud-runtime/standalone/worker/index.js +2930 -137
  610. package/cloud-runtime/standalone/worker/index.ts +8 -1
  611. package/package.json +1 -1
  612. package/cloud-runtime/standalone/.next/server/chunks/[externals]_child_process_964038fc._.js +0 -3
  613. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__03a1bf91._.js +0 -6
  614. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__065c5114._.js +0 -3
  615. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__07dce481._.js +0 -3
  616. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__09f46c85._.js +0 -46
  617. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__149bcf6d._.js +0 -115
  618. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14bad16e._.js +0 -3
  619. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14e3bf74._.js +0 -3
  620. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1632828c._.js +0 -46
  621. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__24b8ccd3._.js +0 -52
  622. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__284e1cbe._.js +0 -3
  623. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__28d6e806._.js +0 -3
  624. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2bcb75a7._.js +0 -3
  625. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__32e5f341._.js +0 -4
  626. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b4a126a._.js +0 -46
  627. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c7464e8._.js +0 -46
  628. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d82dc78._.js +0 -46
  629. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__406bdd54._.js +0 -46
  630. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__40d6458a._.js +0 -3
  631. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__47ca4946._.js +0 -3
  632. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__49fb4a12._.js +0 -3
  633. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5327e395._.js +0 -46
  634. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__55d75c3a._.js +0 -7
  635. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__592e81f9._.js +0 -13
  636. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5a6a194c._.js +0 -52
  637. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5af16b4f._.js +0 -3
  638. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__60ba5058._.js +0 -3
  639. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6716441c._.js +0 -3
  640. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__673aedc6._.js +0 -3
  641. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a44c891._.js +0 -3
  642. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6b680112._.js +0 -55
  643. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7312fad4._.js +0 -46
  644. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7456196c._.js +0 -52
  645. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74d26856._.js +0 -3
  646. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__772c6fae._.js +0 -3
  647. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__787ba54b._.js +0 -3
  648. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__79157eef._.js +0 -3
  649. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__82d76712._.js +0 -3
  650. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8311f060._.js +0 -6
  651. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__84e90655._.js +0 -46
  652. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__90a887dc._.js +0 -3
  653. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9345d703._.js +0 -3
  654. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98294450._.js +0 -3
  655. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__985f0d9f._.js +0 -51
  656. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9b32295e._.js +0 -3
  657. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a64d978e._.js +0 -6
  658. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__babcd1af._.js +0 -13
  659. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c16f03fb._.js +0 -13
  660. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c2767ca5._.js +0 -3
  661. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c72c6d4a._.js +0 -25
  662. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ca851b15._.js +0 -3
  663. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d25227df._.js +0 -29
  664. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e06820c3._.js +0 -6
  665. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e429a0bc._.js +0 -3
  666. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4397d43._.js +0 -7
  667. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ec8735f4._.js +0 -3
  668. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef09ab99._.js +0 -13
  669. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f366a937._.js +0 -46
  670. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fdaa8a27._.js +0 -3
  671. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fddde532._.js +0 -3
  672. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff53f445._.js +0 -3
  673. package/cloud-runtime/standalone/.next/server/chunks/_1111d342._.js +0 -101
  674. package/cloud-runtime/standalone/.next/server/chunks/_4b60ba15._.js +0 -49
  675. package/cloud-runtime/standalone/.next/server/chunks/_54252651._.js +0 -49
  676. package/cloud-runtime/standalone/.next/server/chunks/_818a89c4._.js +0 -46
  677. package/cloud-runtime/standalone/.next/server/chunks/_a4a21d4f._.js +0 -3
  678. package/cloud-runtime/standalone/.next/server/chunks/_a759d52b._.js +0 -3
  679. package/cloud-runtime/standalone/.next/server/chunks/_e6b28eae._.js +0 -46
  680. package/cloud-runtime/standalone/.next/server/chunks/_e868e7c1._.js +0 -46
  681. package/cloud-runtime/standalone/.next/server/chunks/lib_23509137._.js +0 -196
  682. package/cloud-runtime/standalone/.next/server/chunks/lib_3273d5f9._.js +0 -196
  683. package/cloud-runtime/standalone/.next/server/chunks/lib_50ba0b4c._.js +0 -63
  684. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_33963d95.js +0 -3
  685. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_56c5acb3.js +0 -3
  686. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_888b3578.js +0 -3
  687. package/cloud-runtime/standalone/.next/server/chunks/src_graph_e3bb4da8._.js +0 -46
  688. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__113d6767._.js +0 -3
  689. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a9d3855._.js +0 -3
  690. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__942ca438._.js +0 -3
  691. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce3b51aa._.js +0 -3
  692. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1ec61dee._.js +0 -3
  693. package/cloud-runtime/standalone/.next/server/chunks/ssr/_27904584._.js +0 -3
  694. package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +0 -3
  695. package/cloud-runtime/standalone/.next/server/chunks/ssr/_94effa0f._.js +0 -3
  696. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d458d1eb._.js +0 -3
  697. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fbced30b._.js +0 -3
  698. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_page_tsx_e0fabf6e._.js +0 -8
  699. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_a8f86889._.js +0 -3
  700. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_play_6595a532.js +0 -3
  701. package/cloud-runtime/standalone/.next/static/chunks/1184bf1bfdf97666.js +0 -1
  702. package/cloud-runtime/standalone/.next/static/chunks/5ace4b4f4475962a.js +0 -1
  703. package/cloud-runtime/standalone/.next/static/chunks/64f812259cf8c243.js +0 -18
  704. package/cloud-runtime/standalone/.next/static/chunks/6509f7fecbf44493.js +0 -1
  705. package/cloud-runtime/standalone/.next/static/chunks/6dbf5940e30fa9c7.js +0 -1
  706. package/cloud-runtime/standalone/.next/static/chunks/7e91f395ace1dd2c.js +0 -1
  707. package/cloud-runtime/standalone/.next/static/chunks/7f13efe9329d3f97.js +0 -1
  708. package/cloud-runtime/standalone/.next/static/chunks/80219bbddcf65109.js +0 -1
  709. package/cloud-runtime/standalone/.next/static/chunks/86ace6febb11ad71.js +0 -1
  710. package/cloud-runtime/standalone/.next/static/chunks/9d50c2514f72d926.css +0 -1
  711. package/cloud-runtime/standalone/.next/static/chunks/b079c677d9b39f98.js +0 -5
  712. package/cloud-runtime/standalone/.next/static/chunks/b88352740262931f.js +0 -6
  713. package/cloud-runtime/standalone/.next/static/chunks/bd6c5b5b4fbd6413.css +0 -2
  714. package/cloud-runtime/standalone/.next/static/chunks/c5609fd2abb65850.js +0 -1
  715. package/cloud-runtime/standalone/.next/static/chunks/d95cd010361834be.js +0 -1
  716. package/cloud-runtime/standalone/.next/static/chunks/eab1c7d0246592f8.js +0 -8
  717. package/cloud-runtime/standalone/.next/static/chunks/f7bbf5cfcfed8ba9.js +0 -1
  718. package/cloud-runtime/standalone/coverage/clover.xml +0 -1208
  719. package/cloud-runtime/standalone/coverage/coverage-final.json +0 -29
  720. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +0 -116
  721. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +0 -208
  722. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +0 -116
  723. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +0 -166
  724. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +0 -116
  725. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +0 -532
  726. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +0 -116
  727. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +0 -178
  728. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +0 -116
  729. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +0 -262
  730. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +0 -116
  731. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +0 -448
  732. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +0 -116
  733. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +0 -331
  734. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +0 -116
  735. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +0 -505
  736. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +0 -116
  737. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +0 -412
  738. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +0 -116
  739. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +0 -304
  740. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +0 -116
  741. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +0 -116
  742. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +0 -202
  743. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +0 -373
  744. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +0 -116
  745. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +0 -499
  746. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +0 -116
  747. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +0 -349
  748. package/cloud-runtime/standalone/coverage/lcov-report/base.css +0 -224
  749. package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +0 -87
  750. package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +0 -259
  751. package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +0 -1228
  752. package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +0 -1024
  753. package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +0 -211
  754. package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +0 -535
  755. package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +0 -415
  756. package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +0 -358
  757. package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +0 -439
  758. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +0 -514
  759. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +0 -256
  760. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +0 -622
  761. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +0 -253
  762. package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +0 -281
  763. package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
  764. package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +0 -116
  765. package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +0 -1042
  766. package/cloud-runtime/standalone/coverage/lcov-report/index.html +0 -341
  767. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +0 -202
  768. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +0 -172
  769. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +0 -265
  770. package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +0 -1252
  771. package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +0 -131
  772. package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +0 -409
  773. package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +0 -1165
  774. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +0 -175
  775. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +0 -157
  776. package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +0 -1
  777. package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +0 -2
  778. package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  779. package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +0 -210
  780. package/cloud-runtime/standalone/coverage/lcov.info +0 -2386
  781. package/cloud-runtime/standalone/docs/LIMITS.md +0 -63
  782. package/cloud-runtime/standalone/docs/architecture/ADR-001-hybrid-to-full-sqlite.md +0 -345
  783. package/cloud-runtime/standalone/docs/baseline/baseline-report.json +0 -1009
  784. package/cloud-runtime/standalone/docs/baseline/critical-queries.md +0 -105
  785. package/cloud-runtime/standalone/docs/baseline/lock-metrics.json +0 -21
  786. package/cloud-runtime/standalone/docs/baseline/read-latency.json +0 -146
  787. package/cloud-runtime/standalone/docs/baseline/restore-time.json +0 -10
  788. package/cloud-runtime/standalone/docs/baseline/write-metrics.json +0 -803
  789. package/cloud-runtime/standalone/docs/decisions/sqlite-migration-adr.md +0 -327
  790. package/cloud-runtime/standalone/docs/error-code-mapping.md +0 -74
  791. package/cloud-runtime/standalone/docs/migration-plan.md +0 -120
  792. package/cloud-runtime/standalone/docs/migration-spec.md +0 -345
  793. package/cloud-runtime/standalone/docs/pg-sqlite-compatibility-matrix.md +0 -554
  794. package/cloud-runtime/standalone/docs/project-agent-migration-status.md +0 -229
  795. package/cloud-runtime/standalone/docs/runbook-shadow-read.md +0 -66
  796. package/cloud-runtime/standalone/docs/runbook.md +0 -155
  797. package/cloud-runtime/standalone/docs/specs/cli-postgres-removal.md +0 -69
  798. package/cloud-runtime/standalone/docs/specs/thread-mentions.md +0 -53
  799. package/cloud-runtime/standalone/docs/ux/GlobalChatFlow.storyboard +0 -23
  800. package/cloud-runtime/standalone/docs/ux/assistant-chat-cli.md +0 -32
  801. package/cloud-runtime/standalone/mcp/dist/constants.js +0 -66
  802. package/cloud-runtime/standalone/mcp/dist/db.js +0 -220
  803. package/cloud-runtime/standalone/mcp/dist/index.js +0 -7
  804. package/cloud-runtime/standalone/mcp/dist/security.js +0 -18
  805. package/cloud-runtime/standalone/mcp/dist/server.js +0 -240
  806. package/cloud-runtime/standalone/mcp/dist/task-context.js +0 -287
  807. package/cloud-runtime/standalone/mcp/dist/test-client.js +0 -82
  808. package/cloud-runtime/standalone/mcp/dist/tools/audit.js +0 -69
  809. package/cloud-runtime/standalone/mcp/dist/tools/learnings.js +0 -88
  810. package/cloud-runtime/standalone/mcp/dist/tools/queue.js +0 -312
  811. package/cloud-runtime/standalone/mcp/dist/tools/tasks.js +0 -244
  812. package/cloud-runtime/standalone/mcp/dist/types.js +0 -74
  813. package/cloud-runtime/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  814. package/cloud-runtime/standalone/notes/comments-context-demo.md +0 -141
  815. package/cloud-runtime/standalone/notes/comments-context-plan.md +0 -119
  816. package/cloud-runtime/standalone/notes/context-audit.md +0 -21
  817. package/cloud-runtime/standalone/notes/project-layer-plan.md +0 -30
  818. package/cloud-runtime/standalone/notes/project-layer.md +0 -123
  819. package/cloud-runtime/standalone/notes/temporal-migration-design.md +0 -199
  820. package/cloud-runtime/standalone/playwright-report/data/00d55996f37c1506b90144c85493dd85032c13e5.png +0 -0
  821. package/cloud-runtime/standalone/playwright-report/data/0b9d409e57237ae111d7ba258d3dfe64dc368456.png +0 -0
  822. package/cloud-runtime/standalone/playwright-report/data/b33d5e80a15bd1deda4415b9d318ef73f581c950.png +0 -0
  823. package/cloud-runtime/standalone/playwright-report/data/b55684161aa440d0614595e13c91338f0420abbb.md +0 -131
  824. package/cloud-runtime/standalone/playwright-report/data/b9913957ae07e7565c38ddd71215be79b1ceb017.png +0 -0
  825. package/cloud-runtime/standalone/playwright-report/data/c3538be8ebbebc9fe4a7df8f12f04483af4a0d91.png +0 -0
  826. package/cloud-runtime/standalone/playwright-report/data/fe638f64ff5e36f1c30325564565662d3f57da87.md +0 -180
  827. package/cloud-runtime/standalone/playwright-report/index.html +0 -85
  828. package/cloud-runtime/standalone/test-results/auth-Authentication-Flow-S-aff25-sion-across-page-navigation-chromium/test-failed-1.png +0 -0
  829. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/error-context.md +0 -131
  830. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/test-failed-1.png +0 -0
  831. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/error-context.md +0 -180
  832. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/test-failed-1.png +0 -0
  833. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/error-context.md +0 -180
  834. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/test-failed-1.png +0 -0
  835. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/error-context.md +0 -180
  836. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/test-failed-1.png +0 -0
  837. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-Display-shows-task-count-per-column-chromium/test-failed-1.png +0 -0
  838. package/cloud-runtime/standalone/test-results/kanban-Task-Lifecycle-can-advance-task-through-all-stages-chromium/test-failed-1.png +0 -0
  839. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +0 -1
  840. /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → i_9nSHyb52FGkCbRgv7EJ}/_buildManifest.js +0 -0
  841. /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → i_9nSHyb52FGkCbRgv7EJ}/_clientMiddlewareManifest.json +0 -0
  842. /package/cloud-runtime/standalone/.next/static/{HOfhTqGoYN6GjsW9CCf3t → i_9nSHyb52FGkCbRgv7EJ}/_ssgManifest.js +0 -0
  843. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/index.js +0 -0
  844. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/versions.json +0 -0
@@ -1,4 +1,27 @@
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 f(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 p(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function g(e,t){let r=p(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=`${p(e)}-${a}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function m(e,t,r,n){let o=p(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=`${p(e)}-${l}`.slice(0,48)}return`${p(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 k(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 _(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 y(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}=_(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 q(e,r,n){let o=t(),{frontmatter:a,body:i}=_(e),s="boolean"==typeof a.swarm?a.swarm:void 0,c=n?.title||h(e),u=String(a.slug||c||"task"),f=await g(u,o),p=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&&p){let{data:e}=await o.from("projects").select("slug").eq("id",p).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,q="string"==typeof a.engine?a.engine:null,$="ai"===a.created_by?"ai":"user",I=k(a.depends_on),P=k(n?.dependsOn),x=P.length>0?P:I,A={id:(0,d.randomUUID)(),content:e,description:S(i),title:c,slug:f,status:a.status||"queued",stage:a.stage||"intake",project:w||null,...void 0!==p?{project_id:p}:{},...void 0!==m?{workflow_id:m}:{},priority:a.priority,engine:q,provider:T,model:b,swarm:s,swarm_models:n?.swarmModels??null,depends_on:x.length?x:null,created_by:$,user_id:r,current_plan:n?.currentPlan||null,open_blockers:n?.openBlockers||[],next_action:n?.nextAction||null,version:1};await y(A.id,x,o);let{data:C,error:E}=await o.from("tasks").insert(A).select().single();if(E&&"42703"===E.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}=A;({data:C,error:E}=await o.from("tasks").insert(d).select().single())}if(E)throw E;if(!C)throw Error("Failed to create task");await j(C,r);let N=await v(C.id,r)||C,O=r||N.user_id;if(O){let e=N.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(N.depends_on)?N.depends_on:[],project:N.project||null,projectId:N.project_id||null,workflowId:N.workflow_id||null,createdBy:N.created_by||null};l({taskId:N.id,userId:O,eventType:"task.created",title:N.title||null,slug:N.slug||null,stage:N.stage||null,status:N.status||null,timestamp:e,details:t})}return N}async function $(e,r,n,o){let a=t(),{frontmatter:i,body:s}=_(r),d="boolean"==typeof i.swarm?i.swarm:void 0,c=h(r),u="string"==typeof i.project_id?i.project_id:void 0,f=Object.prototype.hasOwnProperty.call(i,"provider"),p=Object.prototype.hasOwnProperty.call(i,"model"),g=Object.prototype.hasOwnProperty.call(i,"workflow_id"),m=Object.prototype.hasOwnProperty.call(i,"depends_on"),w=k(i.depends_on),T=k(o?.dependsOn),b=o?.dependsOn!==void 0||m,q=o?.dependsOn!==void 0?T:w,$={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:f?i.provider:null,model:p?i.model:null,swarm:d,swarm_models:o?.swarmModels??void 0,...b?{depends_on:q.length?q: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($).forEach(e=>{void 0===$[e]&&delete $[e]}),b&&await y(e,q,a);let I=a.from("tasks").update({...$,version:a.rpc("increment_version")}).eq("id",e);n&&(I=I.eq("user_id",n)),o?.expectedVersion!==void 0&&(I=I.eq("version",o.expectedVersion));let{data:P,error:x}=await a.from("tasks").update({...$}).eq("id",e).select().maybeSingle();if(x&&console.error(`[db.updateTask] error updating task ${e}:`,x),P||x||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys($)),x&&"42703"===x.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}=$,f=a.from("tasks").update(u).eq("id",e);n&&(f=f.eq("user_id",n)),{data:P,error:x}=await f.select().maybeSingle()}if(x)throw x;if(!P){let t=await v(e,n);if(!t)throw Error(`Task ${e} not found`);return t}await j(P,n);let A=await v(P.id,n)||P,C=n||A.user_id;if(C){let e=A.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(A.depends_on)?A.depends_on:[],project:A.project||null,projectId:A.project_id||null,workflowId:A.workflow_id||null,createdBy:A.created_by||null};l({taskId:A.id,userId:C,eventType:"task.created",title:A.title||null,slug:A.slug||null,stage:A.stage||null,status:A.status||null,timestamp:e,details:t})}return A}async function I(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 P(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 x(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 A(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 C(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 E(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 N=/^[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=N.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 E(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=N.test(e),s=e;if(!i){let t=await C(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 G(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 Q(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 Y(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 J(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 K(e,r,n){let o=t();if(e===U&&await G(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 J(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})),J(e)}async function H(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([J(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 ef(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 ep(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 ek(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 e_(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 ey(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 e_(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 eq(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 e$(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 eI(e){let r=t(),{error:n}=await r.from("project_skills").delete().eq("id",e);if(n)throw n}async function eP(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 ex(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 eA(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 eC(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 eE(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 eN(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",()=>eE,"addProjectSkill",()=>e$,"addProjectThread",()=>eL,"addTaskComment",()=>el,"addTaskCostEntry",()=>eo,"addTaskLog",()=>et,"appendRunToIndex",()=>I,"assignOrphanTasksToProject",()=>M,"createAgent",()=>ey,"createProject",()=>R,"createTask",()=>q,"deleteAgent",()=>eS,"deleteLearning",()=>ef,"deleteProject",()=>W,"deleteProjectMemory",()=>eN,"deleteProjectVariable",()=>eA,"deleteStagePrompt",()=>ew,"deleteTask",()=>P,"deleteTaskComment",()=>ed,"ensureNoCircularDependency",()=>y,"getAgent",()=>e_,"getAgents",()=>ek,"getLearnings",()=>ec,"getNextQueuedTask",()=>x,"getProjectAgents",()=>ej,"getProjectBySlug",()=>C,"getProjectForThread",()=>eD,"getProjectMemory",()=>eC,"getProjectRepos",()=>E,"getProjectSkills",()=>eq,"getProjectThreads",()=>eO,"getProjectVariables",()=>eP,"getProjectWithRepos",()=>O,"getProjects",()=>A,"getStagePrompt",()=>eg,"getStagePrompts",()=>ep,"getTask",()=>v,"getTaskBySlug",()=>b,"getTaskComments",()=>es,"getTaskCostEntries",()=>ea,"getTaskCostSummary",()=>ei,"getTaskLogs",()=>ee,"getTasks",()=>T,"getUserSettings",()=>u,"getWorkflow",()=>V,"getWorkflowNodeByName",()=>H,"getWorkflowNodes",()=>J,"getWorkflowTransitions",()=>z,"getWorkflowTransitionsFromNode",()=>X,"getWorkflowWithGraph",()=>Z,"getWorkflows",()=>Q,"parseFrontmatter",()=>_,"removeProjectAgent",()=>ev,"removeProjectSkill",()=>eI,"removeProjectThread",()=>eR,"reorderProjectAgents",()=>eb,"setProjectVariable",()=>ex,"updateAgent",()=>eh,"updateProject",()=>D,"updateTask",()=>$,"updateWorkflow",()=>Y,"updateWorkflowNodes",()=>K,"upsertStagePrompt",()=>em,"upsertUserSettings",()=>f],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);let l=new Set(["outcome","decision","pattern","gotcha"]),d=`You are a memory extractor for a task execution system.
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,
2
+ confidence, durability, tags, evidence, metadata, created_at, updated_at
3
+ FROM knowledge_entries
4
+ WHERE scope = ? AND subject_id = ?
5
+ ORDER BY updated_at DESC, created_at DESC
6
+ LIMIT ?`).all(e.scope,e.subjectId,e.limit??50).map(c)}function p(e){return e.replace(/\r\n/g,"\n").split("\n").map(e=>e.replace(/\s+$/g,"")).join("\n").trim()}function f(e){return{id:e.id,scope:e.scope,subjectId:e.subject_id,content:e.content,changeSummary:e.change_summary??null,sourceType:e.source_type,sourceId:e.source_id,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),version:Number(e.version??1),createdAt:e.created_at,updatedAt:e.updated_at}}function g(e,t){return(0,s.getSQLiteDb)().prepare(`SELECT id, scope, subject_id, content, change_summary, source_type, source_id,
7
+ metadata, version, created_at, updated_at
8
+ FROM knowledge_notes
9
+ WHERE scope = ? AND subject_id = ?
10
+ LIMIT 1`).get(e,t)}function m(e,t){let r,n=g(e,t);if(n)return f(n);let o=0===(r=Array.from(new Set(function(e,t){let r=(0,s.getSQLiteDb)();if("repo"===e){let e=r.prepare(`SELECT content
11
+ FROM repo_knowledge
12
+ WHERE repo_id = ? AND producer = 'system'
13
+ ORDER BY created_at ASC`).all(t),n=u({scope:"repo",subjectId:t,limit:100}).map(e=>e.body.trim());return[...e.map(e=>e.content.trim()),...n].filter(Boolean)}if("project"===e){let e=r.prepare(`SELECT content
14
+ FROM project_memory
15
+ WHERE project_id = ? AND producer = 'system'
16
+ ORDER BY created_at ASC`).all(t),n=u({scope:"project",subjectId:t,limit:100}).map(e=>e.body.trim());return[...e.map(e=>e.content.trim()),...n].filter(Boolean)}let n=r.prepare(`SELECT content
17
+ FROM agent_memory
18
+ WHERE agent_id = ?
19
+ ORDER BY created_at ASC
20
+ LIMIT 100`).all(t),o=u({scope:"agent",subjectId:t,limit:100}).map(e=>e.body.trim());return[...n.map(e=>e.content.trim()),...o].filter(Boolean)}(e,t)))).length?"":r.map(e=>`- ${e.replace(/^\-\s*/,"")}`).join("\n");if(!o)return null;let i=(0,s.getSQLiteDb)(),l=new Date().toISOString(),d=(0,a.randomUUID)();i.prepare(`INSERT INTO knowledge_notes (
21
+ id, scope, subject_id, content, change_summary, source_type, source_id, metadata, version, created_at, updated_at
22
+ ) VALUES (?, ?, ?, ?, ?, 'task_completion', 'legacy-synthesis', ?, 1, ?, ?)`).run(d,e,t,o,"Initial note synthesized from existing system knowledge",JSON.stringify({synthesized_from_legacy:!0}),l,l),i.prepare(`INSERT INTO knowledge_note_versions (
23
+ id, note_id, version, content, change_summary, source_type, source_id, metadata, created_at
24
+ ) VALUES (?, ?, 1, ?, ?, 'task_completion', 'legacy-synthesis', ?, ?)`).run((0,a.randomUUID)(),d,o,"Initial note synthesized from existing system knowledge",JSON.stringify({synthesized_from_legacy:!0}),l);let c=g(e,t);return c?f(c):null}function w(e,t){let r=t.trim();return r?m(e,r):null}let _=new Set(["outcome","decision","pattern","gotcha"]),y=`You are a memory extractor for a task execution system.
2
25
  Given a completed task, extract 0-3 memories worth remembering for future tasks.
3
26
 
4
27
  Each memory must be:
@@ -10,40 +33,62 @@ Each memory must be:
10
33
  - gotcha: a surprising pitfall or edge case encountered
11
34
 
12
35
  Return ONLY a JSON array. Return [] if nothing worth remembering.
13
- Do not wrap in markdown code blocks. Just raw JSON.`,c=`You are a project knowledge extractor for a task execution system.
14
- Given a completed or failed task, extract 0-2 concise project-scoped knowledge entries worth keeping.
36
+ Do not wrap in markdown code blocks. Just raw JSON.`,k=`You are maintaining a living project knowledge note for a task execution system.
37
+ Given the current project note and a completed or failed task, decide whether the note should change.
15
38
 
16
- Each entry must be:
17
- { "content": "one concise sentence" }
39
+ Return ONLY a JSON object:
40
+ {
41
+ "updated_note": "full revised note in concise markdown",
42
+ "change_summary": "short summary of what changed",
43
+ "no_change": false
44
+ }
18
45
 
19
- Only include information that is likely useful across future work in the same project:
20
- - workflows, conventions, recurring constraints
21
- - stable gotchas or environment realities
22
- - reusable project-specific practices
23
-
24
- Do not include:
25
- - repo-specific durable truths that belong in repo knowledge
26
- - one-off task status updates
27
- - vague summaries
28
-
29
- Return ONLY a JSON array. Return [] if nothing project-scoped is worth keeping.
30
- Do not wrap in markdown code blocks. Just raw JSON.`;async function u(e){let t=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),r=`${d}
46
+ Rules:
47
+ - Revise the current note instead of appending isolated bullets.
48
+ - Write like a person's living project notes, not an extracted fact list.
49
+ - The note should help someone understand what the project is, what it does, what has been decided, and what lessons now shape future work.
50
+ - Prefer short sections and narrative paragraphs in markdown. Bullets are fine only when they genuinely improve clarity.
51
+ - Preserve strong existing content when still valid.
52
+ - Merge duplicate ideas, sharpen wording, and remove stale or unsupported claims.
53
+ - Only include project-scoped knowledge likely useful across future work in the same project.
54
+ - Do not include repo-specific durable truths that belong in repo knowledge.
55
+ - Avoid generic filler and avoid sounding like an audit log.
56
+ - If nothing project-scoped changed, return {"no_change": true}.
57
+ - Do not wrap in markdown code blocks. Just raw JSON.`;async function h(e){let t=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),r=`${y}
31
58
 
32
59
  Task:
33
- ${t}`,n="";try{await (0,i.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:r,onDelta:e=>{n+=e}})}catch(e){return console.warn("[memory-extractor] LLM call failed:",e),[]}var o=n;let a=o.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(a);if(!Array.isArray(e))return[];return e.filter(e=>"object"==typeof e&&null!==e&&l.has(e.memory_type)&&"string"==typeof e.content&&e.content.trim().length>0).slice(0,3)}catch{return console.warn("[memory-extractor] Failed to parse LLM response:",a.slice(0,200)),[]}}let f=new Set(["outcome","decision","pattern","gotcha"]),p=["agent_id","agentId","agent","participant_id","participantId","assigned_agent","assignedAgent"];function g(e){return"string"!=typeof e?null:e.trim()||null}function m(e){let t=g(e.explicitAgentId);if(t)return t;let r=e.frontmatter||{};for(let e of p){let t=g(r[e]);if(t)return t}return g(e.defaultUserId)||"system"}async function w(e,t,r){let n=(0,s.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
34
- VALUES (?, ?, ?, ?, ?, ?, ?)`),o=0,i=Date.now();for(let s of r){if(!f.has(s.memory_type)||!s.content?.trim())continue;let r=(0,a.createHash)("sha256").update(s.content.trim()).digest("hex");n.run((0,a.randomUUID)(),t,e,s.memory_type,s.content.trim(),r,i).changes>0&&o++}return o}async function k(e,t,r){let n=await u(r);if(0===n.length)return;let o=await w(e,t,n);o>0&&console.log(`[memory-extractor] Stored ${o} memories for task ${e}`)}async function _(e){let t=g(e);if(!t)return null;if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t))return t;let r=(0,s.getSQLiteDb)().prepare("SELECT id FROM projects WHERE slug = ? LIMIT 1").get(t);return r?.id??null}async function y(e){let t=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),r=`${c}
60
+ ${t}`,n="";try{await (0,i.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:r,onDelta:e=>{n+=e}})}catch(e){return console.warn("[memory-extractor] LLM call failed:",e),[]}var o=n;let a=o.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(a);if(!Array.isArray(e))return[];return e.filter(e=>"object"==typeof e&&null!==e&&_.has(e.memory_type)&&"string"==typeof e.content&&e.content.trim().length>0).slice(0,3)}catch{return console.warn("[memory-extractor] Failed to parse LLM response:",a.slice(0,200)),[]}}let S=new Set(["outcome","decision","pattern","gotcha"]),j=["agent_id","agentId","agent","participant_id","participantId","assigned_agent","assignedAgent"];function T(e){return"string"!=typeof e?null:e.trim()||null}function v(e){let t=T(e.explicitAgentId);if(t)return t;let r=e.frontmatter||{};for(let e of j){let t=T(r[e]);if(t)return t}return T(e.defaultUserId)||"system"}async function b(e,t,r){let n=(0,s.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
61
+ VALUES (?, ?, ?, ?, ?, ?, ?)`),o=0,i=Date.now();for(let s of r){if(!S.has(s.memory_type)||!s.content?.trim())continue;let r=(0,a.createHash)("sha256").update(s.content.trim()).digest("hex");n.run((0,a.randomUUID)(),t,e,s.memory_type,s.content.trim(),r,i).changes>0&&o++}return o>0&&function(e){if(0===e.length)return;let t=(0,s.getSQLiteDb)(),r=new Date().toISOString(),n=t.prepare(`SELECT id
62
+ FROM knowledge_entries
63
+ WHERE scope = ? AND subject_id = ? AND content_hash = ?
64
+ LIMIT 1`),o=t.prepare(`INSERT INTO knowledge_entries (
65
+ id, scope, subject_id, source_type, source_id, kind, title, body,
66
+ confidence, durability, tags, evidence, metadata, content_hash, created_at, updated_at
67
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`),i=0;t.transaction(e=>{for(let t of e){let e=t.subjectId.trim(),s=t.title.trim(),d=t.body.trim(),c=t.sourceId.trim();if(!e||!s||!d||!c)continue;let u=(0,a.createHash)("sha256").update(`${t.scope}
68
+ ${e}
69
+ ${d}`).digest("hex");n.get(t.scope,e,u)||(o.run((0,a.randomUUID)(),t.scope,e,t.sourceType,c,t.kind,s,d,l(t.confidence),l(t.durability),JSON.stringify(function(e){let t=new Set,r=[];for(let n of e??[]){let e=String(n??"").trim().toLowerCase();!e||t.has(e)||(t.add(e),r.push(e))}return r}(t.tags)),JSON.stringify(function(e){let t=[];for(let r of e??[]){let e=String(r?.note??"").trim(),n="string"==typeof r?.id?r.id.trim():"";e&&t.push(n?{id:n,note:e}:{note:e})}return t}(t.evidence)),JSON.stringify(t.metadata??{}),u,r,r),i+=1)}})(e)}(r.map(r=>({scope:"agent",subjectId:t,sourceType:"task_completion",sourceId:e,kind:r.memory_type,title:r.content.trim().slice(0,80),body:r.content.trim(),confidence:.7,durability:.6,metadata:{task_id:e}}))),o}async function I(e,t,r){let n=await h(r);if(0===n.length)return;let o=await b(e,t,n);o>0&&console.log(`[memory-extractor] Stored ${o} memories for task ${e}`)}async function q(e){let t=T(e);if(!t)return null;if(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t))return t;let r=(0,s.getSQLiteDb)().prepare("SELECT id FROM projects WHERE slug = ? LIMIT 1").get(t);return r?.id??null}async function E(e,t){let r=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),n=`${k}
70
+
71
+ Current note:
72
+ ${t||"(empty)"}
35
73
 
36
74
  Task:
37
- ${t}`,n="";try{await (0,i.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:r,onDelta:e=>{n+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}return function(e){let t=e.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(t);if(!Array.isArray(e))return[];let r=new Set,n=[];for(let t of e){let e="object"==typeof t&&null!==t&&"string"==typeof t.content?t.content.trim():"";if(e&&!r.has(e)&&(r.add(e),n.push({content:e}),n.length>=2))break}return n}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",t.slice(0,200)),[]}}(n)}async function h(e,t,r){if(0===r.length)return 0;let n=(0,s.getSQLiteDb)(),o=new Set(n.prepare("SELECT content FROM project_memory WHERE project_id = ? AND producer = 'system'").all(e).map(e=>e.content.trim())),i=n.prepare(`INSERT INTO project_memory (id, project_id, content, source, producer, created_at)
38
- VALUES (?, ?, ?, ?, 'system', ?)`),l=0,d=new Date().toISOString();for(let n of r){let r=n.content.trim();!(!r||o.has(r))&&(i.run((0,a.randomUUID)(),e,r,`task:${t}`,d),o.add(r),l++)}return l}async function S(e,t,r){let n=await _(t);if(!n)return;let o=await y(r);if(0===o.length)return;let a=await h(n,e,o);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}var j=e.i(45491);function T(e,t){return`---
75
+ ${r}`,o="";try{await (0,i.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:n,onDelta:e=>{o+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}let a=o.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(a);if(!e||"object"!=typeof e||Array.isArray(e))return[];let t="string"==typeof e.updated_note?e.updated_note.trim():"";if(e.no_change||!t)return[];return[{updated_note:t,change_summary:"string"==typeof e.change_summary?e.change_summary.trim():void 0,no_change:!1}]}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",a.slice(0,200)),[]}}async function $(e,t,r){if(0===r.length)return 0;let n=r[0];return n&&n.updated_note?.trim()?+!!function(e){let t=(0,s.getSQLiteDb)(),r=e.subjectId.trim(),n=e.sourceId.trim(),o=p(e.content),i=e.changeSummary?.trim()||null;if(!r||!n)throw Error("subjectId and sourceId are required");let l=m(e.scope,r);if(l&&p(l.content)===o)return{note:l,changed:!1};let d=new Date().toISOString(),c=JSON.stringify(e.metadata??{});if(!l){let s=(0,a.randomUUID)();t.prepare(`INSERT INTO knowledge_notes (
76
+ id, scope, subject_id, content, change_summary, source_type, source_id, metadata, version, created_at, updated_at
77
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?)`).run(s,e.scope,r,o,i,e.sourceType,n,c,d,d),t.prepare(`INSERT INTO knowledge_note_versions (
78
+ id, note_id, version, content, change_summary, source_type, source_id, metadata, created_at
79
+ ) VALUES (?, ?, 1, ?, ?, ?, ?, ?, ?)`).run((0,a.randomUUID)(),s,o,i,e.sourceType,n,c,d);let l=w(e.scope,r);if(!l)throw Error("Failed to read created knowledge note");return{note:l,changed:!0}}let u=l.version+1;t.prepare(`UPDATE knowledge_notes
80
+ SET content = ?, change_summary = ?, source_type = ?, source_id = ?, metadata = ?, version = ?, updated_at = ?
81
+ WHERE id = ?`).run(o,i,e.sourceType,n,c,u,d,l.id),t.prepare(`INSERT INTO knowledge_note_versions (
82
+ id, note_id, version, content, change_summary, source_type, source_id, metadata, created_at
83
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run((0,a.randomUUID)(),l.id,u,o,i,e.sourceType,n,c,d);let f=w(e.scope,r);if(!f)throw Error("Failed to read updated knowledge note");return{note:f,changed:!0}}({scope:"project",subjectId:e,content:n.updated_note.trim(),changeSummary:n.change_summary,sourceType:"task_completion",sourceId:t,metadata:{task_id:t}}).changed:0}async function A(e,t,r){let n=await q(t);if(!n)return;let o=await E(r,w("project",n)?.content??"");if(0===o.length)return;let a=await $(n,e,o);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}var P=e.i(45491);function x(e,t){return`---
39
84
  ${Object.entries(e).map(([e,t])=>`${e}: ${null==t?"":String(t)}`).join("\n")}
40
85
  ---
41
- ${t}`}var v=e.i(40793),b=e.i(86213);function q(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function $(e){if(!e)return[];let t=q(e.depends_on);if(t.length)return t;if("string"==typeof e.content){let{frontmatter:t}=(0,r.parseFrontmatter)(e.content||"");return q(t.depends_on)}return[]}async function I(e,t){if(!e.length)return[];let r=(0,j.createAdminDbClient)().from("tasks").select("id, title, slug, status, stage").in("id",e);t&&(r=r.eq("user_id",t));let{data:n}=await r,o=new Map;if(Array.isArray(n))for(let e of n){var a;e&&e.id&&o.set(e.id,(a=e.id,e?{id:e.id||a||"",title:e.title||void 0,slug:e.slug||void 0,status:e.status,stage:e.stage}:{id:a||""}))}return e.map(e=>o.get(e)).filter(e=>!!e)}async function P(e,t){let r=$(e);return r.length?(await I(r,t)).filter(e=>"completed"!==(e.status||"")):[]}async function x(e,n,o){let a=n||b.LOCAL_USER.id,i=await t.getTask(e,a);if(!i)throw Error(`Task not found: ${e}`);let s=await P(i,a);if(s.length){let t=function(e){if(!e.length)return"";let t=e.slice(0,3).map(e=>{let t=e.title||e.slug||e.id||"(unknown)",r="INTAKE"===e.stage?"awaiting approval":e.status||"",n=r?` (${r})`:"";return`${t}${n}`}),r=`Waiting on dependencies: ${t.join(", ")}`;return e.length>3&&(r+=` +${e.length-3} more`),r}(s),r=(0,j.createAdminDbClient)(),{error:n}=await r.from("tasks").update({status:"blocked",blocked_reason:t,updated_at:new Date().toISOString()}).eq("id",e);if(n&&"42703"!==n.code)throw n;return{started:!1,missingDependencies:s,blockedReason:t}}if(!o?.force&&"queued"===i.status&&!i.blocked_reason)return{started:!1,missingDependencies:[],alreadyQueued:!0};let{frontmatter:l,body:d}=(0,r.parseFrontmatter)(i.content||""),c=o?.ticketType??function(e,t){for(let t of["ticket_type","type","issue_type","kind"])if("spike"===function(e){if("string"!=typeof e)return"task";let t=e.trim().toLowerCase();return"spike"===t||"spikes"===t?"spike":"task"}(e[t]))return"spike";let r=t.match(/^#\s+(.+)$/m),n=r?.[1]?.trim().toLowerCase()||"";return n.startsWith("spike:")||n.startsWith("[spike]")?"spike":"task"}(l,d),u=await (0,v.getQueue)(),f=await u.send(v.QUEUE_NAMES.TASK_PROCESS,{taskId:e,userId:a,signal:"start",ticketType:c}),p=(0,j.createAdminDbClient)(),{error:g}=await p.from("tasks").update({status:"queued",blocked_reason:null,updated_at:new Date().toISOString()}).eq("id",e);if(g&&"42703"!==g.code)throw g;return{started:!!f,jobId:f,missingDependencies:[],ticketType:c}}async function A(e,t){let r=t||b.LOCAL_USER.id,n=(0,j.createAdminDbClient)(),o=n.from("tasks").select("id").contains("depends_on",[e]);t&&(o=o.eq("user_id",t));let{data:a,error:i}=await o,s=Array.isArray(a)?a.map(e=>e?.id).filter(Boolean):[];if(i&&"42703"===i.code){let r=n.from("tasks").select("id, content");t&&(r=r.eq("user_id",t));let{data:o}=await r;s=(Array.isArray(o)?o:[]).filter(t=>$(t).includes(e)).map(e=>e?.id).filter(Boolean)}s.length&&await Promise.all(s.map(e=>x(e,r)))}var C=e.i(29264);async function E(e){let t=(0,j.createAdminDbClient)();await t.from("tasks").update({stage:e.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId)}async function N(e){let t=(0,j.createAdminDbClient)(),{data:r}=await t.from("tasks").select("stage_decisions").eq("id",e.taskId).eq("user_id",e.userId).maybeSingle(),n={...r?.stage_decisions&&"object"==typeof r.stage_decisions?r.stage_decisions:{},[e.stage]:{decision:e.decision.decision,rationale:e.decision.explanation,final_result:e.decision.final_result,decided_at:new Date().toISOString()}},{error:o}=await t.from("tasks").update({stage_decisions:n,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);if(o&&!function(e){if(!e||"object"!=typeof e)return!1;let t="code"in e?String(e.code):"",r="message"in e?String(e.message).toLowerCase():"";return("PGRST204"===t||"42703"===t)&&r.includes("stage_decisions")}(o))throw o}async function O(e){let n=await t.getTask(e.taskId,e.userId);if(!n)throw Error(`Task ${e.taskId} not found`);let o=n.stage||null,a=new Date().toISOString(),i={taskId:e.taskId,userId:e.userId,title:n.title||null,slug:n.slug||null,timestamp:a},{frontmatter:s,body:l}=(0,r.parseFrontmatter)(n.content),d=m({defaultUserId:e.userId,frontmatter:s});s.stage=e.nextStage,s.status=e.nextStatus,e.error?s.error=e.error:"error"in s&&delete s.error;let c=T(s,l);await t.updateTask(e.taskId,c,e.userId);let u=(0,j.createAdminDbClient)(),{error:f}=await u.from("tasks").update({stage:e.nextStage,status:e.nextStatus,retry_count:e.retryCount,error:e.error,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);f?console.error(`[applyStageTransition] direct update failed for ${e.taskId}:`,f):console.log(`[applyStageTransition] set ${e.taskId} to status=${e.nextStatus}, stage=${e.nextStage}`),"completed"===e.nextStatus&&(await u.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),await A(e.taskId,e.userId)),("completed"===e.nextStatus||"failed"===e.nextStatus)&&(k(e.taskId,d,{goal:String(n.content||n.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Memory extraction failed:",e)),S(e.taskId,n.project_id||n.project,{goal:String(n.content||n.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Project knowledge extraction failed:",e))),"blocked"!==e.nextStatus&&"failed"!==e.nextStatus&&(0,C.notifyTaskEvent)({...i,eventType:"task.stage_complete",stage:o,previousStage:o,nextStage:e.nextStage,status:e.nextStatus,details:{nextStatus:e.nextStatus}}),"completed"===e.nextStatus&&(0,C.notifyTaskEvent)({...i,eventType:"task.completed",stage:e.nextStage,status:e.nextStatus,details:{previousStage:o,nextStage:e.nextStage}}),"failed"===e.nextStatus&&(0,C.notifyTaskEvent)({...i,eventType:"task.failed",stage:e.nextStage,status:e.nextStatus,error:e.error,details:{previousStage:o}})}async function L(e){await t.addTaskLog(e.taskId,e.content,e.logType)}async function R(e){await t.addTaskComment(e.taskId,e.content,e.authorType||"agent")}async function D(e){let n=await t.getTask(e.taskId,e.userId);if(!n)return;let{frontmatter:o,body:a}=(0,r.parseFrontmatter)(n.content),i=m({defaultUserId:e.userId,frontmatter:o});o.status="failed",o.error=e.reason||"Cancelled";let s=T(o,a);await t.updateTask(e.taskId,s,e.userId),await t.addTaskLog(e.taskId,e.reason||"Task cancelled","error"),k(e.taskId,i,{goal:String(n.content||n.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Memory extraction failed:",e)),S(e.taskId,n.project_id||n.project,{goal:String(n.content||n.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Project knowledge extraction failed:",e));let l=(0,j.createAdminDbClient)();await l.from("tasks").update({status:"failed",error:e.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),(0,C.notifyTaskEvent)({taskId:e.taskId,userId:e.userId,eventType:"task.failed",title:n.title||null,slug:n.slug||null,stage:n.stage||null,status:"failed",error:e.reason||"Cancelled",timestamp:new Date().toISOString(),details:{previousStage:n.stage||null}})}async function W(e){let{taskId:r,userId:n,signal:o,payload:a,ticketType:i="task"}=e.data,s=await t.getTask(r,n);if(!s)return void console.log(`[processor] Task ${r} not found, skipping`);if("completed"===s.status||"failed"===s.status)return void console.log(`[processor] Task ${r} is ${s.status}, skipping`);let l=s.stage;switch(o){case"start":await U(r,l,n);break;case"agentResult":await B(r,l,n,a,i,s.retry_count||0,s.workflow_id&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(s.workflow_id)?s.workflow_id:null);break;case"humanInput":await F(r,a);break;case"daemonStep":await G(r,a);break;case"cancel":await Q(r,n,a?.reason);break;default:console.warn(`[processor] Unknown signal: ${o}`)}}async function M(e){for(let t of e)try{await W(t)}catch(e){throw console.error(`[processor] Error processing job ${t.id}:`,e),e}}async function U(e,t,r){console.log(`[processor] Starting task ${e} at stage ${t}`),await E({taskId:e,stage:t,userId:r}),await L({taskId:e,content:`Task started at stage: ${t}`,logType:"system"})}async function B(e,t,r,a,i,s,l=null){let d,c,u;console.log(`[processor] Processing agent result for ${e}: ${a.decision}`),await N({taskId:e,stage:t,decision:a,userId:r});let f=Array.isArray(a.comments)?a.comments.map(e=>String(e||"").trim()).filter(Boolean):[],p=String(a.comment||a.log||a.final_result||"").trim();for(let t of f.length>0?f:p.split("\n").map(e=>e.trim()).filter(Boolean))await R({taskId:e,content:t,authorType:"agent"});let g=null,m=null;if(l){let e=await o({workflowId:l,currentNodeName:t,decision:a.decision,retryCount:s,maxRetries:3});d=e.nextNodeName,c=e.nextStatus,u=e.retryCount,g=e.error,m=e.appendLog,console.log(`[processor] Workflow transition: ${t} -> ${d} (workflow: ${l})`)}else{let e=function({currentStage:e,decision:t,ticketType:r,retryCount:o,maxRetries:a=3}){let i=function(e,t){if("spike"===t)return"INTAKE"===e?"PROGRESS":"DONE"===e?null:"DONE";for(let t of n){let r=t.indexOf(e);if(-1!==r){if(r>=t.length-1)return null;return t[r+1]}}return null}(e,r);if("done"===t)return i?{nextStage:i,nextStatus:"queued",retryCount:0,error:null,appendLog:{content:`Stage completed: ${e}`,logType:"checkpoint"}}:{nextStage:"DONE",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at stage ${e}.`,logType:"checkpoint"}};if("blocked"===t)return{nextStage:e,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"}};if("PROGRESS"===e)return{nextStage:"PROGRESS",nextStatus:"queued",retryCount:0,error:null,appendLog:{content:"Stage not done. Retrying in PROGRESS.",logType:"system"}};let s=o+1;return s<=a?{nextStage:e,nextStatus:"queued",retryCount:s,error:null,appendLog:{content:`Retrying (${s}/${a}) for stage ${e}.`,logType:"system"}}:{nextStage:e,nextStatus:"failed",retryCount:s,error:"Task failed.",appendLog:{content:"Task failed.",logType:"error"}}}({currentStage:t,decision:a.decision,ticketType:i,retryCount:s,maxRetries:3});d=e.nextStage,c=e.nextStatus,u=e.retryCount,g=e.error,m=e.appendLog}if(await O({taskId:e,nextStage:d,nextStatus:c,retryCount:u,error:g?a.explanation||g:null,userId:r}),m){let t="error"===m.logType&&a.explanation||"system"===m.logType&&a.explanation?a.explanation:m.content;await L({taskId:e,content:t,logType:m.logType})}console.log(`[processor] Task ${e} transitioned: ${t} -> ${d}`)}async function F(e,t){console.log(`[processor] Recording human input for ${e}`),await R({taskId:e,content:t.content,authorType:t.authorType||"user"})}async function G(e,t){let r=t.provider?` provider=${t.provider}`:"",n=t.model?` model=${t.model}`:"",o=t.role?` role=${t.role}`:"",a="number"==typeof t.iteration?` iter=${t.iteration}`:"",i="exit"===t.phase?` exit=${t.exit_code}`:"",s=t.error?` error=${t.error}`:"",l=Array.isArray(t.args)?t.args.join(" "):"",d=t.stdout_tail?`
86
+ ${t}`}var N=e.i(40793),C=e.i(86213);function O(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function L(e){if(!e)return[];let t=O(e.depends_on);if(t.length)return t;if("string"==typeof e.content){let{frontmatter:t}=(0,r.parseFrontmatter)(e.content||"");return O(t.depends_on)}return[]}async function R(e,t){if(!e.length)return[];let r=(0,P.createAdminDbClient)().from("tasks").select("id, title, slug, status, stage").in("id",e);t&&(r=r.eq("user_id",t));let{data:n}=await r,o=new Map;if(Array.isArray(n))for(let e of n){var a;e&&e.id&&o.set(e.id,(a=e.id,e?{id:e.id||a||"",title:e.title||void 0,slug:e.slug||void 0,status:e.status,stage:e.stage}:{id:a||""}))}return e.map(e=>o.get(e)).filter(e=>!!e)}async function D(e,t){let r=L(e);return r.length?(await R(r,t)).filter(e=>"completed"!==(e.status||"")):[]}async function W(e,n,o){let a=n||C.LOCAL_USER.id,i=await t.getTask(e,a);if(!i)throw Error(`Task not found: ${e}`);let s=await D(i,a);if(s.length){let t=function(e){if(!e.length)return"";let t=e.slice(0,3).map(e=>{let t=e.title||e.slug||e.id||"(unknown)",r="INTAKE"===e.stage?"awaiting approval":e.status||"",n=r?` (${r})`:"";return`${t}${n}`}),r=`Waiting on dependencies: ${t.join(", ")}`;return e.length>3&&(r+=` +${e.length-3} more`),r}(s),r=(0,P.createAdminDbClient)(),{error:n}=await r.from("tasks").update({status:"blocked",blocked_reason:t,updated_at:new Date().toISOString()}).eq("id",e);if(n&&"42703"!==n.code)throw n;return{started:!1,missingDependencies:s,blockedReason:t}}if(!o?.force&&"queued"===i.status&&!i.blocked_reason)return{started:!1,missingDependencies:[],alreadyQueued:!0};let{frontmatter:l,body:d}=(0,r.parseFrontmatter)(i.content||""),c=o?.ticketType??function(e,t){for(let t of["ticket_type","type","issue_type","kind"])if("spike"===function(e){if("string"!=typeof e)return"task";let t=e.trim().toLowerCase();return"spike"===t||"spikes"===t?"spike":"task"}(e[t]))return"spike";let r=t.match(/^#\s+(.+)$/m),n=r?.[1]?.trim().toLowerCase()||"";return n.startsWith("spike:")||n.startsWith("[spike]")?"spike":"task"}(l,d),u=await (0,N.getQueue)(),p=await u.send(N.QUEUE_NAMES.TASK_PROCESS,{taskId:e,userId:a,signal:"start",ticketType:c}),f=(0,P.createAdminDbClient)(),{error:g}=await f.from("tasks").update({status:"queued",blocked_reason:null,updated_at:new Date().toISOString()}).eq("id",e);if(g&&"42703"!==g.code)throw g;return{started:!!p,jobId:p,missingDependencies:[],ticketType:c}}async function M(e,t){let r=t||C.LOCAL_USER.id,n=(0,P.createAdminDbClient)(),o=n.from("tasks").select("id").contains("depends_on",[e]);t&&(o=o.eq("user_id",t));let{data:a,error:i}=await o,s=Array.isArray(a)?a.map(e=>e?.id).filter(Boolean):[];if(i&&"42703"===i.code){let r=n.from("tasks").select("id, content");t&&(r=r.eq("user_id",t));let{data:o}=await r;s=(Array.isArray(o)?o:[]).filter(t=>L(t).includes(e)).map(e=>e?.id).filter(Boolean)}s.length&&await Promise.all(s.map(e=>W(e,r)))}var U=e.i(29264);async function B(e){let t=(0,P.createAdminDbClient)();await t.from("tasks").update({stage:e.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId)}async function F(e){let t=(0,P.createAdminDbClient)(),{data:r}=await t.from("tasks").select("stage_decisions").eq("id",e.taskId).eq("user_id",e.userId).maybeSingle(),n={...r?.stage_decisions&&"object"==typeof r.stage_decisions?r.stage_decisions:{},[e.stage]:{decision:e.decision.decision,rationale:e.decision.explanation,final_result:e.decision.final_result,decided_at:new Date().toISOString()}},{error:o}=await t.from("tasks").update({stage_decisions:n,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);if(o&&!function(e){if(!e||"object"!=typeof e)return!1;let t="code"in e?String(e.code):"",r="message"in e?String(e.message).toLowerCase():"";return("PGRST204"===t||"42703"===t)&&r.includes("stage_decisions")}(o))throw o}async function Q(e){let n=await t.getTask(e.taskId,e.userId);if(!n)throw Error(`Task ${e.taskId} not found`);let o=n.stage||null,a=new Date().toISOString(),i={taskId:e.taskId,userId:e.userId,title:n.title||null,slug:n.slug||null,timestamp:a},{frontmatter:s,body:l}=(0,r.parseFrontmatter)(n.content),d=v({defaultUserId:e.userId,frontmatter:s});s.stage=e.nextStage,s.status=e.nextStatus,e.error?s.error=e.error:"error"in s&&delete s.error;let c=x(s,l);await t.updateTask(e.taskId,c,e.userId);let u=(0,P.createAdminDbClient)(),{error:p}=await u.from("tasks").update({stage:e.nextStage,status:e.nextStatus,retry_count:e.retryCount,error:e.error,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);p?console.error(`[applyStageTransition] direct update failed for ${e.taskId}:`,p):console.log(`[applyStageTransition] set ${e.taskId} to status=${e.nextStatus}, stage=${e.nextStage}`),"completed"===e.nextStatus&&(await u.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),await M(e.taskId,e.userId)),("completed"===e.nextStatus||"failed"===e.nextStatus)&&(I(e.taskId,d,{goal:String(n.content||n.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Memory extraction failed:",e)),A(e.taskId,n.project_id||n.project,{goal:String(n.content||n.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Project knowledge extraction failed:",e))),"blocked"!==e.nextStatus&&"failed"!==e.nextStatus&&(0,U.notifyTaskEvent)({...i,eventType:"task.stage_complete",stage:o,previousStage:o,nextStage:e.nextStage,status:e.nextStatus,details:{nextStatus:e.nextStatus}}),"completed"===e.nextStatus&&(0,U.notifyTaskEvent)({...i,eventType:"task.completed",stage:e.nextStage,status:e.nextStatus,details:{previousStage:o,nextStage:e.nextStage}}),"failed"===e.nextStatus&&(0,U.notifyTaskEvent)({...i,eventType:"task.failed",stage:e.nextStage,status:e.nextStatus,error:e.error,details:{previousStage:o}})}async function G(e){await t.addTaskLog(e.taskId,e.content,e.logType)}async function V(e){await t.addTaskComment(e.taskId,e.content,e.authorType||"agent")}async function J(e){let n=await t.getTask(e.taskId,e.userId);if(!n)return;let{frontmatter:o,body:a}=(0,r.parseFrontmatter)(n.content),i=v({defaultUserId:e.userId,frontmatter:o});o.status="failed",o.error=e.reason||"Cancelled";let s=x(o,a);await t.updateTask(e.taskId,s,e.userId),await t.addTaskLog(e.taskId,e.reason||"Task cancelled","error"),I(e.taskId,i,{goal:String(n.content||n.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Memory extraction failed:",e)),A(e.taskId,n.project_id||n.project,{goal:String(n.content||n.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Project knowledge extraction failed:",e));let l=(0,P.createAdminDbClient)();await l.from("tasks").update({status:"failed",error:e.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),(0,U.notifyTaskEvent)({taskId:e.taskId,userId:e.userId,eventType:"task.failed",title:n.title||null,slug:n.slug||null,stage:n.stage||null,status:"failed",error:e.reason||"Cancelled",timestamp:new Date().toISOString(),details:{previousStage:n.stage||null}})}async function Y(e){let{taskId:r,userId:n,signal:o,payload:a,ticketType:i="task"}=e.data,s=await t.getTask(r,n);if(!s)return void console.log(`[processor] Task ${r} not found, skipping`);if("completed"===s.status||"failed"===s.status)return void console.log(`[processor] Task ${r} is ${s.status}, skipping`);let l=s.stage;switch(o){case"start":await K(r,l,n);break;case"agentResult":await z(r,l,n,a,i,s.retry_count||0,s.workflow_id&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(s.workflow_id)?s.workflow_id:null);break;case"humanInput":await X(r,a);break;case"daemonStep":await Z(r,a);break;case"cancel":await ee(r,n,a?.reason);break;default:console.warn(`[processor] Unknown signal: ${o}`)}}async function H(e){for(let t of e)try{await Y(t)}catch(e){throw console.error(`[processor] Error processing job ${t.id}:`,e),e}}async function K(e,t,r){console.log(`[processor] Starting task ${e} at stage ${t}`),await B({taskId:e,stage:t,userId:r}),await G({taskId:e,content:`Task started at stage: ${t}`,logType:"system"})}async function z(e,t,r,a,i,s,l=null){let d,c,u;console.log(`[processor] Processing agent result for ${e}: ${a.decision}`),await F({taskId:e,stage:t,decision:a,userId:r});let p=Array.isArray(a.comments)?a.comments.map(e=>String(e||"").trim()).filter(Boolean):[],f=String(a.comment||a.log||a.final_result||"").trim();for(let t of p.length>0?p:f.split("\n").map(e=>e.trim()).filter(Boolean))await V({taskId:e,content:t,authorType:"agent"});let g=null,m=null;if(l){let e=await o({workflowId:l,currentNodeName:t,decision:a.decision,retryCount:s,maxRetries:3});d=e.nextNodeName,c=e.nextStatus,u=e.retryCount,g=e.error,m=e.appendLog,console.log(`[processor] Workflow transition: ${t} -> ${d} (workflow: ${l})`)}else{let e=function({currentStage:e,decision:t,ticketType:r,retryCount:o,maxRetries:a=3}){let i=function(e,t){if("spike"===t)return"INTAKE"===e?"PROGRESS":"DONE"===e?null:"DONE";for(let t of n){let r=t.indexOf(e);if(-1!==r){if(r>=t.length-1)return null;return t[r+1]}}return null}(e,r);if("done"===t)return i?{nextStage:i,nextStatus:"queued",retryCount:0,error:null,appendLog:{content:`Stage completed: ${e}`,logType:"checkpoint"}}:{nextStage:"DONE",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at stage ${e}.`,logType:"checkpoint"}};if("blocked"===t)return{nextStage:e,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"}};if("PROGRESS"===e)return{nextStage:"PROGRESS",nextStatus:"queued",retryCount:0,error:null,appendLog:{content:"Stage not done. Retrying in PROGRESS.",logType:"system"}};let s=o+1;return s<=a?{nextStage:e,nextStatus:"queued",retryCount:s,error:null,appendLog:{content:`Retrying (${s}/${a}) for stage ${e}.`,logType:"system"}}:{nextStage:e,nextStatus:"failed",retryCount:s,error:"Task failed.",appendLog:{content:"Task failed.",logType:"error"}}}({currentStage:t,decision:a.decision,ticketType:i,retryCount:s,maxRetries:3});d=e.nextStage,c=e.nextStatus,u=e.retryCount,g=e.error,m=e.appendLog}if(await Q({taskId:e,nextStage:d,nextStatus:c,retryCount:u,error:g?a.explanation||g:null,userId:r}),m){let t="error"===m.logType&&a.explanation||"system"===m.logType&&a.explanation?a.explanation:m.content;await G({taskId:e,content:t,logType:m.logType})}console.log(`[processor] Task ${e} transitioned: ${t} -> ${d}`)}async function X(e,t){console.log(`[processor] Recording human input for ${e}`),await V({taskId:e,content:t.content,authorType:t.authorType||"user"})}async function Z(e,t){let r=t.provider?` provider=${t.provider}`:"",n=t.model?` model=${t.model}`:"",o=t.role?` role=${t.role}`:"",a="number"==typeof t.iteration?` iter=${t.iteration}`:"",i="exit"===t.phase?` exit=${t.exit_code}`:"",s=t.error?` error=${t.error}`:"",l=Array.isArray(t.args)?t.args.join(" "):"",d=t.stdout_tail?`
42
87
  stdout_tail:
43
88
  ${t.stdout_tail}`:"",c=t.stderr_tail?`
44
89
  stderr_tail:
45
90
  ${t.stderr_tail}`:"",u=`[execution/${t.kind||"daemon"}] ${t.phase||"event"} ${t.label||""}${r}${n}${o}${a}${i}${s}`.trim()+(l?`
46
91
  args: ${l}`:"")+(t.duration_ms?`
47
- duration_ms: ${t.duration_ms}`:"")+d+c;await L({taskId:e,content:u,logType:"system"})}async function Q(e,t,r){console.log(`[processor] Cancelling task ${e}: ${r||"No reason"}`),await D({taskId:e,reason:r,userId:t})}e.s(["taskProcessor",()=>M],69324)}];
92
+ duration_ms: ${t.duration_ms}`:"")+d+c;await G({taskId:e,content:u,logType:"system"})}async function ee(e,t,r){console.log(`[processor] Cancelling task ${e}: ${r||"No reason"}`),await J({taskId:e,reason:r,userId:t})}e.s(["taskProcessor",()=>H],69324)}];
48
93
 
49
94
  //# sourceMappingURL=lib_ea45fe73._.js.map