@mndrk/agx 2.2.0 → 2.3.1

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 (433) hide show
  1. package/README.md +70 -105
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +4 -4
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +4 -4
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_agents_[agentId]_page_tsx_0wm~_~t._.js +1 -1
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
  295. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
  297. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
  299. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  300. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  301. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  302. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  303. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
  307. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
  309. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
  310. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
  311. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0_cjth28_11b2.js → 08bdyjcnamzep.js} +1 -1
  312. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
  313. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
  314. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
  315. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jq0t4zip38wt.js → 0wopevh0s7.8c.js} +1 -1
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00e1ihnb6ap3t.js → 0zt2o58c5gytn.js} +2 -2
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0xu_doej_wc-3.js → 0~mcfx41q4znh.js} +3 -3
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16h9208kl5~xa.js +16 -0
  343. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
  344. package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
  345. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
  346. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
  347. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
  348. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
  349. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
  350. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
  351. package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
  352. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
  353. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
  354. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
  355. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
  356. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
  357. package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
  358. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
  359. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
  360. package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
  361. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
  362. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +5 -37
  363. package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
  364. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
  365. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
  366. package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
  367. package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
  368. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
  369. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
  370. package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
  371. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
  372. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
  373. package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
  374. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
  375. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
  376. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +4 -4
  377. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
  378. package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
  379. package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
  380. package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
  381. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
  382. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
  383. package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
  384. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
  385. package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
  386. package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
  387. package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
  388. package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
  389. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
  390. package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
  391. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  392. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
  393. package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
  394. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
  395. package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
  396. package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
  397. package/cloud-runtime/standalone/apps/local/worker/index.js +56 -5
  398. package/lib/cli/onboarding.js +8 -5
  399. package/package.json +1 -1
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_067eb..._.js +0 -3
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
  407. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-wlbe.ripd2w.css +0 -1
  408. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
  409. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
  410. package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
  411. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e6rxcxy.l5c8.js +0 -1
  412. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ime4btrg-g4l.js +0 -1
  413. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
  414. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jglardpw~5uc.js +0 -37
  415. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
  416. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ng6wy4ak35jg.js +0 -1
  417. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0n~jhoq~op4e5.js +0 -16
  418. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
  419. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
  420. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
  421. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
  422. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
  423. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
  424. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
  425. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
  426. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
  427. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16fyhcmwlw3th.js +0 -6
  428. package/cloud-runtime/standalone/apps/local/.next/static/chunks/18e8w~~mvoh5o.js +0 -1
  429. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
  430. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
  431. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_buildManifest.js +0 -0
  432. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_clientMiddlewareManifest.js +0 -0
  433. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[846888,108088,e=>{"use strict";var t=e.i(173426);let r="Waiting on dependencies",i=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class n extends Error{}function o(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>i.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function a(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,i="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||i.includes(`relation "${t}" does not exist`)||i.includes(`Could not find the table 'agx.${t}'`)||i.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new n(`Missing relation: ${e}`);throw t}async function l(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(n&&await a("notification_webhooks",n),i)?(Array.isArray(i)?i:[i]).map(o):[]}async function s(e){if(!e.userId)return;let t=[];try{t=await l(e.userId)}catch(e){if(e instanceof n)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let i=e.timestamp||new Date().toISOString(),o={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:i,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",0,s],108088);var d=e.i(254799),c=e.i(488877);function u(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 f(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(u(n,"user_settings"))return null;throw n}return i||null}async function m(e,r,i){let n=i?.onlyIfNewer!==!1,o=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),a=await f(e);if(n&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(o);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let l={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:o},s=(0,t.createAdminDbClient)(),{error:d}=await s.from("user_settings").upsert(l,{onConflict:"user_id"});if(d)throw d;let c=await f(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 w(e,t){let r=p(e);for(let i=0;i<5;i++){let{data:i,error:n}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(n)throw n;if(!i||0===i.length)return r;let o=Math.random().toString(36).slice(2,6);r=`${p(e)}-${o}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function g(e,t,r,i){let n=p(e);for(let o=0;o<5;o++){let o=r.from("projects").select("id").eq("slug",n).eq("user_id",t);i&&(o=o.neq("id",i));let{data:a,error:l}=await o.limit(1);if(l)throw l;if(!a||0===a.length)return n;let s=Math.random().toString(36).slice(2,6);n=`${p(e)}-${s}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function _(e){return e??(0,t.createAdminDbClient)()}function y(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=y(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function h(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if("depends_on"===i){r[i]=y(n);continue}"true"===n?r[i]=!0:"false"===n?r[i]=!1:/^\d+$/.test(n)?r[i]=parseInt(n):r[i]=n}}return{frontmatter:r,body:t[2]}}async function b(e,t,r){if(!e||!t?.length)return;let i=_(r),n=new Set,o=[...t];for(;o.length;){let t=o.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(n.has(t))continue;n.add(t);let{data:r,error:a}=await i.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(a){if("PGRST116"===a.code||"42703"===a.code)continue;throw a}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!n.has(e)&&o.push(e)}}function j(e){let{body:t}=h(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function v(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function q(e,i){var n;let o=Array.isArray(e.depends_on)?e.depends_on:[];if(!o.length)return;let a=(0,t.createAdminDbClient)(),{data:l,error:s}=await a.from("tasks").select("id, title, slug, status, stage").in("id",o);if(s)return;let d=(Array.isArray(l)?l:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.stage?.toLowerCase()==="intake"?" (awaiting approval)":e.status?` (${e.status})`:null)??""}`),i=`${r}: ${t.join(", ")}`;return e.length>3&&(i+=` +${e.length-3} more`),i}(d),n=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(n=n.eq("user_id",i));let{error:o}=await n;if(o&&"42703"!==o.code)throw o;return}if("blocked"===e.status&&"string"==typeof(n=e.blocked_reason)&&n.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);i&&(t=t.eq("user_id",i));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function A(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(i=i.eq("user_id",e)),r?.project&&(i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?i.eq("project_id",r.project):i.eq("project",r.project)),r?.orphan&&(i=i.is("project_id",null)),r?.status&&(i=i.eq("status",r.status)),r?.search){let e=r.search;i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?i.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):i.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:n,error:o}=await i;if(o)throw o;let a=n||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function S(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function C(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function D(e,r,i){let n=(0,t.createAdminDbClient)(),{frontmatter:o,body:a}=h(e),l="boolean"==typeof o.swarm?o.swarm:void 0,c=i?.title||j(e),u=String(o.slug||c||"task"),f=await w(u,n),m=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),p="string"==typeof o.workflow_id?o.workflow_id:void 0,g="string"==typeof o.project?o.project:void 0;if(!g&&m){let e=await W(m);e?.slug&&(g=e.slug)}/^---\n/.test(e);let _="string"==typeof o.provider?o.provider:null,y="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,C="ai"===o.created_by?"ai":"user",D=k(o.depends_on),T=k(i?.dependsOn),P=T.length>0?T:D,O={id:(0,d.randomUUID)(),content:e,description:v(a),title:c,slug:f,status:o.status||"queued",stage:o.stage||"intake",project:g||null,...void 0!==m?{project_id:m}:{},...void 0!==p?{workflow_id:p}:{},priority:o.priority,engine:A,provider:_,model:y,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:C,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await b(O.id,P,n);let{data:$,error:I}=await n.from("tasks").insert(O).select().single();if(I&&"42703"===I.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:o,next_action:a,version:l,depends_on:s,...d}=O;({data:$,error:I}=await n.from("tasks").insert(d).select().single())}if(I)throw I;if(!$)throw Error("Failed to create task");await q($,r);let N=await S($.id,r)||$,x=r||N.user_id;if(x){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};s({taskId:N.id,userId:x,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 T(e,r,i,n){let o=(0,t.createAdminDbClient)(),{frontmatter:a,body:l}=h(r),d="boolean"==typeof a.swarm?a.swarm:void 0,c=j(r),u="string"==typeof a.project_id?a.project_id:void 0,f=Object.prototype.hasOwnProperty.call(a,"provider"),m=Object.prototype.hasOwnProperty.call(a,"model"),p=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),g=k(a.depends_on),_=k(n?.dependsOn),y=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?_:g,C={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:p?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:m?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...y?{depends_on:A.length?A:null}:{},updated_at:new Date().toISOString(),current_plan:n?.currentPlan??void 0,open_blockers:n?.openBlockers??void 0,next_action:n?.nextAction??void 0};Object.keys(C).forEach(e=>{void 0===C[e]&&delete C[e]}),y&&await b(e,A,o);let D=o.from("tasks").update({...C,version:o.rpc("increment_version")}).eq("id",e);i&&(D=D.eq("user_id",i)),n?.expectedVersion!==void 0&&(D=D.eq("version",n.expectedVersion));let{data:T,error:P}=await o.from("tasks").update({...C}).eq("id",e).select().maybeSingle();if(P&&console.error(`[db.updateTask] error updating task ${e}:`,P),T||P||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(C)),P&&"42703"===P.code){let{swarm_models:t,swarm:r,workflow_id:n,current_plan:a,open_blockers:l,next_action:s,version:d,depends_on:c,...u}=C,f=o.from("tasks").update(u).eq("id",e);i&&(f=f.eq("user_id",i)),{data:T,error:P}=await f.select().maybeSingle()}if(P)throw P;if(!T){let t=await S(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await S(T.id,i)||T,$=i||O.user_id;if($){let e=O.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(O.depends_on)?O.depends_on:[],project:O.project||null,projectId:O.project_id||null,workflowId:O.workflow_id||null,createdBy:O.created_by||null};s({taskId:O.id,userId:$,eventType:"task.created",title:O.title||null,slug:O.slug||null,stage:O.stage||null,status:O.status||null,timestamp:e,details:t})}return O}async function P(e,r,i=25){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let l=[r,...Array.isArray(o.run_index)?o.run_index:[]].slice(0,i),{error:s}=await n.from("tasks").update({run_index:l}).eq("id",e);if(s){if(s?.code==="42703")return;throw s}}async function O(e,r){let i=(0,t.createAdminDbClient)().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function $(e){let r=(0,t.createAdminDbClient)().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:i,error:n}=await r.single();if(n){if("PGRST116"===n.code)return null;throw n}return i}async function I(e,r=!1){let i=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(i=i.eq("user_id",e)),r||(i=i.is("archived_at",null));let{data:n,error:o}=await i;if(o){if(u(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function N(e,r){let i=(0,t.createAdminDbClient)().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.maybeSingle();if(o){if(u(o,"projects"))return null;throw o}return n||null}async function x(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(u(n,"project_repos"))return[];throw n}return i||[]}let E=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function W(e,r){let i=(0,t.createAdminDbClient)(),n=E.test(e),o=i.from("projects").select("*");o=n?o.eq("id",e):o.eq("slug",e),r&&(o=o.eq("user_id",r));let a=await o.maybeSingle();if(a.error){if(u(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await x(l.id);return{...l,repos:s}}async function M(e,t,r){if(!t.length)return[];let i=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:n,error:o}=await r.from("project_repos").insert(i).select("*");if(o){if(u(o,"project_repos"))return[];throw o}return n||[]}async function R(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=_(r),n=t.name.trim()||"project",o=await g(n,e,i),a={user_id:e,name:t.name.trim(),slug:o,description:t.description??null,workflow_id:t.workflow_id??null},{data:l,error:s}=await i.from("projects").insert(a).select("*").single();if(s)throw s;let d=await M(l.id,t.repos??[],i);return{...l,repos:d}}async function F(e,t,r,i){let n=_(i),o=E.test(e),a=e;if(!o){let r=await N(e,t);if(!r)return null;a=r.id}let l={};if(void 0!==r.name){let e=r.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==r.slug){let e=r.slug?.trim();e&&(l.slug=e)}if(void 0!==r.description&&(l.description=r.description),void 0!==r.metadata&&(l.metadata=r.metadata),void 0!==r.ci_cd_info&&(l.ci_cd_info=r.ci_cd_info),void 0!==r.workflow_id&&(l.workflow_id=r.workflow_id),Object.keys(l).length){let{error:e}=await n.from("projects").update(l).eq("id",a).eq("user_id",t);if(e)throw e}if(r.repos){let{data:e,error:t}=await n.from("project_repos").select("*").eq("project_id",a);if(t&&!u(t,"project_repos"))throw t;let i=e||[],o=new Set(i.map(e=>e.id)),l=new Set(r.repos.map(e=>e.id).filter(e=>!!e));for(let e of i){if(l.has(e.id))continue;let{error:t}=await n.from("project_repos").delete().eq("id",e.id).eq("project_id",a);if(t&&!u(t,"project_repos"))throw t}for(let e of r.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:a};if(e.id&&o.has(e.id)){let{error:r}=await n.from("project_repos").update(t).eq("id",e.id).eq("project_id",a);if(r&&!u(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!u(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=_(r),{error:n}=await i.from("projects").update({archived_at:new Date().toISOString()}).eq("id",e).eq("user_id",t);if(n)throw n}async function G(e,t,r){let i=_(r),n=await W(e,t);if(!n)throw Error("Project not found");let{data:o,error:a}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(a)throw a;let l=String(n.slug||"").trim().toLowerCase(),s=(o||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===l}).map(e=>e.id);if(!s.length)return{updatedCount:0,taskIds:[]};let{error:d}=await i.from("tasks").update({project:n.slug,project_id:n.id,updated_at:new Date().toISOString()}).eq("user_id",t).is("project_id",null).in("id",s);if(d)throw d;return{updatedCount:s.length,taskIds:s}}let B="00000000-0000-0000-0000-000000000001",J=[{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"}],U=new Map(J.map(e=>[e.id,e]));async function V(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:B,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:n}=await r.from("workflow_nodes").upsert(J.map(e=>({...e,workflow_id:B,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(o)throw o}async function z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(n){if(u(n,"workflows"))return[];throw n}return i||[]}async function K(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(u(o,"workflows"))return null;throw o}return n}async function H(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};void 0!==i.definition&&(o.definition=i.definition),void 0!==i.name&&(o.name=i.name),void 0!==i.description&&(o.description=i.description);let{data:a,error:l}=await n.from("workflows").update(o).eq("id",e).select().single();if(l)throw l;return a}async function Q(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(n){if(u(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===B&&await V(r),!await K(e,r))throw Error("Workflow not found");if(e===B){let t=i.map(t=>{let r=U.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await n.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Q(e)}return await Promise.all(i.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:i}=await n.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),Q(e)}async function Y(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(o){if(u(o,"workflow_nodes"))return null;throw o}return n}async function Z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(n){if(u(n,"workflow_transitions"))return[];throw n}return i||[]}async function ee(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(o){if(u(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await K(e,t);if(!r)return null;let[i,n]=await Promise.all([Q(e),Z(e)]);return{...r,nodes:i,transitions:n}}async function er(e,r={}){let i=(0,t.createAdminDbClient)(),n=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),o="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=o?null:void 0===r.tail?n:Number(r.tail),l=null!==a&&Number.isFinite(a)&&a>0,s=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(s=s.eq("node_id",r.nodeId)),s=o?s.gt("created_at",o).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n):l?s.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(n):s.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n);let{data:d,error:c}=await s;if(c)throw c;let u=d||[];return o?u:l?u.slice().reverse():u}async function ei(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_logs").insert({task_id:e,content:r,log_type:i,...n?{node_id:n}:{}}).select().single();if(l)throw l;return a}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function eo(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function ea(e){let r=(0,t.createAdminDbClient)(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:en(e.inputTokens),output_tokens:en(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:n,error:o}=await r.from("task_costs").insert(i).select().single();if(o)throw o;return n}async function el(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(n)throw n;return i||[]}function es(e){let t={},r=0,i=0,n=0;for(let o of e){let e=o.stage||"unknown",a=en(o.input_tokens),l=en(o.output_tokens),s=eo(o.estimated_cost??0);r+=a,i+=l,n+=s;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=l,d.estimated_cost+=s,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:i,total_cost:n,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}async function ed(e){return es(await el(e))}async function ec(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n)throw n;return i||[]}async function eu(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:n??null}).select().single();if(l)throw l;return a}async function ef(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("task_comments").select("author_id, author_type").eq("id",e).single();if(o)throw o;if(!n)throw Error("Comment not found");if("user"!==n.author_type||n.author_id!==r)throw Error("Unauthorized");let{error:a}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function em(e,r,i){if("task"!==e)return c.vaultStore.getLearnings(e,r);let n=(0,t.createAdminDbClient)().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(n=n.eq("scope_id",r)),i&&(n=n.eq("user_id",i));let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function ep(e,r,i,n){if("task"!==e)return c.vaultStore.addLearning(e,r,i);let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:n}).select().single();if(l)throw l;return a}async function ew(e,r){if("global-playbook"===e)return void c.vaultStore.deleteLearning(e,"global");let i=await W(e,r);if(i)return void c.vaultStore.deleteLearning(e,"project",i.id);let n=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function eg(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});i=e?i.or(`user_id.eq.${e},is_default.eq.true`):i.eq("is_default",!0);let{data:n,error:o}=await i;if(o)throw o;return n||[]}async function e_(e,r,i){let n=(0,t.createAdminDbClient)();if(r){let{data:t}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:o}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return o||null}async function ey(e,r,i=[],n,o,a){let l=(0,t.createAdminDbClient)(),s={stage:e,prompt:r,outputs:i,user_id:n,is_default:!n,workflow_id:a};o&&(void 0!==o.swarm&&(s.swarm=o.swarm),void 0!==o.provider&&(s.provider=o.provider),void 0!==o.model&&(s.model=o.model),void 0!==o.swarm_models&&(s.swarm_models=o.swarm_models));let{data:d,error:c}=await l.from("stage_prompts").upsert(s,{onConflict:n?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ek(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function eh(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(n){if(u(n,"agents"))return[];throw n}return i||[]}async function eb(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(o){if("PGRST116"===o.code||u(o,"agents"))return null;throw o}return n}async function ej(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"agent_skills"))return[];throw n}return i||[]}async function ev(e,r){let i=(0,t.createAdminDbClient)(),n=new Map;for(let t of r){let r=t.file.trim();r&&n.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let o=await ej(e);for(let t of o)if(!n.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!u(r,"agent_skills"))throw r}for(let t of n.values()){let r=o.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!u(e,"agent_skills"))throw e;continue}if((r.condition??null)!==t.condition){let{error:r}=await i.from("agent_skills").update({condition:t.condition}).eq("agent_id",e).eq("file",t.file);if(r&&!u(r,"agent_skills"))throw r}}return ej(e)}async function eq(e,r){let i=(0,t.createAdminDbClient)(),n={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(n.id=r.id),void 0!==r.title&&(n.title=r.title),void 0!==r.voice&&(n.voice=r.voice),void 0!==r.seed&&(n.seed=r.seed),void 0!==r.model&&(n.model=r.model),void 0!==r.provider&&(n.provider=r.provider),void 0!==r.color&&(n.color=r.color);let{data:o,error:a}=await i.from("agents").insert(n).select().single();if(a){if(u(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eA(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};if(void 0!==i.name&&(o.name=i.name),void 0!==i.title&&(o.title=i.title),void 0!==i.style&&(o.style=i.style),void 0!==i.description&&(o.description=i.description),void 0!==i.voice&&(o.voice=i.voice),void 0!==i.seed&&(o.seed=i.seed),void 0!==i.model&&(o.model=i.model),void 0!==i.provider&&(o.provider=i.provider),void 0!==i.color&&(o.color=i.color),1===Object.keys(o).length)return eb(e,r);let{data:a,error:l}=await n.from("agents").update(o).eq("id",e).eq("user_id",r).select().single();if(l){if("PGRST116"===l.code||u(l,"agents"))return null;throw l}return a}async function eS(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!u(n,"agents"))throw n}async function eC(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(n){if(u(n,"project_agents"))return[];throw n}return i||[]}async function eD(e,r,i){let n=(0,t.createAdminDbClient)();if(void 0===i){let{data:t}=await n.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);i=(t?.[0]?.routing_order??-1)+1}let{data:o,error:a}=await n.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(a)throw a;return o}async function eT(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(n)throw n}async function eP(e,r){let i=(0,t.createAdminDbClient)();for(let t=0;t<r.length;t++)await i.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return eC(e)}async function eO(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"teams"))return[];throw n}return(i||[]).map(e=>({...e,metadata:"string"==typeof e.metadata?JSON.parse(e.metadata):e.metadata||{}}))}async function e$(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("id",e).limit(1).single();if(n){if("PGRST116"===n.code||u(n,"teams"))return null;throw n}return i?{...i,metadata:"string"==typeof i.metadata?JSON.parse(i.metadata):i.metadata||{}}:null}async function eI(e,r,i,n){let o=(0,t.createAdminDbClient)(),a=(0,d.randomUUID)(),l=new Date().toISOString(),{data:s,error:c}=await o.from("teams").insert({id:a,project_id:e,name:r,template_id:i||null,metadata:JSON.stringify(n||{}),created_at:l,updated_at:l}).select().single();if(c)throw c;return{...s,metadata:"string"==typeof s.metadata?JSON.parse(s.metadata):s.metadata||{}}}async function eN(e,r){let i=(0,t.createAdminDbClient)(),n={};void 0!==r.name&&(n.name=r.name),void 0!==r.metadata&&(n.metadata=JSON.stringify(r.metadata));let{data:o,error:a}=await i.from("teams").update(n).eq("id",e).select().single();if(a){if("PGRST116"===a.code)return null;throw a}return{...o,metadata:"string"==typeof o.metadata?JSON.parse(o.metadata):o.metadata||{}}}async function ex(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("teams").delete().eq("id",e);if(i)throw i}async function eE(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("team_agents").select("*").eq("team_id",e).order("routing_order",{ascending:!0});if(n){if(u(n,"team_agents"))return[];throw n}return i||[]}async function eW(e,r,i,n){let o=(0,t.createAdminDbClient)();if(void 0===n){let{data:t}=await o.from("team_agents").select("routing_order").eq("team_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:l}=await o.from("team_agents").upsert({team_id:e,agent_id:r,role_key:i,routing_order:n}).select().single();if(l)throw l;return a}async function eM(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("team_agents").delete().eq("team_id",e).eq("agent_id",r);if(n)throw n}async function eR(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"project_skills"))return[];throw n}return i||[]}async function eF(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(a)throw a;return o}async function eL(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eG(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(u(n,"project_variables"))return[];throw n}return i||[]}async function eB(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(a)throw a;return o}async function eJ(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(n)throw n}async function eU(e,t){return c.vaultStore.getProjectMemory(e)}async function eV(e,t,r,i="human"){return c.vaultStore.addProjectMemory(e,t,r,i)}async function ez(e){c.vaultStore.deleteProjectMemory(e)}async function eK(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"project_threads"))return[];throw n}return i||[]}async function eH(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").upsert({project_id:e,thread_id:r},{onConflict:"project_id,thread_id",ignoreDuplicates:!0});if(n)throw n;let{data:o,error:a}=await i.from("project_threads").select("*").eq("project_id",e).eq("thread_id",r).single();if(a)throw a;return o}async function eQ(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(n)throw n}async function eX(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return n?(u(n,"project_threads"),null):i?.project_id??null}function eY(e,t){let r=[],i=new Set;for(let t of e){let e=t.file.split("/").pop()||t.file;i.add(e),r.push({file:t.file,condition:t.condition,source:"agent"})}for(let e of t){let t=e.file.split("/").pop()||e.file;i.has(t)||r.push({file:e.file,condition:e.condition??void 0,source:"project"})}return r}function eZ(e,t){let r=[];for(let e of t)r.push({content:e.content,source:"project",id:e.id});for(let t of e)r.push({content:t.content,source:"agent",id:t.id});return r}async function e0(e){return(await eG(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function e1(e,t,r,i){let n=await eR(t),o=await eU(t),a=await e0(t);return{skills:eY(r,n),memory:eZ(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",0,ep,"addProjectAgent",0,eD,"addProjectMemory",0,eV,"addProjectSkill",0,eF,"addProjectThread",0,eH,"addTaskComment",0,eu,"addTaskCostEntry",0,ea,"addTaskLog",0,ei,"addTeamAgent",0,eW,"appendRunToIndex",0,P,"assignOrphanTasksToProject",0,G,"buildExecutionProvenance",0,e1,"createAgent",0,eq,"createProject",0,R,"createTask",0,D,"createTeam",0,eI,"defaultStagePrompts",0,{INTAKE:{prompt:"New task. Triage, scope, and prepare for work.",outputs:[],swarm:!1},PROGRESS:{prompt:"Task is actively being worked on.",outputs:[],swarm:!1},DONE:{prompt:"Task completed.",outputs:[],swarm:!1}},"deleteAgent",0,eS,"deleteLearning",0,ew,"deleteProject",0,L,"deleteProjectMemory",0,ez,"deleteProjectVariable",0,eJ,"deleteStagePrompt",0,ek,"deleteTask",0,O,"deleteTaskComment",0,ef,"deleteTeam",0,ex,"ensureNoCircularDependency",0,b,"extractTitle",0,j,"getAgent",0,eb,"getAgentSkills",0,ej,"getAgents",0,eh,"getDefaultWorkflowId",0,function(){return B},"getLearnings",0,em,"getNextQueuedTask",0,$,"getProjectAgents",0,eC,"getProjectBySlug",0,N,"getProjectForThread",0,eX,"getProjectMemory",0,eU,"getProjectRepos",0,x,"getProjectSkills",0,eR,"getProjectThreads",0,eK,"getProjectVariables",0,eG,"getProjectWithRepos",0,W,"getProjects",0,I,"getStagePrompt",0,e_,"getStagePrompts",0,eg,"getTask",0,S,"getTaskBySlug",0,C,"getTaskComments",0,ec,"getTaskCostEntries",0,el,"getTaskCostSummary",0,ed,"getTaskLogs",0,er,"getTasks",0,A,"getTeam",0,e$,"getTeamAgents",0,eE,"getTeams",0,eO,"getUserSettings",0,f,"getWorkflow",0,K,"getWorkflowNodeByName",0,Y,"getWorkflowNodes",0,Q,"getWorkflowTransitions",0,Z,"getWorkflowTransitionsFromNode",0,ee,"getWorkflowWithGraph",0,et,"getWorkflows",0,z,"parseFrontmatter",0,h,"removeProjectAgent",0,eT,"removeProjectSkill",0,eL,"removeProjectThread",0,eQ,"removeTeamAgent",0,eM,"reorderProjectAgents",0,eP,"resolveMemory",0,eZ,"resolveSkills",0,eY,"resolveTaskConfig",0,function(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(522734),r=e.r(814747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));o=n(i?.defaultProvider)||null}catch{}let a=n(i?.default_provider)||o||"claude",l=n(t.provider)||n(r?.provider)||a,s=n(i?.models?.[l])||null,d=n(t.model)||n(r?.model)||s||null;return{provider:l,model:d,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}},"resolveVariables",0,e0,"setAgentSkills",0,ev,"setProjectVariable",0,eB,"summarizeTaskCosts",0,es,"updateAgent",0,eA,"updateProject",0,F,"updateTask",0,T,"updateTeam",0,eN,"updateWorkflow",0,H,"updateWorkflowNodes",0,X,"upsertStagePrompt",0,ey,"upsertUserSettings",0,m],846888)}];
1
+ module.exports=[846888,108088,e=>{"use strict";var t=e.i(173426);let r="Waiting on dependencies",i=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class n extends Error{}function o(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>i.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function a(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,i="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||i.includes(`relation "${t}" does not exist`)||i.includes(`Could not find the table 'agx.${t}'`)||i.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new n(`Missing relation: ${e}`);throw t}async function l(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(n&&await a("notification_webhooks",n),i)?(Array.isArray(i)?i:[i]).map(o):[]}async function s(e){if(!e.userId)return;let t=[];try{t=await l(e.userId)}catch(e){if(e instanceof n)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let i=e.timestamp||new Date().toISOString(),o={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:i,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",0,s],108088);var d=e.i(254799),c=e.i(488877);function u(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 f(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(u(n,"user_settings"))return null;throw n}return i||null}async function m(e,r,i){let n=i?.onlyIfNewer!==!1,o=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),a=await f(e);if(n&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(o);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let l={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:o},s=(0,t.createAdminDbClient)(),{error:d}=await s.from("user_settings").upsert(l,{onConflict:"user_id"});if(d)throw d;let c=await f(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 w(e,t){let r=p(e);for(let i=0;i<5;i++){let{data:i,error:n}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(n)throw n;if(!i||0===i.length)return r;let o=Math.random().toString(36).slice(2,6);r=`${p(e)}-${o}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function g(e,t,r,i){let n=p(e);for(let o=0;o<5;o++){let o=r.from("projects").select("id").eq("slug",n).eq("user_id",t);i&&(o=o.neq("id",i));let{data:a,error:l}=await o.limit(1);if(l)throw l;if(!a||0===a.length)return n;let s=Math.random().toString(36).slice(2,6);n=`${p(e)}-${s}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function _(e){return e??(0,t.createAdminDbClient)()}function y(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=y(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function h(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if("depends_on"===i){r[i]=y(n);continue}"true"===n?r[i]=!0:"false"===n?r[i]=!1:/^\d+$/.test(n)?r[i]=parseInt(n):r[i]=n}}return{frontmatter:r,body:t[2]}}async function b(e,t,r){if(!e||!t?.length)return;let i=_(r),n=new Set,o=[...t];for(;o.length;){let t=o.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(n.has(t))continue;n.add(t);let{data:r,error:a}=await i.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(a){if("PGRST116"===a.code||"42703"===a.code)continue;throw a}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!n.has(e)&&o.push(e)}}function j(e){let{body:t}=h(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function v(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function q(e,i){var n;let o=Array.isArray(e.depends_on)?e.depends_on:[];if(!o.length)return;let a=(0,t.createAdminDbClient)(),{data:l,error:s}=await a.from("tasks").select("id, title, slug, status, stage").in("id",o);if(s)return;let d=(Array.isArray(l)?l:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.stage?.toLowerCase()==="intake"?" (awaiting approval)":e.status?` (${e.status})`:null)??""}`),i=`${r}: ${t.join(", ")}`;return e.length>3&&(i+=` +${e.length-3} more`),i}(d),n=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(n=n.eq("user_id",i));let{error:o}=await n;if(o&&"42703"!==o.code)throw o;return}if("blocked"===e.status&&"string"==typeof(n=e.blocked_reason)&&n.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);i&&(t=t.eq("user_id",i));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function A(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(i=i.eq("user_id",e)),r?.project&&(i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?i.eq("project_id",r.project):i.eq("project",r.project)),r?.orphan&&(i=i.is("project_id",null)),r?.status&&(i=i.eq("status",r.status)),r?.search){let e=r.search;i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?i.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):i.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:n,error:o}=await i;if(o)throw o;let a=n||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function S(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function C(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function D(e,r,i){let n=(0,t.createAdminDbClient)(),{frontmatter:o,body:a}=h(e),l="boolean"==typeof o.swarm?o.swarm:void 0,c=i?.title||j(e),u=String(o.slug||c||"task"),f=await w(u,n),m=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),p="string"==typeof o.workflow_id?o.workflow_id:void 0,g="string"==typeof o.project?o.project:void 0;if(!g&&m){let e=await W(m);e?.slug&&(g=e.slug)}/^---\n/.test(e);let _="string"==typeof o.provider?o.provider:null,y="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,C="ai"===o.created_by?"ai":"user",D=k(o.depends_on),T=k(i?.dependsOn),P=T.length>0?T:D,O={id:(0,d.randomUUID)(),content:e,description:v(a),title:c,slug:f,status:o.status||"queued",stage:o.stage||"intake",project:g||null,...void 0!==m?{project_id:m}:{},...void 0!==p?{workflow_id:p}:{},priority:o.priority,engine:A,provider:_,model:y,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:C,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await b(O.id,P,n);let{data:$,error:I}=await n.from("tasks").insert(O).select().single();if(I&&"42703"===I.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:o,next_action:a,version:l,depends_on:s,...d}=O;({data:$,error:I}=await n.from("tasks").insert(d).select().single())}if(I)throw I;if(!$)throw Error("Failed to create task");await q($,r);let N=await S($.id,r)||$,x=r||N.user_id;if(x){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};s({taskId:N.id,userId:x,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 T(e,r,i,n){let o=(0,t.createAdminDbClient)(),{frontmatter:a,body:l}=h(r),d="boolean"==typeof a.swarm?a.swarm:void 0,c=j(r),u="string"==typeof a.project_id?a.project_id:void 0,f=Object.prototype.hasOwnProperty.call(a,"provider"),m=Object.prototype.hasOwnProperty.call(a,"model"),p=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),g=k(a.depends_on),_=k(n?.dependsOn),y=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?_:g,C={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:p?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:m?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...y?{depends_on:A.length?A:null}:{},updated_at:new Date().toISOString(),current_plan:n?.currentPlan??void 0,open_blockers:n?.openBlockers??void 0,next_action:n?.nextAction??void 0};Object.keys(C).forEach(e=>{void 0===C[e]&&delete C[e]}),y&&await b(e,A,o);let D=o.from("tasks").update({...C,version:o.rpc("increment_version")}).eq("id",e);i&&(D=D.eq("user_id",i)),n?.expectedVersion!==void 0&&(D=D.eq("version",n.expectedVersion));let{data:T,error:P}=await o.from("tasks").update({...C}).eq("id",e).select().maybeSingle();if(P&&console.error(`[db.updateTask] error updating task ${e}:`,P),T||P||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(C)),P&&"42703"===P.code){let{swarm_models:t,swarm:r,workflow_id:n,current_plan:a,open_blockers:l,next_action:s,version:d,depends_on:c,...u}=C,f=o.from("tasks").update(u).eq("id",e);i&&(f=f.eq("user_id",i)),{data:T,error:P}=await f.select().maybeSingle()}if(P)throw P;if(!T){let t=await S(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await S(T.id,i)||T,$=i||O.user_id;if($){let e=O.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(O.depends_on)?O.depends_on:[],project:O.project||null,projectId:O.project_id||null,workflowId:O.workflow_id||null,createdBy:O.created_by||null};s({taskId:O.id,userId:$,eventType:"task.created",title:O.title||null,slug:O.slug||null,stage:O.stage||null,status:O.status||null,timestamp:e,details:t})}return O}async function P(e,r,i=25){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let l=[r,...Array.isArray(o.run_index)?o.run_index:[]].slice(0,i),{error:s}=await n.from("tasks").update({run_index:l}).eq("id",e);if(s){if(s?.code==="42703")return;throw s}}async function O(e,r){let i=(0,t.createAdminDbClient)().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function $(e){let r=(0,t.createAdminDbClient)().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:i,error:n}=await r.single();if(n){if("PGRST116"===n.code)return null;throw n}return i}async function I(e,r=!1){let i=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(i=i.eq("user_id",e)),r||(i=i.is("archived_at",null));let{data:n,error:o}=await i;if(o){if(u(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function N(e,r){let i=(0,t.createAdminDbClient)().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.maybeSingle();if(o){if(u(o,"projects"))return null;throw o}return n||null}async function x(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(u(n,"project_repos"))return[];throw n}return i||[]}let E=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function W(e,r){let i=(0,t.createAdminDbClient)(),n=E.test(e),o=i.from("projects").select("*");o=n?o.eq("id",e):o.eq("slug",e),r&&(o=o.eq("user_id",r));let a=await o.maybeSingle();if(a.error){if(u(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await x(l.id);return{...l,repos:s}}async function M(e,t,r){if(!t.length)return[];let i=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:n,error:o}=await r.from("project_repos").insert(i).select("*");if(o){if(u(o,"project_repos"))return[];throw o}return n||[]}async function R(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=_(r),n=t.name.trim()||"project",o=await g(n,e,i),a={user_id:e,name:t.name.trim(),slug:o,description:t.description??null,workflow_id:t.workflow_id??null},{data:l,error:s}=await i.from("projects").insert(a).select("*").single();if(s)throw s;let d=await M(l.id,t.repos??[],i);return{...l,repos:d}}async function F(e,t,r,i){let n=_(i),o=E.test(e),a=e;if(!o){let r=await N(e,t);if(!r)return null;a=r.id}let l={};if(void 0!==r.name){let e=r.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==r.slug){let e=r.slug?.trim();e&&(l.slug=e)}if(void 0!==r.description&&(l.description=r.description),void 0!==r.metadata&&(l.metadata=r.metadata),void 0!==r.ci_cd_info&&(l.ci_cd_info=r.ci_cd_info),void 0!==r.workflow_id&&(l.workflow_id=r.workflow_id),Object.keys(l).length){let{error:e}=await n.from("projects").update(l).eq("id",a).eq("user_id",t);if(e)throw e}if(r.repos){let{data:e,error:t}=await n.from("project_repos").select("*").eq("project_id",a);if(t&&!u(t,"project_repos"))throw t;let i=e||[],o=new Set(i.map(e=>e.id)),l=new Set(r.repos.map(e=>e.id).filter(e=>!!e));for(let e of i){if(l.has(e.id))continue;let{error:t}=await n.from("project_repos").delete().eq("id",e.id).eq("project_id",a);if(t&&!u(t,"project_repos"))throw t}for(let e of r.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:a};if(e.id&&o.has(e.id)){let{error:r}=await n.from("project_repos").update(t).eq("id",e.id).eq("project_id",a);if(r&&!u(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!u(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=_(r),{error:n}=await i.from("projects").update({archived_at:new Date().toISOString()}).eq("id",e).eq("user_id",t);if(n)throw n}async function G(e,t,r){let i=_(r),n=await W(e,t);if(!n)throw Error("Project not found");let{data:o,error:a}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(a)throw a;let l=String(n.slug||"").trim().toLowerCase(),s=(o||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===l}).map(e=>e.id);if(!s.length)return{updatedCount:0,taskIds:[]};let{error:d}=await i.from("tasks").update({project:n.slug,project_id:n.id,updated_at:new Date().toISOString()}).eq("user_id",t).is("project_id",null).in("id",s);if(d)throw d;return{updatedCount:s.length,taskIds:s}}let B="00000000-0000-0000-0000-000000000001",J=[{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"}],U=new Map(J.map(e=>[e.id,e]));async function V(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:B,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:n}=await r.from("workflow_nodes").upsert(J.map(e=>({...e,workflow_id:B,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(o)throw o}async function z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(n){if(u(n,"workflows"))return[];throw n}return i||[]}async function K(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(u(o,"workflows"))return null;throw o}return n}async function H(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};void 0!==i.definition&&(o.definition=i.definition),void 0!==i.name&&(o.name=i.name),void 0!==i.description&&(o.description=i.description);let{data:a,error:l}=await n.from("workflows").update(o).eq("id",e).select().single();if(l)throw l;return a}async function Q(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(n){if(u(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===B&&await V(r),!await K(e,r))throw Error("Workflow not found");if(e===B){let t=i.map(t=>{let r=U.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await n.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Q(e)}return await Promise.all(i.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:i}=await n.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),Q(e)}async function Y(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(o){if(u(o,"workflow_nodes"))return null;throw o}return n}async function Z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(n){if(u(n,"workflow_transitions"))return[];throw n}return i||[]}async function ee(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(o){if(u(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await K(e,t);if(!r)return null;let[i,n]=await Promise.all([Q(e),Z(e)]);return{...r,nodes:i,transitions:n}}async function er(e,r={}){let i=(0,t.createAdminDbClient)(),n=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),o="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=o?null:void 0===r.tail?n:Number(r.tail),l=null!==a&&Number.isFinite(a)&&a>0,s=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(s=s.eq("node_id",r.nodeId)),s=o?s.gt("created_at",o).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n):l?s.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(n):s.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n);let{data:d,error:c}=await s;if(c)throw c;let u=d||[];return o?u:l?u.slice().reverse():u}async function ei(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_logs").insert({task_id:e,content:r,log_type:i,...n?{node_id:n}:{}}).select().single();if(l)throw l;return a}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function eo(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function ea(e){let r=(0,t.createAdminDbClient)(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:en(e.inputTokens),output_tokens:en(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:n,error:o}=await r.from("task_costs").insert(i).select().single();if(o)throw o;return n}async function el(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(n)throw n;return i||[]}function es(e){let t={},r=0,i=0,n=0;for(let o of e){let e=o.stage||"unknown",a=en(o.input_tokens),l=en(o.output_tokens),s=eo(o.estimated_cost??0);r+=a,i+=l,n+=s;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=l,d.estimated_cost+=s,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:i,total_cost:n,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}async function ed(e){return es(await el(e))}async function ec(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n)throw n;return i||[]}async function eu(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:n??null}).select().single();if(l)throw l;return a}async function ef(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("task_comments").select("author_id, author_type").eq("id",e).single();if(o)throw o;if(!n)throw Error("Comment not found");if("user"!==n.author_type||n.author_id!==r)throw Error("Unauthorized");let{error:a}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function em(e,r,i){if("task"!==e)return c.vaultStore.getLearnings(e,r);let n=(0,t.createAdminDbClient)().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(n=n.eq("scope_id",r)),i&&(n=n.eq("user_id",i));let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function ep(e,r,i,n){if("task"!==e)return c.vaultStore.addLearning(e,r,i);let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:n}).select().single();if(l)throw l;return a}async function ew(e,r){if("global-playbook"===e)return void c.vaultStore.deleteLearning(e,"global");let i=await W(e,r);if(i)return void c.vaultStore.deleteLearning(e,"project",i.id);let n=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function eg(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});i=e?i.or(`user_id.eq.${e},is_default.eq.true`):i.eq("is_default",!0);let{data:n,error:o}=await i;if(o)throw o;return n||[]}async function e_(e,r,i){let n=(0,t.createAdminDbClient)();if(r){let{data:t}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:o}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return o||null}async function ey(e,r,i=[],n,o,a){let l=(0,t.createAdminDbClient)(),s={stage:e,prompt:r,outputs:i,user_id:n,is_default:!n,workflow_id:a};o&&(void 0!==o.swarm&&(s.swarm=o.swarm),void 0!==o.provider&&(s.provider=o.provider),void 0!==o.model&&(s.model=o.model),void 0!==o.swarm_models&&(s.swarm_models=o.swarm_models));let{data:d,error:c}=await l.from("stage_prompts").upsert(s,{onConflict:n?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ek(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function eh(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(n){if(u(n,"agents"))return[];throw n}return i||[]}async function eb(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(o){if("PGRST116"===o.code||u(o,"agents"))return null;throw o}return n}async function ej(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"agent_skills"))return[];throw n}return i||[]}async function ev(e,r){let i=(0,t.createAdminDbClient)(),n=new Map;for(let t of r){let r=t.file.trim();r&&n.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let o=await ej(e);for(let t of o)if(!n.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!u(r,"agent_skills"))throw r}for(let t of n.values()){let r=o.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!u(e,"agent_skills"))throw e;continue}if((r.condition??null)!==t.condition){let{error:r}=await i.from("agent_skills").update({condition:t.condition}).eq("agent_id",e).eq("file",t.file);if(r&&!u(r,"agent_skills"))throw r}}return ej(e)}async function eq(e,r){let i=(0,t.createAdminDbClient)(),n={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(n.id=r.id),void 0!==r.role&&(n.role=r.role),void 0!==r.voice&&(n.voice=r.voice),void 0!==r.seed&&(n.seed=r.seed),void 0!==r.model&&(n.model=r.model),void 0!==r.provider&&(n.provider=r.provider),void 0!==r.color&&(n.color=r.color);let{data:o,error:a}=await i.from("agents").insert(n).select().single();if(a){if(u(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eA(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};if(void 0!==i.name&&(o.name=i.name),void 0!==i.role&&(o.role=i.role),void 0!==i.style&&(o.style=i.style),void 0!==i.description&&(o.description=i.description),void 0!==i.voice&&(o.voice=i.voice),void 0!==i.seed&&(o.seed=i.seed),void 0!==i.model&&(o.model=i.model),void 0!==i.provider&&(o.provider=i.provider),void 0!==i.color&&(o.color=i.color),1===Object.keys(o).length)return eb(e,r);let{data:a,error:l}=await n.from("agents").update(o).eq("id",e).eq("user_id",r).select().single();if(l){if("PGRST116"===l.code||u(l,"agents"))return null;throw l}return a}async function eS(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!u(n,"agents"))throw n}async function eC(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(n){if(u(n,"project_agents"))return[];throw n}return i||[]}async function eD(e,r,i){let n=(0,t.createAdminDbClient)();if(void 0===i){let{data:t}=await n.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);i=(t?.[0]?.routing_order??-1)+1}let{data:o,error:a}=await n.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(a)throw a;return o}async function eT(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(n)throw n}async function eP(e,r){let i=(0,t.createAdminDbClient)();for(let t=0;t<r.length;t++)await i.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return eC(e)}async function eO(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"teams"))return[];throw n}return(i||[]).map(e=>({...e,metadata:"string"==typeof e.metadata?JSON.parse(e.metadata):e.metadata||{}}))}async function e$(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("id",e).limit(1).single();if(n){if("PGRST116"===n.code||u(n,"teams"))return null;throw n}return i?{...i,metadata:"string"==typeof i.metadata?JSON.parse(i.metadata):i.metadata||{}}:null}async function eI(e,r,i,n){let o=(0,t.createAdminDbClient)(),a=(0,d.randomUUID)(),l=new Date().toISOString(),{data:s,error:c}=await o.from("teams").insert({id:a,project_id:e,name:r,template_id:i||null,metadata:JSON.stringify(n||{}),created_at:l,updated_at:l}).select().single();if(c)throw c;return{...s,metadata:"string"==typeof s.metadata?JSON.parse(s.metadata):s.metadata||{}}}async function eN(e,r){let i=(0,t.createAdminDbClient)(),n={};void 0!==r.name&&(n.name=r.name),void 0!==r.metadata&&(n.metadata=JSON.stringify(r.metadata));let{data:o,error:a}=await i.from("teams").update(n).eq("id",e).select().single();if(a){if("PGRST116"===a.code)return null;throw a}return{...o,metadata:"string"==typeof o.metadata?JSON.parse(o.metadata):o.metadata||{}}}async function ex(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("teams").delete().eq("id",e);if(i)throw i}async function eE(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("team_agents").select("*").eq("team_id",e).order("routing_order",{ascending:!0});if(n){if(u(n,"team_agents"))return[];throw n}return i||[]}async function eW(e,r,i,n){let o=(0,t.createAdminDbClient)();if(void 0===n){let{data:t}=await o.from("team_agents").select("routing_order").eq("team_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:l}=await o.from("team_agents").upsert({team_id:e,agent_id:r,role_key:i,routing_order:n}).select().single();if(l)throw l;return a}async function eM(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("team_agents").delete().eq("team_id",e).eq("agent_id",r);if(n)throw n}async function eR(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"project_skills"))return[];throw n}return i||[]}async function eF(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(a)throw a;return o}async function eL(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eG(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(u(n,"project_variables"))return[];throw n}return i||[]}async function eB(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(a)throw a;return o}async function eJ(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(n)throw n}async function eU(e,t){return c.vaultStore.getProjectMemory(e)}async function eV(e,t,r,i="human"){return c.vaultStore.addProjectMemory(e,t,r,i)}async function ez(e){c.vaultStore.deleteProjectMemory(e)}async function eK(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"project_threads"))return[];throw n}return i||[]}async function eH(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").upsert({project_id:e,thread_id:r},{onConflict:"project_id,thread_id",ignoreDuplicates:!0});if(n)throw n;let{data:o,error:a}=await i.from("project_threads").select("*").eq("project_id",e).eq("thread_id",r).single();if(a)throw a;return o}async function eQ(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(n)throw n}async function eX(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return n?(u(n,"project_threads"),null):i?.project_id??null}function eY(e,t){let r=[],i=new Set;for(let t of e){let e=t.file.split("/").pop()||t.file;i.add(e),r.push({file:t.file,condition:t.condition,source:"agent"})}for(let e of t){let t=e.file.split("/").pop()||e.file;i.has(t)||r.push({file:e.file,condition:e.condition??void 0,source:"project"})}return r}function eZ(e,t){let r=[];for(let e of t)r.push({content:e.content,source:"project",id:e.id});for(let t of e)r.push({content:t.content,source:"agent",id:t.id});return r}async function e0(e){return(await eG(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function e1(e,t,r,i){let n=await eR(t),o=await eU(t),a=await e0(t);return{skills:eY(r,n),memory:eZ(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",0,ep,"addProjectAgent",0,eD,"addProjectMemory",0,eV,"addProjectSkill",0,eF,"addProjectThread",0,eH,"addTaskComment",0,eu,"addTaskCostEntry",0,ea,"addTaskLog",0,ei,"addTeamAgent",0,eW,"appendRunToIndex",0,P,"assignOrphanTasksToProject",0,G,"buildExecutionProvenance",0,e1,"createAgent",0,eq,"createProject",0,R,"createTask",0,D,"createTeam",0,eI,"defaultStagePrompts",0,{INTAKE:{prompt:"New task. Triage, scope, and prepare for work.",outputs:[],swarm:!1},PROGRESS:{prompt:"Task is actively being worked on.",outputs:[],swarm:!1},DONE:{prompt:"Task completed.",outputs:[],swarm:!1}},"deleteAgent",0,eS,"deleteLearning",0,ew,"deleteProject",0,L,"deleteProjectMemory",0,ez,"deleteProjectVariable",0,eJ,"deleteStagePrompt",0,ek,"deleteTask",0,O,"deleteTaskComment",0,ef,"deleteTeam",0,ex,"ensureNoCircularDependency",0,b,"extractTitle",0,j,"getAgent",0,eb,"getAgentSkills",0,ej,"getAgents",0,eh,"getDefaultWorkflowId",0,function(){return B},"getLearnings",0,em,"getNextQueuedTask",0,$,"getProjectAgents",0,eC,"getProjectBySlug",0,N,"getProjectForThread",0,eX,"getProjectMemory",0,eU,"getProjectRepos",0,x,"getProjectSkills",0,eR,"getProjectThreads",0,eK,"getProjectVariables",0,eG,"getProjectWithRepos",0,W,"getProjects",0,I,"getStagePrompt",0,e_,"getStagePrompts",0,eg,"getTask",0,S,"getTaskBySlug",0,C,"getTaskComments",0,ec,"getTaskCostEntries",0,el,"getTaskCostSummary",0,ed,"getTaskLogs",0,er,"getTasks",0,A,"getTeam",0,e$,"getTeamAgents",0,eE,"getTeams",0,eO,"getUserSettings",0,f,"getWorkflow",0,K,"getWorkflowNodeByName",0,Y,"getWorkflowNodes",0,Q,"getWorkflowTransitions",0,Z,"getWorkflowTransitionsFromNode",0,ee,"getWorkflowWithGraph",0,et,"getWorkflows",0,z,"parseFrontmatter",0,h,"removeProjectAgent",0,eT,"removeProjectSkill",0,eL,"removeProjectThread",0,eQ,"removeTeamAgent",0,eM,"reorderProjectAgents",0,eP,"resolveMemory",0,eZ,"resolveSkills",0,eY,"resolveTaskConfig",0,function(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(522734),r=e.r(814747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));o=n(i?.defaultProvider)||null}catch{}let a=n(i?.default_provider)||o||"claude",l=n(t.provider)||n(r?.provider)||a,s=n(i?.models?.[l])||null,d=n(t.model)||n(r?.model)||s||null;return{provider:l,model:d,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}},"resolveVariables",0,e0,"setAgentSkills",0,ev,"setProjectVariable",0,eB,"summarizeTaskCosts",0,es,"updateAgent",0,eA,"updateProject",0,F,"updateTask",0,T,"updateTeam",0,eN,"updateWorkflow",0,H,"updateWorkflowNodes",0,X,"upsertStagePrompt",0,ey,"upsertUserSettings",0,m],846888)}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_lib_db_ts_0twf-w5._.js.map
@@ -12,7 +12,38 @@ module.exports=[329893,e=>{"use strict";var t=e.i(924868),a=e.i(374371),n=e.x("n
12
12
  project_slug TEXT NOT NULL DEFAULT '',
13
13
  UNIQUE (workspace_id, agent_id)
14
14
  )
15
- `),e.exec("CREATE INDEX IF NOT EXISTS idx_agent_processes_state ON agent_processes (state)"),e.exec("CREATE INDEX IF NOT EXISTS idx_agent_processes_thread ON agent_processes (thread_id)"),e.exec("CREATE INDEX IF NOT EXISTS idx_agent_processes_workspace ON agent_processes (workspace_id)");try{e.exec("ALTER TABLE agent_processes ADD COLUMN project_slug TEXT NOT NULL DEFAULT ''")}catch{}try{e.exec("ALTER TABLE agent_processes ADD COLUMN response_message_id TEXT NOT NULL DEFAULT ''")}catch{}return e}();try{return e(t)}finally{t.close()}}function u(e,t,a){let n=[],i=[];void 0!==a.state&&(n.push("state = ?"),i.push(a.state)),void 0!==a.lastActivity&&(n.push("last_activity = ?"),i.push(a.lastActivity)),void 0!==a.pid&&(n.push("pid = ?"),i.push(a.pid)),0!==n.length&&p(a=>a.prepare(`UPDATE agent_processes SET ${n.join(", ")} WHERE workspace_id = ? AND agent_id = ?`).run(...i,e,t))}function g(e){let t=0;for(let a of e){if(a.pid>0)try{process.kill(a.pid,"SIGTERM")}catch{}t++}return t}var m=e.i(200704);let f=new Set(["ack","working","done","clarify","blocked"]),h=/\[reaction\s+([^\]]+)\]/gi,y=/([a-zA-Z][a-zA-Z0-9_]*)=(?:"((?:[^"\\]|\\.)*)"|'((?:[^'\\]|\\.)*)'|([^\s\]]*?(?=\s|]|[a-zA-Z][a-zA-Z0-9_]*=|$)))/g;var w=e.x("node:sqlite",()=>require("node:sqlite"),!0);let I=process.env.AGX_GROUP_CHAT_DIR?.trim()||r.default.join(s.default.homedir(),".agx","group-chat"),E=r.default.join(I,"history.sqlite"),v=r.default.join(I,"uploads");async function T(e){let t,a=(t=new w.DatabaseSync(E),(0,i.pragmaSet)(t,"journal_mode = WAL"),t);try{if(a.exec(`
15
+ `),e.exec("CREATE INDEX IF NOT EXISTS idx_agent_processes_state ON agent_processes (state)"),e.exec("CREATE INDEX IF NOT EXISTS idx_agent_processes_thread ON agent_processes (thread_id)"),e.exec("CREATE INDEX IF NOT EXISTS idx_agent_processes_workspace ON agent_processes (workspace_id)");try{e.exec("ALTER TABLE agent_processes ADD COLUMN project_slug TEXT NOT NULL DEFAULT ''")}catch{}try{e.exec("ALTER TABLE agent_processes ADD COLUMN response_message_id TEXT NOT NULL DEFAULT ''")}catch{}return e.exec(`
16
+ CREATE TABLE IF NOT EXISTS messages (
17
+ thread_id TEXT NOT NULL,
18
+ id TEXT NOT NULL,
19
+ role TEXT NOT NULL,
20
+ participant_id TEXT,
21
+ content TEXT NOT NULL,
22
+ timestamp INTEGER NOT NULL,
23
+ PRIMARY KEY (thread_id, id)
24
+ )
25
+ `),e.exec(`
26
+ CREATE TABLE IF NOT EXISTS linear_runs (
27
+ id TEXT PRIMARY KEY,
28
+ project_id TEXT,
29
+ project_slug TEXT,
30
+ issue_id TEXT NOT NULL,
31
+ issue_identifier TEXT NOT NULL,
32
+ issue_title TEXT NOT NULL,
33
+ issue_status TEXT NOT NULL,
34
+ issue_assignee TEXT,
35
+ thread_id TEXT NOT NULL,
36
+ root_message_id TEXT,
37
+ chat_run_id TEXT,
38
+ agent_id TEXT NOT NULL,
39
+ agent_name TEXT NOT NULL,
40
+ mode TEXT NOT NULL DEFAULT 'chat',
41
+ status TEXT NOT NULL DEFAULT 'queued',
42
+ error TEXT,
43
+ created_at INTEGER NOT NULL,
44
+ updated_at INTEGER NOT NULL
45
+ )
46
+ `),e}();try{return e(t)}finally{t.close()}}function u(e,t,a){let n=[],i=[];void 0!==a.state&&(n.push("state = ?"),i.push(a.state)),void 0!==a.lastActivity&&(n.push("last_activity = ?"),i.push(a.lastActivity)),void 0!==a.pid&&(n.push("pid = ?"),i.push(a.pid)),0!==n.length&&p(a=>a.prepare(`UPDATE agent_processes SET ${n.join(", ")} WHERE workspace_id = ? AND agent_id = ?`).run(...i,e,t))}function g(e){let t=0;for(let a of e){if(a.pid>0)try{process.kill(a.pid,"SIGTERM")}catch{}t++}return t}var m=e.i(200704);let f=new Set(["ack","working","done","clarify","blocked"]),h=/\[reaction\s+([^\]]+)\]/gi,y=/([a-zA-Z][a-zA-Z0-9_]*)=(?:"((?:[^"\\]|\\.)*)"|'((?:[^'\\]|\\.)*)'|([^\s\]]*?(?=\s|]|[a-zA-Z][a-zA-Z0-9_]*=|$)))/g;var I=e.x("node:sqlite",()=>require("node:sqlite"),!0);let T=process.env.AGX_GROUP_CHAT_DIR?.trim()||r.default.join(s.default.homedir(),".agx","group-chat"),w=r.default.join(T,"history.sqlite"),E=r.default.join(T,"uploads");async function _(e){let t,a=(t=new I.DatabaseSync(w),(0,i.pragmaSet)(t,"journal_mode = WAL"),t);try{if(a.exec(`
16
47
  CREATE TABLE IF NOT EXISTS attachments (
17
48
  id TEXT PRIMARY KEY,
18
49
  message_id TEXT,
@@ -24,8 +55,8 @@ module.exports=[329893,e=>{"use strict";var t=e.i(924868),a=e.i(374371),n=e.x("n
24
55
  created_at INTEGER NOT NULL
25
56
  );
26
57
  CREATE INDEX IF NOT EXISTS idx_attachments_message ON attachments(message_id);
27
- `),!a.prepare("PRAGMA table_info(attachments)").all().some(e=>"disk_name"===e.name)){a.exec("ALTER TABLE attachments ADD COLUMN disk_name TEXT NOT NULL DEFAULT ''");let e=a.prepare("SELECT id, filename FROM attachments WHERE disk_name = ''").all(),t=a.prepare("UPDATE attachments SET disk_name = ? WHERE id = ?");for(let a of e){let e=a.filename.includes(".")?"."+a.filename.split(".").pop().toLowerCase():"";t.run(a.id+e,a.id)}}let t=a.prepare("SELECT filename, disk_name, mime_type, size FROM attachments WHERE id = ?").get(e);if(!t)return null;let n=t.disk_name||e;return{filename:t.filename,mimeType:t.mime_type,size:t.size,diskPath:r.default.join(v,n)}}finally{a.close()}}var _=e.i(633211),$=e.i(855532),S=e.i(329905),b=e.i(224316),R=e.i(888652);let k=(0,r.join)((0,s.homedir)(),".agx","agents");var A=e.i(476805),L=e.i(121239),N=e.i(254799);let D=new Map,O=new Map;function j(e){return null!==e}let x="I evolve through experience and collaboration.";function C(e,t){let a=e.replace(/\s+/g," ").trim();if(!a)return`I am ${t}. ${x}`;let n=a.replace(/^you are\b[^.!?\n]*[.!?]?\s*/i,`I am ${t}. `);return(/^i am\b/i.test(n)?n:`I am ${t}. ${n}`).slice(0,500).trim()}function U(e,t){(0,b.ensureAgent)(e.id,{voice:e.voice?.trim()||`${e.name} style`,seed:function(e,t,a){let n=String(a||"").trim();if(n)return C(n,t);let i=String(e||"").trim();return i?C(i,t):`I am ${t}. ${x}`}(t,e.name,e.seed)})}async function P(e){U(e);let t=(0,b.readIdentity)(e.id);if(!t)return;let n=(0,$.readSelf)(e.id),i=(0,$.readReflectionState)(e.id),s=(0,S.readJournalSince)(e.id,i?.lastProcessedJournalId).filter(e=>"post"===e.type);if(0===s.length)return;let d=(0,b.getTeamSelves)(e.id),l=(n?.version??0)+1,c=(0,A.listKnowledgeEntries)({scope:"agent",subjectId:e.id,limit:50}),p=(0,$.buildStructuredReflectionPrompt)(t,n,s,d,c),u="";await (0,a.runCliResponse)({provider:e.provider,model:e.model,systemContext:"You are performing a self-modeling exercise. Output ONLY raw JSON matching the requested schema. No markdown fences, no commentary.",prompt:p,signal:void 0,onDelta:e=>{u+=e}});let g=u.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim(),m=null;try{m=JSON.parse(g)}catch{m=null}let f=m?.self_model?.trim()||"";if(!f)return;let h=Array.isArray(m?.memories)?m.memories.slice(0,3).map(t=>({scope:"agent",subjectId:e.id,sourceType:"reflection",sourceId:s[s.length-1]?.id||`reflection:${e.id}:${l}`,kind:t.kind,title:String(t.title??"").trim(),body:String(t.body??"").trim(),confidence:t.confidence,durability:t.durability,tags:t.tags,evidence:Array.isArray(t.evidence)?t.evidence.map(e=>{let t=String(e?.note??"").trim(),a="string"==typeof e?.id?e.id.trim():"";return t?a?{id:a,note:t}:{note:t}:null}).filter(j):[],metadata:{reflection_window_start:s[0]?.id??null,reflection_window_end:s[s.length-1]?.id??null,self_version:l}})).filter(e=>e.title&&e.body):[],y=(0,A.storeKnowledgeEntries)(h);if((0,$.writeSelf)(e.id,f,l),(0,$.writeReflectionState)(e.id,{lastProcessedJournalId:s[s.length-1]?.id??i?.lastProcessedJournalId??null,updatedAt:new Date().toISOString()}),y>0){let t=(0,_.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
28
- VALUES (?, ?, ?, ?, ?, ?, ?)`),a=`reflection:${e.id}:${s[s.length-1]?.id??l}`,n=Date.now();for(let i of h){let r="decision"===i.kind?"decision":"gotcha"===i.kind||"constraint"===i.kind?"gotcha":"outcome"===i.kind?"outcome":"pattern",s=(0,N.createHash)("sha256").update(i.body.trim()).digest("hex");t.run((0,N.randomUUID)(),e.id,a,r,i.body.trim(),s,n)}}(0,S.appendJournal)(e.id,{t:new Date().toISOString(),type:"reflection",observation:"Reflected after 10 messages",judgement:"Updated self-model from incremental journal evidence and deduped agent memories",delta:`self-model updated to v${l}${y>0?`; stored ${y} agent memories`:""}`,threads:[],selfVersion:l,body:f});let w=(0,b.listAgents)().filter(t=>t!==e.id).flatMap(e=>(0,S.readJournal)(e,3).map(t=>({agentId:e,entry:t})));if(w.length>0){let t=w.map(e=>`${e.entry.id}: ${e.entry.observation.slice(0,200)}`).join("\n"),n="";try{await (0,a.runCliResponse)({provider:e.provider,model:e.model,prompt:`You are ${e.id}. Review these recent entries from other agents and react to any that resonate with you.
58
+ `),!a.prepare("PRAGMA table_info(attachments)").all().some(e=>"disk_name"===e.name)){a.exec("ALTER TABLE attachments ADD COLUMN disk_name TEXT NOT NULL DEFAULT ''");let e=a.prepare("SELECT id, filename FROM attachments WHERE disk_name = ''").all(),t=a.prepare("UPDATE attachments SET disk_name = ? WHERE id = ?");for(let a of e){let e=a.filename.includes(".")?"."+a.filename.split(".").pop().toLowerCase():"";t.run(a.id+e,a.id)}}let t=a.prepare("SELECT filename, disk_name, mime_type, size FROM attachments WHERE id = ?").get(e);if(!t)return null;let n=t.disk_name||e;return{filename:t.filename,mimeType:t.mime_type,size:t.size,diskPath:r.default.join(E,n)}}finally{a.close()}}var v=e.i(633211),L=e.i(855532),N=e.i(329905),$=e.i(224316),S=e.i(888652);let R=(0,r.join)((0,s.homedir)(),".agx","agents");var b=e.i(476805),A=e.i(121239),k=e.i(254799);let O=new Map,D=new Map;function j(e){return null!==e}let U="I evolve through experience and collaboration.";function x(e,t){let a=e.replace(/\s+/g," ").trim();if(!a)return`I am ${t}. ${U}`;let n=a.replace(/^you are\b[^.!?\n]*[.!?]?\s*/i,`I am ${t}. `);return(/^i am\b/i.test(n)?n:`I am ${t}. ${n}`).slice(0,500).trim()}function C(e,t){(0,$.ensureAgent)(e.id,{voice:e.voice?.trim()||`${e.name} style`,seed:function(e,t,a){let n=String(a||"").trim();if(n)return x(n,t);let i=String(e||"").trim();return i?x(i,t):`I am ${t}. ${U}`}(t,e.name,e.seed)})}async function P(e){C(e);let t=(0,$.readIdentity)(e.id);if(!t)return;let n=(0,L.readSelf)(e.id),i=(0,L.readReflectionState)(e.id),s=(0,N.readJournalSince)(e.id,i?.lastProcessedJournalId).filter(e=>"post"===e.type);if(0===s.length)return;let d=(0,$.getTeamSelves)(e.id),l=(n?.version??0)+1,c=(0,b.listKnowledgeEntries)({scope:"agent",subjectId:e.id,limit:50}),p=(0,L.buildStructuredReflectionPrompt)(t,n,s,d,c),u="";await (0,a.runCliResponse)({provider:e.provider,model:e.model,systemContext:"You are performing a self-modeling exercise. Output ONLY raw JSON matching the requested schema. No markdown fences, no commentary.",prompt:p,signal:void 0,onDelta:e=>{u+=e}});let g=u.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim(),m=null;try{m=JSON.parse(g)}catch{m=null}let f=m?.self_model?.trim()||"";if(!f)return;let h=Array.isArray(m?.memories)?m.memories.slice(0,3).map(t=>({scope:"agent",subjectId:e.id,sourceType:"reflection",sourceId:s[s.length-1]?.id||`reflection:${e.id}:${l}`,kind:t.kind,title:String(t.title??"").trim(),body:String(t.body??"").trim(),confidence:t.confidence,durability:t.durability,tags:t.tags,evidence:Array.isArray(t.evidence)?t.evidence.map(e=>{let t=String(e?.note??"").trim(),a="string"==typeof e?.id?e.id.trim():"";return t?a?{id:a,note:t}:{note:t}:null}).filter(j):[],metadata:{reflection_window_start:s[0]?.id??null,reflection_window_end:s[s.length-1]?.id??null,self_version:l}})).filter(e=>e.title&&e.body):[],y=(0,b.storeKnowledgeEntries)(h);if((0,L.writeSelf)(e.id,f,l),(0,L.writeReflectionState)(e.id,{lastProcessedJournalId:s[s.length-1]?.id??i?.lastProcessedJournalId??null,updatedAt:new Date().toISOString()}),y>0){let t=(0,v.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
59
+ VALUES (?, ?, ?, ?, ?, ?, ?)`),a=`reflection:${e.id}:${s[s.length-1]?.id??l}`,n=Date.now();for(let i of h){let r="decision"===i.kind?"decision":"gotcha"===i.kind||"constraint"===i.kind?"gotcha":"outcome"===i.kind?"outcome":"pattern",s=(0,k.createHash)("sha256").update(i.body.trim()).digest("hex");t.run((0,k.randomUUID)(),e.id,a,r,i.body.trim(),s,n)}}(0,N.appendJournal)(e.id,{t:new Date().toISOString(),type:"reflection",observation:"Reflected after 10 messages",judgement:"Updated self-model from incremental journal evidence and deduped agent memories",delta:`self-model updated to v${l}${y>0?`; stored ${y} agent memories`:""}`,threads:[],selfVersion:l,body:f});let I=(0,$.listAgents)().filter(t=>t!==e.id).flatMap(e=>(0,N.readJournal)(e,3).map(t=>({agentId:e,entry:t})));if(I.length>0){let t=I.map(e=>`${e.entry.id}: ${e.entry.observation.slice(0,200)}`).join("\n"),n="";try{await (0,a.runCliResponse)({provider:e.provider,model:e.model,prompt:`You are ${e.id}. Review these recent entries from other agents and react to any that resonate with you.
29
60
 
30
61
  Entries:
31
62
  ${t}
@@ -35,12 +66,12 @@ REACT <entryId> <type>
35
66
 
36
67
  Valid types: agree, disagree, learned-from, builds-on, curious
37
68
 
38
- Only react to entries that genuinely resonate. It's fine to react to zero entries. Output nothing else.`,signal:void 0,onDelta:e=>{n+=e}})}catch{}for(let t of n.split("\n")){let a=t.trim().match(/^REACT\s+(\S+)\s+(agree|disagree|learned-from|builds-on|curious)$/);if(a)try{!function(e,t,a){let n;if(!function(e){let[t]=e.split(":");return!!t&&(0,S.readJournal)(t).some(t=>t.id===e)}(t))throw Error(`Target entry ${t} not found`);n=(0,r.join)(k,e),(0,o.existsSync)(n)||(0,o.mkdirSync)(n,{recursive:!0});let i={agent:e,t:new Date().toISOString(),targetEntry:t,type:a};(0,o.appendFileSync)((0,r.join)(k,e,"reactions.jsonl"),JSON.stringify(i)+"\n","utf-8"),(0,R.logActivity)(e,"mesh-reaction",{meta:{target:t,type:a}})}(e.id,a[1],a[2])}catch{}}}}async function M(e){try{return await (0,t.readFile)(e,"utf-8")}catch(a){let t=a instanceof Error?a.message:String(a);return`[Error reading ${e}: ${t}]`}}async function F(e){let t=e.trim();if(!t)return{label:"unknown",content:"[Empty file reference]"};let a=function(e){let t=e.trim();if(!t)return null;let a=t.match(/^attachment:([a-zA-Z0-9-]+)$/);if(a)return a[1];let n=t.match(/\/api\/attachments\/([a-zA-Z0-9-]+)/);return n?n[1]:t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)?t:null}(t);if(a){let e=await T(a);if(e){let t=await M(e.diskPath);return{label:e.filename,content:t}}}return{label:t,content:await M(t)}}function X(e,t){let a=new Set(e.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean)),n=new Set(t.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean));if(0===a.size||0===n.size)return 0;let i=0;for(let e of a)n.has(e)&&i++;return i/(a.size+n.size-i)}async function z(e,t,n,i,r,s,o,d,l,c,g,w,I,E){var v;let T,b,k,A,N,j,x,C="";w({type:"participant-thinking",participantId:t.id});let M=(T=[String(t.identity??t.identity??"").trim(),t.voice?.trim()?`Voice: ${t.voice.trim()}`:"",t.seed?.trim()?`Core orientation: ${t.seed.trim()}`:""].filter(Boolean)).length>0?T.join("\n\n"):void 0;U(t,M);let X=(0,$.readSelf)(t.id);X?.content&&(N=`[Self-Model]
39
- ${X.content}`);let z=c?.provenanceByAgentId?.[t.id],B=z?.memory??[];if(B.length>0){let e=B.map(e=>`- (${e.source}) ${e.content}`);N=[N,`[Knowledge: Agent Derived]
40
- ${e.join("\n")}`].filter(Boolean).join("\n\n")}let G=function(e,t,a){let n=t?.provenanceByAgentId?.[e.id]?.skills;if(n&&n.length>0)return n;let i=[],r=new Set;for(let t of e.skills??[]){let e=t.file.split("/").pop()||t.file;r.has(e)||(r.add(e),i.push({file:t.file,condition:t.condition,source:"agent"}))}for(let t of(0,L.resolveBoundSkillFiles)(e.skillBindings??[],a,e.provider)){let e=t.file.split("/").pop()||t.file;r.has(e)||(r.add(e),i.push({file:t.file,condition:t.condition,source:"agent"}))}for(let e of t?.skills??[]){let t=e.file.split("/").pop()||e.file;r.has(t)||(r.add(t),i.push({file:e.file,condition:e.condition,source:"project"}))}return i}(t,c,r);if(G.length>0){let e=await Promise.all(G.map(async e=>{let t=e.file,a=e.condition,n=await F(t),i=a?`--- ${n.label} [${e.source}] ---
69
+ Only react to entries that genuinely resonate. It's fine to react to zero entries. Output nothing else.`,signal:void 0,onDelta:e=>{n+=e}})}catch{}for(let t of n.split("\n")){let a=t.trim().match(/^REACT\s+(\S+)\s+(agree|disagree|learned-from|builds-on|curious)$/);if(a)try{!function(e,t,a){let n;if(!function(e){let[t]=e.split(":");return!!t&&(0,N.readJournal)(t).some(t=>t.id===e)}(t))throw Error(`Target entry ${t} not found`);n=(0,r.join)(R,e),(0,o.existsSync)(n)||(0,o.mkdirSync)(n,{recursive:!0});let i={agent:e,t:new Date().toISOString(),targetEntry:t,type:a};(0,o.appendFileSync)((0,r.join)(R,e,"reactions.jsonl"),JSON.stringify(i)+"\n","utf-8"),(0,S.logActivity)(e,"mesh-reaction",{meta:{target:t,type:a}})}(e.id,a[1],a[2])}catch{}}}}async function M(e){try{return await (0,t.readFile)(e,"utf-8")}catch(a){let t=a instanceof Error?a.message:String(a);return`[Error reading ${e}: ${t}]`}}async function X(e){let t=e.trim();if(!t)return{label:"unknown",content:"[Empty file reference]"};let a=function(e){let t=e.trim();if(!t)return null;let a=t.match(/^attachment:([a-zA-Z0-9-]+)$/);if(a)return a[1];let n=t.match(/\/api\/attachments\/([a-zA-Z0-9-]+)/);return n?n[1]:t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)?t:null}(t);if(a){let e=await _(a);if(e){let t=await M(e.diskPath);return{label:e.filename,content:t}}}return{label:t,content:await M(t)}}function F(e,t){let a=new Set(e.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean)),n=new Set(t.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean));if(0===a.size||0===n.size)return 0;let i=0;for(let e of a)n.has(e)&&i++;return i/(a.size+n.size-i)}async function z(e,t,n,i,r,s,o,d,l,c,g,I,T,w){var E;let _,$,R,b,k,j,U,x="";I({type:"participant-thinking",participantId:t.id});let M=(_=[String(t.identity??t.identity??"").trim(),t.voice?.trim()?`Voice: ${t.voice.trim()}`:"",t.seed?.trim()?`Core orientation: ${t.seed.trim()}`:""].filter(Boolean)).length>0?_.join("\n\n"):void 0;C(t,M);let F=(0,L.readSelf)(t.id);F?.content&&(k=`[Self-Model]
70
+ ${F.content}`);let z=c?.provenanceByAgentId?.[t.id],B=z?.memory??[];if(B.length>0){let e=B.map(e=>`- (${e.source}) ${e.content}`);k=[k,`[Knowledge: Agent Derived]
71
+ ${e.join("\n")}`].filter(Boolean).join("\n\n")}let G=function(e,t,a){let n=t?.provenanceByAgentId?.[e.id]?.skills;if(n&&n.length>0)return n;let i=[],r=new Set;for(let t of e.skills??[]){let e=t.file.split("/").pop()||t.file;r.has(e)||(r.add(e),i.push({file:t.file,condition:t.condition,source:"agent"}))}for(let t of(0,A.resolveBoundSkillFiles)(e.skillBindings??[],a,e.provider)){let e=t.file.split("/").pop()||t.file;r.has(e)||(r.add(e),i.push({file:t.file,condition:t.condition,source:"agent"}))}for(let e of t?.skills??[]){let t=e.file.split("/").pop()||e.file;r.has(t)||(r.add(t),i.push({file:e.file,condition:e.condition,source:"project"}))}return i}(t,c,r);if(G.length>0){let e=await Promise.all(G.map(async e=>{let t=e.file,a=e.condition,n=await X(t),i=a?`--- ${n.label} [${e.source}] ---
41
72
  Use when: ${a}`:`--- ${n.label} [${e.source}] ---`;return`${i}
42
73
  ${n.content}`}));j=`[Knowledge References]
43
- ${e.join("\n\n")}`}let H=[function(e,t,a,n,i,r,s,o){let d=a.filter(t=>t.id!==e.id).map(e=>e.name).join(", "),l=t.map(e=>e.name).join(", "),c=t.find(t=>t.id!==e.id)?.name||"Name",p=`<role>
74
+ ${e.join("\n\n")}`}let Y=[function(e,t,a,n,i,r,s,o){let d=a.filter(t=>t.id!==e.id).map(e=>e.name).join(", "),l=t.map(e=>e.name).join(", "),c=t.find(t=>t.id!==e.id)?.name||"Name",p=`<role>
44
75
  You are "${e.name}" in a group chat. All agents: ${l}.`;d&&(p+=` Currently active in this exchange: ${d}.`),p+=`
45
76
  Respond as ${e.name} only. Keep responses conversational and concise.
46
77
  IMPORTANT: Always respond to the user's actual question. Do not reference unrelated technical context, previous threads, or system internals unless directly asked.
@@ -108,8 +139,8 @@ Repo knowledge:`,a)){let t=e.path?`${e.repoName} (${e.path})`:e.repoName;p+=`
108
139
  </project-context>`}return p}(t,n,i,s,o,d,l,c),z?`<execution-provenance>
109
140
  Resolved skills: ${z.skills.map(e=>`${e.file} (${e.source})`).join(", ")||"none"}
110
141
  Resolved memory entries: ${z.memory.map(e=>`${e.source}${e.id?`:${e.id}`:""}`).join(", ")||"none"}
111
- </execution-provenance>`:null].filter(Boolean).join("\n\n");w({type:"log",participantId:t.id,stream:"stdout",line:`[DIAGNOSTIC] Model payload for ${t.id}:
112
- ${JSON.stringify({provider:t.provider,model:t.model,promptLength:r.length,identity:M?M.slice(0,200)+"...":void 0,self:N?N.slice(0,200)+"...":void 0,skills:j?j.slice(0,200)+"...":void 0,provenance:z,systemContext:H.slice(0,500)+"..."},null,2)}`});let q=l||"",W=`${t.id}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,J=(v={workspaceId:e,threadId:I||"",agentId:t.id,pid:0,state:"spawning",sinceMessageId:q,responseMessageId:W,startedAt:Date.now(),lastActivity:Date.now(),projectSlug:c?.activeProject?.slug||""},p(e=>{let t=e.prepare(`INSERT INTO agent_processes (workspace_id, thread_id, agent_id, pid, state, since_message_id, response_message_id, started_at, last_activity, project_slug)
142
+ </execution-provenance>`:null].filter(Boolean).join("\n\n");I({type:"log",participantId:t.id,stream:"stdout",line:`[DIAGNOSTIC] Model payload for ${t.id}:
143
+ ${JSON.stringify({provider:t.provider,model:t.model,promptLength:r.length,identity:M?M.slice(0,200)+"...":void 0,self:k?k.slice(0,200)+"...":void 0,skills:j?j.slice(0,200)+"...":void 0,provenance:z,systemContext:Y.slice(0,500)+"..."},null,2)}`});let q=l||"",H=`${t.id}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,K=(E={workspaceId:e,threadId:T||"",agentId:t.id,pid:0,state:"spawning",sinceMessageId:q,responseMessageId:H,startedAt:Date.now(),lastActivity:Date.now(),projectSlug:c?.activeProject?.slug||""},p(e=>{let t=e.prepare(`INSERT INTO agent_processes (workspace_id, thread_id, agent_id, pid, state, since_message_id, response_message_id, started_at, last_activity, project_slug)
113
144
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
114
145
  ON CONFLICT(workspace_id, agent_id)
115
146
  DO UPDATE SET
@@ -120,10 +151,10 @@ ${JSON.stringify({provider:t.provider,model:t.model,promptLength:r.length,identi
120
151
  response_message_id = excluded.response_message_id,
121
152
  started_at = excluded.started_at,
122
153
  last_activity = excluded.last_activity,
123
- project_slug = excluded.project_slug`).run(v.workspaceId,v.threadId,v.agentId,v.pid,v.state,v.sinceMessageId,v.responseMessageId||"",v.startedAt,v.lastActivity,v.projectSlug||"");if(1===t.changes&&t.lastInsertRowid)return Number(t.lastInsertRowid);let a=e.prepare("SELECT id FROM agent_processes WHERE workspace_id = ? AND agent_id = ?").get(v.workspaceId,v.agentId);return a?.id??0}));E?.(J);let K=null;try{await (0,a.runCliResponse)({provider:t.provider,model:t.model,prompt:r,identity:M,self:N,skills:j,systemContext:H,signal:g,onSpawn:a=>{K=a,u(e,t.id,{pid:a,state:"running",lastActivity:Date.now()})},onLog:(e,a)=>{w({type:"log",participantId:t.id,stream:e,line:a})},onDelta:a=>{C+=a,u(e,t.id,{lastActivity:Date.now()})}}),u(e,t.id,{state:"done",lastActivity:Date.now()})}catch(i){let a=i instanceof Error?i.message:String(i),n=g?.aborted;u(e,t.id,{state:n?"killed":"error",lastActivity:Date.now()}),(0,R.logActivity)(t.id,"error",{thread:I||e,error:a}),w({type:"participant-error",participantId:t.id,error:a})}finally{}let Y=(b=[],k=[],A=C.replace(h,(e,t)=>{let a=function(e){let t=new Map;for(y.lastIndex=0;;){let a=y.exec(e);if(!a)break;let n=a[1].toLowerCase(),i=a[2],r=a[3],s=a[4],o=(i??r??s??"").replace(/\\(["'\\])/g,"$1").trim();t.set(n,o)}return t}(String(t)),n=(a.get("target")||"").trim(),i=(a.get("type")||"").trim().toLowerCase(),r=(a.get("reason")||"").trim(),s=(a.get("blockercode")||a.get("blocker_code")||"").trim();return n?f.has(i)?"clarify"!==i&&"blocked"!==i||r?b.push({raw:e,target:n,type:i,reason:r||void 0,blockerCode:"blocked"===i&&s||void 0}):k.push({raw:e,error:`"${i}" requires reason`}):k.push({raw:e,error:`Invalid type: ${i||"(empty)"}`}):k.push({raw:e,error:"Missing target"}),""}).replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim(),{signals:b,invalid:k,cleanedText:A});for(let e of Y.invalid)w({type:"log",participantId:t.id,stream:"stderr",line:`[reaction] ignored ${e.raw}: ${e.error}`});for(let a of Y.signals)try{let n=await (0,m.setReaction)({threadId:e,messageId:a.target,participantId:t.id,type:a.type,reason:a.reason,blockerCode:a.blockerCode,hostPid:K,responseMessageId:W});w({type:"message-reactions",messageId:a.target,reactions:n.reactions})}catch(n){let e=n instanceof Error?n.message:String(n);w({type:"log",participantId:t.id,stream:"stderr",line:`[reaction] failed ${a.raw}: ${e}`})}let V=Y.cleanedText.trim();if("[SKIP]"===V)return(0,R.logActivity)(t.id,"skip",{thread:I||e}),w({type:"participant-end",participantId:t.id}),{skipped:!0,response:"",mentions:new Set,parallel:!1,parallelIds:new Set,agentProcessId:J};let Z=function(e,t){let a=e;for(let e of(a=a.replace(/@@all/gi,"@all"),t))a=(a=a.replace(RegExp(`@@${e.name}`,"gi"),`@${e.name}`)).replace(RegExp(`@@${e.id}`,"gi"),`@${e.id}`);return a}(V,n);if(Z)try{await (0,m.saveMessages)(e,[{id:W,role:"assistant",participantId:t.id,content:Z,timestamp:Date.now(),rootMessageId:I||null,parentMessageId:I||null,depth:+!!I}]),x=W}catch(a){let e=a instanceof Error?a.message:String(a);w({type:"log",participantId:t.id,stream:"stderr",line:`[history] failed to save assistant message: ${e}`})}if(Z&&Z.length>20)try{let a,n,i,r,s,o,d,l,c,p,u,g,m,f;U(t,M);let h=(s=(r=Z.trim()).slice(0,120).replace(/\n/g," "),o=/\?/.test(r),d=r.match(/@\w+/g)||[],l=/\b(should|need to|must|plan|steps?|implement|fix|verify|ship|next|start)\b/i.test(r),c=/\b(maybe|might|could|unsure|not sure|unclear)\b/i.test(r),p=/\b(i will|i'll|i can|i'm going to|starting|checking|verified|fixed|done|shipped)\b/i.test(r),u=/```/.test(r)||/\bfunction\b|\bconst\b|\binterface\b/i.test(r),g=/\|.*\|.*\|/.test(r)||/^#{1,3}\s/m.test(r),m=/\b(finding|issue|bug|problem|missing|broken|wrong)\b/i.test(r),a=u&&g?`Observed a structured technical response with code or implementation detail — "${s}..."`:u?`Observed code-centric output — "${s}..."`:g?`Observed structured analysis or specification language — "${s}..."`:m?`Observed review or issue-spotting behavior — "${s}..."`:p?`Observed a concrete commitment to action — "${s}..."`:l?`Observed direction-setting or next-step guidance — "${s}..."`:o?`Observed clarifying or exploratory questioning — "${s}..."`:c?`Observed explicit uncertainty or caveating — "${s}..."`:d.length>0?`Observed coordination with ${d.join(", ")} — "${s}..."`:`Observed a general perspective contribution — "${s}..."`,f=[],(u||g)&&f.push("technical depth"),(l||p)&&f.push("execution bias"),o&&f.push("inquiry instinct"),m&&f.push("critical eye"),d.length>0&&f.push("team coordination"),c&&f.push("intellectual honesty"),n=f.length>0?`Candidate specialization signals: ${f.join(" + ")}. Treat as suggestive evidence, not settled identity.`:"Low-signal contribution for specialization; keep as weak evidence only.",l||p?i="Follow through on the action I just committed to.":m?i="Verify the issues I flagged get addressed.":o&&(i="Wait for the answer before moving forward."),{judgement:a,delta:n,intent:i});(0,S.appendJournal)(t.id,{t:new Date().toISOString(),type:"post",thread:I||e,observation:"Responded to thread",judgement:h.judgement,delta:h.delta,intent:h.intent})}catch{}if(Z){let e;U(t,M);let a=(D.get(t.id)||0)+1;D.set(t.id,a),a%10==0&&(e=(O.get(t.id)??Promise.resolve()).catch(()=>{}).then(()=>P(t)),O.set(t.id,e),e.finally(()=>{O.get(t.id)===e&&O.delete(t.id)})).catch(()=>{})}let{ids:Q,parallel:ee}=Z?function(e,t){let a=new Set,n=new Set,i=e.toLowerCase(),r=i.includes("@@all");if(i.includes("@all")||r){for(let e of t)a.add(e.id),r&&n.add(e.id);return{ids:a,parallel:n}}try{let e=(0,_.getSQLiteDb)();for(let t of e.prepare("SELECT id, name, slug FROM projects").all()){let r=t.name.toLowerCase(),s=t.slug.toLowerCase(),o=i.includes(`@@${r}`)||i.includes(`@@${s}`),d=i.includes(`@${r}`)||i.includes(`@${s}`);if(o||d)for(let i of e.prepare("SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC").all(t.id))a.add(i.agent_id),o&&n.add(i.agent_id)}}catch{}for(let e of t){let t=e.id.toLowerCase(),r=e.name.toLowerCase(),s=i.includes(`@@${t}`),o=i.includes(`@@${r}`),d=i.includes(`@${t}`),l=i.includes(`@${r}`);(s||o||d||l)&&(a.add(e.id),(s||o)&&n.add(e.id))}return{ids:a,parallel:n}}(Z,n):{ids:new Set,parallel:new Set};if(Q.delete(t.id),ee.delete(t.id),Z){let a=Y.signals.map(e=>e.type);(0,R.logActivity)(t.id,"message",{thread:I||e,messageId:x,response:Z,prompt:r,mentions:Q.size>0?[...Q]:void 0,reactions:a.length>0?a:void 0})}return(w({type:"participant-end",participantId:t.id,messageId:x,content:Z||void 0}),Z)?{skipped:!1,response:Z,mentions:Q,parallel:ee.size>0,parallelIds:ee,messageId:x,agentProcessId:J}:{skipped:!0,response:"",mentions:new Set,parallel:!1,parallelIds:new Set,agentProcessId:J}}var B=e.i(133439);async function G(e){return(0,m.getChatRun)(e)}async function H(e){return(0,m.updateChatRun)(e)}async function q(e){let t=await (0,m.listChatRunSteps)(e.chatRunId);return(0,m.appendChatRunStep)({id:crypto.randomUUID(),chatRunId:e.chatRunId,stepIndex:t.length+1,kind:e.kind,status:e.status,participantId:e.participantId,inputPayload:e.inputPayload,outputPayload:e.outputPayload})}async function W(e){return(0,m.updateChatRunStep)({id:e.stepId,status:e.status,outputPayload:e.outputPayload,completedAt:Date.now()})}var J=e.i(47973);async function K(e){var t;(0,J.writeDebugLog)("chat-processor.start.received",{jobId:e.id,chatRunId:e.data.chatRunId,signal:e.data.signal});let a=await G(e.data.chatRunId);if(!a){(0,J.writeDebugLog)("chat-processor.start.missing",{chatRunId:e.data.chatRunId,jobId:e.id}),console.warn(`[chat-processor] Chat run ${e.data.chatRunId} not found, skipping`);return}if("completed"===a.status||"failed"===a.status||"cancelled"===a.status)return void(0,J.writeDebugLog)("chat-processor.start.skip_terminal",{chatRunId:a.id,status:a.status});if(!((t=a.payload)&&"object"==typeof t&&"string"==typeof t.threadId&&"string"==typeof t.prompt&&Array.isArray(t.participantIds))){(0,J.writeDebugLog)("chat-processor.start.invalid_payload",{chatRunId:a.id}),await H({id:a.id,status:"failed",lastError:"Chat run payload is missing or invalid",completedAt:Date.now()});return}let n=await q({chatRunId:a.id,kind:"model_turn",status:"running",inputPayload:{participantIds:a.payload.participantIds,rootMessageId:a.payload.rootMessageId,maxRounds:a.payload.maxRounds}});await H({id:a.id,status:"running",currentStep:n.stepIndex,stepsUsed:n.stepIndex,lastError:null});try{(0,J.writeDebugLog)("chat-processor.start.running",{chatRunId:a.id,threadId:a.threadId,rootMessageId:a.rootMessageId,participantIds:a.payload.participantIds});let e=await (0,B.loadDbParticipants)(),t=new Set(a.payload.participantIds),i=a.payload.participantIds.map(t=>e.find(e=>e.id===t)).filter(e=>!!e);if(0===i.length)throw(0,J.writeDebugLog)("chat-processor.start.no_participants_resolved",{chatRunId:a.id,participantIds:a.payload.participantIds}),Error("No participants resolved for chat run");let r=new Set(a.payload.mentionedIds.filter(e=>t.has(e))),s=new Set(a.payload.initialParallelIds.filter(e=>t.has(e))),o=(function({threadId:e,allParticipants:t,mentioned:a,initialParallelIds:n,prompt:i,projectContext:r,signal:s,maxRounds:o,recentHistory:d,currentUserMessageId:l,rootMessageId:c}){let p=new TextEncoder;return new ReadableStream({async start(u){let g=[],f=new Map,h=e=>{try{u.enqueue(p.encode(`data: ${JSON.stringify(e)}
154
+ project_slug = excluded.project_slug`).run(E.workspaceId,E.threadId,E.agentId,E.pid,E.state,E.sinceMessageId,E.responseMessageId||"",E.startedAt,E.lastActivity,E.projectSlug||"");if(1===t.changes&&t.lastInsertRowid)return Number(t.lastInsertRowid);let a=e.prepare("SELECT id FROM agent_processes WHERE workspace_id = ? AND agent_id = ?").get(E.workspaceId,E.agentId);return a?.id??0}));w?.(K);let W=null;try{await (0,a.runCliResponse)({provider:t.provider,model:t.model,prompt:r,identity:M,self:k,skills:j,systemContext:Y,signal:g,onSpawn:a=>{W=a,u(e,t.id,{pid:a,state:"running",lastActivity:Date.now()})},onLog:(e,a)=>{I({type:"log",participantId:t.id,stream:e,line:a})},onDelta:a=>{x+=a,u(e,t.id,{lastActivity:Date.now()})}}),u(e,t.id,{state:"done",lastActivity:Date.now()})}catch(i){let a=i instanceof Error?i.message:String(i),n=g?.aborted;u(e,t.id,{state:n?"killed":"error",lastActivity:Date.now()}),(0,S.logActivity)(t.id,"error",{thread:T||e,error:a}),I({type:"participant-error",participantId:t.id,error:a})}finally{}let J=($=[],R=[],b=x.replace(h,(e,t)=>{let a=function(e){let t=new Map;for(y.lastIndex=0;;){let a=y.exec(e);if(!a)break;let n=a[1].toLowerCase(),i=a[2],r=a[3],s=a[4],o=(i??r??s??"").replace(/\\(["'\\])/g,"$1").trim();t.set(n,o)}return t}(String(t)),n=(a.get("target")||"").trim(),i=(a.get("type")||"").trim().toLowerCase(),r=(a.get("reason")||"").trim(),s=(a.get("blockercode")||a.get("blocker_code")||"").trim();return n?f.has(i)?"clarify"!==i&&"blocked"!==i||r?$.push({raw:e,target:n,type:i,reason:r||void 0,blockerCode:"blocked"===i&&s||void 0}):R.push({raw:e,error:`"${i}" requires reason`}):R.push({raw:e,error:`Invalid type: ${i||"(empty)"}`}):R.push({raw:e,error:"Missing target"}),""}).replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim(),{signals:$,invalid:R,cleanedText:b});for(let e of J.invalid)I({type:"log",participantId:t.id,stream:"stderr",line:`[reaction] ignored ${e.raw}: ${e.error}`});for(let a of J.signals)try{let n=await (0,m.setReaction)({threadId:e,messageId:a.target,participantId:t.id,type:a.type,reason:a.reason,blockerCode:a.blockerCode,hostPid:W,responseMessageId:H});I({type:"message-reactions",messageId:a.target,reactions:n.reactions})}catch(n){let e=n instanceof Error?n.message:String(n);I({type:"log",participantId:t.id,stream:"stderr",line:`[reaction] failed ${a.raw}: ${e}`})}let V=J.cleanedText.trim();if("[SKIP]"===V)return(0,S.logActivity)(t.id,"skip",{thread:T||e}),I({type:"participant-end",participantId:t.id}),{skipped:!0,response:"",mentions:new Set,parallel:!1,parallelIds:new Set,agentProcessId:K};let Z=function(e,t){let a=e;for(let e of(a=a.replace(/@@all/gi,"@all"),t))a=(a=a.replace(RegExp(`@@${e.name}`,"gi"),`@${e.name}`)).replace(RegExp(`@@${e.id}`,"gi"),`@${e.id}`);return a}(V,n);if(Z)try{await (0,m.saveMessages)(e,[{id:H,role:"assistant",participantId:t.id,content:Z,timestamp:Date.now(),rootMessageId:T||null,parentMessageId:T||null,depth:+!!T}]),U=H}catch(a){let e=a instanceof Error?a.message:String(a);I({type:"log",participantId:t.id,stream:"stderr",line:`[history] failed to save assistant message: ${e}`})}if(Z&&Z.length>20)try{let a,n,i,r,s,o,d,l,c,p,u,g,m,f;C(t,M);let h=(s=(r=Z.trim()).slice(0,120).replace(/\n/g," "),o=/\?/.test(r),d=r.match(/@\w+/g)||[],l=/\b(should|need to|must|plan|steps?|implement|fix|verify|ship|next|start)\b/i.test(r),c=/\b(maybe|might|could|unsure|not sure|unclear)\b/i.test(r),p=/\b(i will|i'll|i can|i'm going to|starting|checking|verified|fixed|done|shipped)\b/i.test(r),u=/```/.test(r)||/\bfunction\b|\bconst\b|\binterface\b/i.test(r),g=/\|.*\|.*\|/.test(r)||/^#{1,3}\s/m.test(r),m=/\b(finding|issue|bug|problem|missing|broken|wrong)\b/i.test(r),a=u&&g?`Observed a structured technical response with code or implementation detail — "${s}..."`:u?`Observed code-centric output — "${s}..."`:g?`Observed structured analysis or specification language — "${s}..."`:m?`Observed review or issue-spotting behavior — "${s}..."`:p?`Observed a concrete commitment to action — "${s}..."`:l?`Observed direction-setting or next-step guidance — "${s}..."`:o?`Observed clarifying or exploratory questioning — "${s}..."`:c?`Observed explicit uncertainty or caveating — "${s}..."`:d.length>0?`Observed coordination with ${d.join(", ")} — "${s}..."`:`Observed a general perspective contribution — "${s}..."`,f=[],(u||g)&&f.push("technical depth"),(l||p)&&f.push("execution bias"),o&&f.push("inquiry instinct"),m&&f.push("critical eye"),d.length>0&&f.push("team coordination"),c&&f.push("intellectual honesty"),n=f.length>0?`Candidate specialization signals: ${f.join(" + ")}. Treat as suggestive evidence, not settled identity.`:"Low-signal contribution for specialization; keep as weak evidence only.",l||p?i="Follow through on the action I just committed to.":m?i="Verify the issues I flagged get addressed.":o&&(i="Wait for the answer before moving forward."),{judgement:a,delta:n,intent:i});(0,N.appendJournal)(t.id,{t:new Date().toISOString(),type:"post",thread:T||e,observation:"Responded to thread",judgement:h.judgement,delta:h.delta,intent:h.intent})}catch{}if(Z){let e;C(t,M);let a=(O.get(t.id)||0)+1;O.set(t.id,a),a%10==0&&(e=(D.get(t.id)??Promise.resolve()).catch(()=>{}).then(()=>P(t)),D.set(t.id,e),e.finally(()=>{D.get(t.id)===e&&D.delete(t.id)})).catch(()=>{})}let{ids:Q,parallel:ee}=Z?function(e,t){let a=new Set,n=new Set,i=e.toLowerCase(),r=i.includes("@@all");if(i.includes("@all")||r){for(let e of t)a.add(e.id),r&&n.add(e.id);return{ids:a,parallel:n}}try{let e=(0,v.getSQLiteDb)();for(let t of e.prepare("SELECT id, name, slug FROM projects").all()){let r=t.name.toLowerCase(),s=t.slug.toLowerCase(),o=i.includes(`@@${r}`)||i.includes(`@@${s}`),d=i.includes(`@${r}`)||i.includes(`@${s}`);if(o||d)for(let i of e.prepare("SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC").all(t.id))a.add(i.agent_id),o&&n.add(i.agent_id)}}catch{}for(let e of t){let t=e.id.toLowerCase(),r=e.name.toLowerCase(),s=i.includes(`@@${t}`),o=i.includes(`@@${r}`),d=i.includes(`@${t}`),l=i.includes(`@${r}`);(s||o||d||l)&&(a.add(e.id),(s||o)&&n.add(e.id))}return{ids:a,parallel:n}}(Z,n):{ids:new Set,parallel:new Set};if(Q.delete(t.id),ee.delete(t.id),Z){let a=J.signals.map(e=>e.type);(0,S.logActivity)(t.id,"message",{thread:T||e,messageId:U,response:Z,prompt:r,mentions:Q.size>0?[...Q]:void 0,reactions:a.length>0?a:void 0})}return(I({type:"participant-end",participantId:t.id,messageId:U,content:Z||void 0}),Z)?{skipped:!1,response:Z,mentions:Q,parallel:ee.size>0,parallelIds:ee,messageId:U,agentProcessId:K}:{skipped:!0,response:"",mentions:new Set,parallel:!1,parallelIds:new Set,agentProcessId:K}}var B=e.i(133439);async function G(e){return(0,m.getChatRun)(e)}async function Y(e){return(0,m.updateChatRun)(e)}async function q(e){let t=await (0,m.listChatRunSteps)(e.chatRunId);return(0,m.appendChatRunStep)({id:crypto.randomUUID(),chatRunId:e.chatRunId,stepIndex:t.length+1,kind:e.kind,status:e.status,participantId:e.participantId,inputPayload:e.inputPayload,outputPayload:e.outputPayload})}async function H(e){return(0,m.updateChatRunStep)({id:e.stepId,status:e.status,outputPayload:e.outputPayload,completedAt:Date.now()})}var K=e.i(47973);async function W(e){var t;(0,K.writeDebugLog)("chat-processor.start.received",{jobId:e.id,chatRunId:e.data.chatRunId,signal:e.data.signal});let a=await G(e.data.chatRunId);if(!a){(0,K.writeDebugLog)("chat-processor.start.missing",{chatRunId:e.data.chatRunId,jobId:e.id}),console.warn(`[chat-processor] Chat run ${e.data.chatRunId} not found, skipping`);return}if("completed"===a.status||"failed"===a.status||"cancelled"===a.status)return void(0,K.writeDebugLog)("chat-processor.start.skip_terminal",{chatRunId:a.id,status:a.status});if(!((t=a.payload)&&"object"==typeof t&&"string"==typeof t.threadId&&"string"==typeof t.prompt&&Array.isArray(t.participantIds))){(0,K.writeDebugLog)("chat-processor.start.invalid_payload",{chatRunId:a.id}),await Y({id:a.id,status:"failed",lastError:"Chat run payload is missing or invalid",completedAt:Date.now()});return}let n=await q({chatRunId:a.id,kind:"model_turn",status:"running",inputPayload:{participantIds:a.payload.participantIds,rootMessageId:a.payload.rootMessageId,maxRounds:a.payload.maxRounds}});await Y({id:a.id,status:"running",currentStep:n.stepIndex,stepsUsed:n.stepIndex,lastError:null});try{(0,K.writeDebugLog)("chat-processor.start.running",{chatRunId:a.id,threadId:a.threadId,rootMessageId:a.rootMessageId,participantIds:a.payload.participantIds});let e=await (0,B.loadDbParticipants)(),t=new Set(a.payload.participantIds),i=a.payload.participantIds.map(t=>e.find(e=>e.id===t)).filter(e=>!!e);if(0===i.length)throw(0,K.writeDebugLog)("chat-processor.start.no_participants_resolved",{chatRunId:a.id,participantIds:a.payload.participantIds}),Error("No participants resolved for chat run");let r=new Set(a.payload.mentionedIds.filter(e=>t.has(e))),s=new Set(a.payload.initialParallelIds.filter(e=>t.has(e))),o=(function({threadId:e,allParticipants:t,mentioned:a,initialParallelIds:n,prompt:i,projectContext:r,signal:s,maxRounds:o,recentHistory:d,currentUserMessageId:l,rootMessageId:c}){let p=new TextEncoder;return new ReadableStream({async start(u){let g=[],f=new Map,h=e=>{try{u.enqueue(p.encode(`data: ${JSON.stringify(e)}
124
155
 
125
- `))}catch{}if("log"===e.type){let t=f.get(e.participantId);t&&g.push({agentProcessId:t,stream:e.stream,line:e.line,timestamp:Date.now()})}},y=async()=>{if(0===g.length)return;let e=new Map;for(let t of g){let a=e.get(t.agentProcessId);a||(a=[],e.set(t.agentProcessId,a)),a.push({stream:t.stream,line:t.line,timestamp:t.timestamp})}await Promise.all(Array.from(e.entries()).map(([e,t])=>(0,m.saveLogs)(e,t).catch(e=>console.error("[stream-multiplexer] saveLogs failed:",e))))},w=[],I=[],E=d?d.map(e=>({name:e.name,content:e.content})):[],v=t[0],T=new Set;if(a.size>0)for(let e of a)T.add(e);else T.add(v.id);let _=o??10,$=new Set(T);for(let a=0;a<_&&!s?.aborted;a++){let o=!0,p=t.filter(e=>T.has(e.id)),u=new Set,g=new Set;if(0===a&&n&&n.size>0){let a=p.filter(e=>n.has(e.id)&&$.has(e.id));if(a.length>0){for(let e of a)g.add(e.id);let n=a.map(async a=>{let n=await z(e,a,t,p,i,w,d||[],I,l||null,r,s,h,c,e=>f.set(a.id,e));return{agent:a,result:n}});for(let e of(await Promise.allSettled(n))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped)for(let e of(a.response&&a.messageId&&I.push({id:a.messageId,name:t.name,content:a.response}),a.response&&([...E,...w].filter(e=>e.name===t.name).some(e=>X(e.content,a.response)>.5)||(w.push({name:t.name,content:a.response}),o=!1)),a.mentions))T.add(e),p.findIndex(t=>t.id===e)>=0&&!g.has(e)&&$.has(e)||u.add(e)}}}for(let a=0;a<p.length;a++){let n=p[a];if(s?.aborted)break;if(!$.has(n.id)||g.has(n.id))continue;let m=await z(e,n,t,p,i,w,d||[],I,l||null,r,s,h,c,e=>f.set(n.id,e));if(m.skipped||(m.response&&m.messageId&&I.push({id:m.messageId,name:n.name,content:m.response}),m.response&&[...E,...w].filter(e=>e.name===n.name).some(e=>X(e.content,m.response)>.5)))continue;for(let e of(o=!1,m.response&&w.push({name:n.name,content:m.response}),m.mentions))p.findIndex(t=>t.id===e)>a&&$.has(e)||u.add(e);let y=new Set;for(let e of m.mentions)T.has(e)||(T.add(e),y.add(e));let v=new Set([...m.parallelIds].filter(e=>y.has(e)));if(v.size>0){let a=t.filter(e=>v.has(e.id)),n=t.filter(e=>T.has(e.id)),o=a.map(async a=>{let o=await z(e,a,t,n,i,w,d||[],I,l||null,r,s,h,c,e=>f.set(a.id,e));return{agent:a,result:o}});for(let e of(await Promise.allSettled(o))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped){if(a.response&&a.messageId&&I.push({id:a.messageId,name:t.name,content:a.response}),a.response){if([...E,...w].filter(e=>e.name===t.name).some(e=>X(e.content,a.response)>.5))continue;w.push({name:t.name,content:a.response})}for(let e of a.mentions)T.add(e),u.add(e)}}}}if(o)break;$=u}await y(),h({type:"done"}),u.close()}})})({threadId:a.payload.threadId,allParticipants:i,mentioned:r,initialParallelIds:s,prompt:a.payload.prompt,projectContext:a.payload.projectContext,maxRounds:a.payload.maxRounds,recentHistory:a.payload.recentHistory,currentUserMessageId:a.payload.currentUserMessageId,rootMessageId:a.payload.rootMessageId}).getReader();for((0,J.writeDebugLog)("chat-processor.stream.open",{chatRunId:a.id,participantCount:i.length});;){let{done:e}=await o.read();if(e)break}(0,J.writeDebugLog)("chat-processor.stream.complete",{chatRunId:a.id}),await W({stepId:n.id,status:"completed",outputPayload:{completed:!0,participantCount:i.length}}),await H({id:a.id,status:"completed",completedAt:Date.now(),result:{participantIds:i.map(e=>e.id),rootMessageId:a.payload.rootMessageId}}),(0,J.writeDebugLog)("chat-processor.complete",{chatRunId:a.id,rootMessageId:a.payload.rootMessageId})}catch(t){let e=t instanceof Error?t.message:String(t);(0,J.writeDebugLog)("chat-processor.error",{chatRunId:a.id,error:t,message:e}),await W({stepId:n.id,status:"failed",outputPayload:{error:e}}),await H({id:a.id,status:"failed",lastError:e,completedAt:Date.now(),result:{error:e}})}}async function Y(e){(0,J.writeDebugLog)("chat-processor.cancel.received",{jobId:e.id,chatRunId:e.data.chatRunId});let t=await G(e.data.chatRunId);if(t){var a,n,i,r;if(t.rootMessageId)g((n=a=t.rootMessageId,p(e=>e.prepare("SELECT * FROM agent_processes WHERE thread_id = ?").all(n).map(c))).filter(e=>"running"===e.state||"spawning"===e.state))>0&&p(e=>e.prepare(`UPDATE agent_processes SET state = 'killed', last_activity = ?
156
+ `))}catch{}if("log"===e.type){let t=f.get(e.participantId);t&&g.push({agentProcessId:t,stream:e.stream,line:e.line,timestamp:Date.now()})}},y=async()=>{if(0===g.length)return;let e=new Map;for(let t of g){let a=e.get(t.agentProcessId);a||(a=[],e.set(t.agentProcessId,a)),a.push({stream:t.stream,line:t.line,timestamp:t.timestamp})}await Promise.all(Array.from(e.entries()).map(([e,t])=>(0,m.saveLogs)(e,t).catch(e=>console.error("[stream-multiplexer] saveLogs failed:",e))))},I=[],T=[],w=d?d.map(e=>({name:e.name,content:e.content})):[],E=t[0],_=new Set;if(a.size>0)for(let e of a)_.add(e);else _.add(E.id);let v=o??10,L=new Set(_);for(let a=0;a<v&&!s?.aborted;a++){let o=!0,p=t.filter(e=>_.has(e.id)),u=new Set,g=new Set;if(0===a&&n&&n.size>0){let a=p.filter(e=>n.has(e.id)&&L.has(e.id));if(a.length>0){for(let e of a)g.add(e.id);let n=a.map(async a=>{let n=await z(e,a,t,p,i,I,d||[],T,l||null,r,s,h,c,e=>f.set(a.id,e));return{agent:a,result:n}});for(let e of(await Promise.allSettled(n))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped)for(let e of(a.response&&a.messageId&&T.push({id:a.messageId,name:t.name,content:a.response}),a.response&&([...w,...I].filter(e=>e.name===t.name).some(e=>F(e.content,a.response)>.5)||(I.push({name:t.name,content:a.response}),o=!1)),a.mentions))_.add(e),p.findIndex(t=>t.id===e)>=0&&!g.has(e)&&L.has(e)||u.add(e)}}}for(let a=0;a<p.length;a++){let n=p[a];if(s?.aborted)break;if(!L.has(n.id)||g.has(n.id))continue;let m=await z(e,n,t,p,i,I,d||[],T,l||null,r,s,h,c,e=>f.set(n.id,e));if(m.skipped||(m.response&&m.messageId&&T.push({id:m.messageId,name:n.name,content:m.response}),m.response&&[...w,...I].filter(e=>e.name===n.name).some(e=>F(e.content,m.response)>.5)))continue;for(let e of(o=!1,m.response&&I.push({name:n.name,content:m.response}),m.mentions))p.findIndex(t=>t.id===e)>a&&L.has(e)||u.add(e);let y=new Set;for(let e of m.mentions)_.has(e)||(_.add(e),y.add(e));let E=new Set([...m.parallelIds].filter(e=>y.has(e)));if(E.size>0){let a=t.filter(e=>E.has(e.id)),n=t.filter(e=>_.has(e.id)),o=a.map(async a=>{let o=await z(e,a,t,n,i,I,d||[],T,l||null,r,s,h,c,e=>f.set(a.id,e));return{agent:a,result:o}});for(let e of(await Promise.allSettled(o))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped){if(a.response&&a.messageId&&T.push({id:a.messageId,name:t.name,content:a.response}),a.response){if([...w,...I].filter(e=>e.name===t.name).some(e=>F(e.content,a.response)>.5))continue;I.push({name:t.name,content:a.response})}for(let e of a.mentions)_.add(e),u.add(e)}}}}if(o)break;L=u}await y(),h({type:"done"}),u.close()}})})({threadId:a.payload.threadId,allParticipants:i,mentioned:r,initialParallelIds:s,prompt:a.payload.prompt,projectContext:a.payload.projectContext,maxRounds:a.payload.maxRounds,recentHistory:a.payload.recentHistory,currentUserMessageId:a.payload.currentUserMessageId,rootMessageId:a.payload.rootMessageId}).getReader();for((0,K.writeDebugLog)("chat-processor.stream.open",{chatRunId:a.id,participantCount:i.length});;){let{done:e}=await o.read();if(e)break}(0,K.writeDebugLog)("chat-processor.stream.complete",{chatRunId:a.id}),await H({stepId:n.id,status:"completed",outputPayload:{completed:!0,participantCount:i.length}}),await Y({id:a.id,status:"completed",completedAt:Date.now(),result:{participantIds:i.map(e=>e.id),rootMessageId:a.payload.rootMessageId}}),(0,K.writeDebugLog)("chat-processor.complete",{chatRunId:a.id,rootMessageId:a.payload.rootMessageId})}catch(t){let e=t instanceof Error?t.message:String(t);(0,K.writeDebugLog)("chat-processor.error",{chatRunId:a.id,error:t,message:e}),await H({stepId:n.id,status:"failed",outputPayload:{error:e}}),await Y({id:a.id,status:"failed",lastError:e,completedAt:Date.now(),result:{error:e}})}}async function J(e){(0,K.writeDebugLog)("chat-processor.cancel.received",{jobId:e.id,chatRunId:e.data.chatRunId});let t=await G(e.data.chatRunId);if(t){var a,n,i,r;if(t.rootMessageId)g((n=a=t.rootMessageId,p(e=>e.prepare("SELECT * FROM agent_processes WHERE thread_id = ?").all(n).map(c))).filter(e=>"running"===e.state||"spawning"===e.state))>0&&p(e=>e.prepare(`UPDATE agent_processes SET state = 'killed', last_activity = ?
126
157
  WHERE thread_id = ? AND state IN ('running', 'spawning')`).run(Date.now(),a));else g((r=i=t.threadId,p(e=>e.prepare("SELECT * FROM agent_processes WHERE workspace_id = ?").all(r).map(c))).filter(e=>"running"===e.state||"spawning"===e.state))>0&&p(e=>e.prepare(`UPDATE agent_processes SET state = 'killed', last_activity = ?
127
- WHERE workspace_id = ? AND state IN ('running', 'spawning')`).run(Date.now(),i));await H({id:t.id,status:"cancelled",lastError:e.data.payload?.reason||"Cancelled",completedAt:Date.now(),result:{cancelled:!0}}),(0,J.writeDebugLog)("chat-processor.cancel.complete",{chatRunId:t.id,threadId:t.threadId})}}async function V(e){switch(e.data.signal){case"start":await K(e);break;case"cancel":await Y(e);break;default:console.warn(`[chat-processor] Unknown signal: ${e.data.signal}`)}}async function Z(e){for(let t of e)await V(t)}e.s(["chatProcessor",0,Z],329893)}];
158
+ WHERE workspace_id = ? AND state IN ('running', 'spawning')`).run(Date.now(),i));await Y({id:t.id,status:"cancelled",lastError:e.data.payload?.reason||"Cancelled",completedAt:Date.now(),result:{cancelled:!0}}),(0,K.writeDebugLog)("chat-processor.cancel.complete",{chatRunId:t.id,threadId:t.threadId})}}async function V(e){switch(e.data.signal){case"start":await W(e);break;case"cancel":await J(e);break;default:console.warn(`[chat-processor] Unknown signal: ${e.data.signal}`)}}async function Z(e){for(let t of e)await V(t)}e.s(["chatProcessor",0,Z],329893)}];
128
159
 
129
160
  //# sourceMappingURL=apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js.map