@mndrk/agx 2.4.3 → 2.4.5

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 (1317) hide show
  1. package/README.md +14 -17
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +17 -0
  4. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +6 -6
  5. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +27 -3
  6. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +114 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page/build-manifest.json +4 -4
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/build-manifest.json +4 -4
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/build-manifest.json +4 -4
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/build-manifest.json +4 -4
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/pull/route.js +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/pull/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js +3 -3
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js +3 -3
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/skills/route.js +4 -4
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/skills/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +5 -4
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/audit/route.js +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/audit/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +4 -4
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +2 -2
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +12 -11
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/[id]/route.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/[id]/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/route.js +1 -1
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/browse/route.js +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/browse/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/pick-folder/route.js +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/pick-folder/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route/app-paths-manifest.json +3 -0
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route/build-manifest.json +11 -0
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route/server-reference-manifest.json +4 -0
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js +7 -0
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.map +5 -0
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.nft.json +1 -0
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route_client-reference-manifest.js +2 -0
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route/app-paths-manifest.json +3 -0
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route/build-manifest.json +11 -0
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route/server-reference-manifest.json +4 -0
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js +7 -0
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.map +5 -0
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.nft.json +1 -0
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route_client-reference-manifest.js +2 -0
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route/app-paths-manifest.json +3 -0
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route/build-manifest.json +11 -0
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route/server-reference-manifest.json +4 -0
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js +7 -0
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.map +5 -0
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.nft.json +1 -0
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route_client-reference-manifest.js +2 -0
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route/app-paths-manifest.json +3 -0
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route/build-manifest.json +11 -0
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route/server-reference-manifest.json +4 -0
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js +7 -0
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.map +5 -0
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.nft.json +1 -0
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route_client-reference-manifest.js +2 -0
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route/app-paths-manifest.json +3 -0
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route/build-manifest.json +11 -0
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route/server-reference-manifest.json +4 -0
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js +7 -0
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.map +5 -0
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.nft.json +1 -0
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route_client-reference-manifest.js +2 -0
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route/app-paths-manifest.json +3 -0
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route/build-manifest.json +11 -0
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route/server-reference-manifest.json +4 -0
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js +7 -0
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.map +5 -0
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.nft.json +1 -0
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route_client-reference-manifest.js +2 -0
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route/app-paths-manifest.json +3 -0
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route/build-manifest.json +11 -0
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route/server-reference-manifest.json +4 -0
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js +7 -0
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.map +5 -0
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.nft.json +1 -0
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route_client-reference-manifest.js +2 -0
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route/app-paths-manifest.json +3 -0
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route/build-manifest.json +11 -0
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route/server-reference-manifest.json +4 -0
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js +9 -0
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.map +5 -0
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.nft.json +1 -0
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route_client-reference-manifest.js +2 -0
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route/app-paths-manifest.json +3 -0
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route/build-manifest.json +11 -0
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route/server-reference-manifest.json +4 -0
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route.js +7 -0
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route.js.map +5 -0
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route.js.nft.json +1 -0
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route_client-reference-manifest.js +2 -0
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/api/health/route.js +3 -3
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/api/health/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/api/history/route.js +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/api/history/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/api/knowledge-notes/route.js +2 -2
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/api/learnings/route.js +3 -3
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/api/learnings/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/api/memories/route.js +2 -2
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/api/memories/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/teams-to-projects/route.js +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/workspaces-to-projects/route.js +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +2 -2
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +4 -4
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +6 -4
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js +1 -1
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js.nft.json +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/route.js +4 -4
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/unassigned/route.js +4 -4
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/unassigned/route.js.nft.json +1 -1
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v1/route.js +3 -3
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v2/route.js +3 -3
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +5 -5
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js +6 -6
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +6 -6
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +12 -12
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js +6 -6
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +13 -13
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +8 -8
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +8 -8
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/skills/route.js +4 -4
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/agents/route.js +4 -4
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/agents/route.js.nft.json +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/route.js +4 -4
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/route.js.nft.json +1 -1
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/export/route.js +5 -5
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/export/route.js.nft.json +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/import/route.js +5 -5
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/import/route.js.nft.json +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js +3 -4
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/threads/route.js +4 -4
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/[key]/route.js +4 -4
  218. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/[key]/route.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/route.js +4 -4
  220. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route/app-paths-manifest.json +3 -0
  222. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route/build-manifest.json +11 -0
  223. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route/server-reference-manifest.json +4 -0
  224. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route.js +11 -0
  225. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route.js.map +5 -0
  226. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route.js.nft.json +1 -0
  227. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route_client-reference-manifest.js +2 -0
  228. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route/app-paths-manifest.json +3 -0
  229. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route/build-manifest.json +11 -0
  230. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route/server-reference-manifest.json +4 -0
  231. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route.js +11 -0
  232. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route.js.map +5 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route.js.nft.json +1 -0
  234. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route_client-reference-manifest.js +2 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +4 -4
  236. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  237. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +3 -3
  238. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  239. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +3 -3
  240. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +3 -3
  242. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  243. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/agents/route.js +4 -4
  244. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  245. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +13 -13
  246. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js +3 -3
  248. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/complete/route.js +4 -4
  254. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  255. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +5 -5
  256. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  257. package/cloud-runtime/standalone/apps/local/.next/server/app/api/reactions/route.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/app/api/reactions/route.js.nft.json +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js +11 -11
  260. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js +9 -9
  262. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +4 -4
  264. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
  265. package/cloud-runtime/standalone/apps/local/.next/server/app/api/search/route.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/app/api/search/route.js.nft.json +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js +2 -2
  268. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  271. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  273. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js +1 -1
  274. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  275. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  277. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js +1 -1
  278. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  279. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js +2 -2
  280. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js +1 -1
  282. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  283. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js +3 -3
  284. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  287. package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/route.js +2 -2
  288. package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/route.js.nft.json +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/tasks/route.js +2 -2
  290. package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/tasks/route.js.nft.json +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/route.js +2 -2
  292. package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/route.js.nft.json +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +3 -3
  294. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js +4 -4
  296. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/costs/route.js +3 -3
  298. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  299. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/dependencies/route.js +3 -3
  300. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js +7 -7
  302. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  303. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js +7 -7
  304. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js +7 -7
  306. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  307. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js +7 -7
  310. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  311. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js +4 -4
  312. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  313. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js +4 -4
  314. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js +7 -7
  316. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js +8 -8
  318. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js +7 -7
  320. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  321. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/start/route.js +4 -4
  322. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  323. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  324. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  325. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
  326. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  327. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/history/route.js +3 -3
  328. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  329. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js +5 -5
  330. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  331. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +4 -4
  332. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  333. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +7 -7
  334. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  335. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +7 -7
  336. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  337. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +5 -5
  338. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  339. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +5 -5
  340. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  341. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +7 -7
  342. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  343. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +8 -8
  344. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js +3 -3
  346. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  347. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/assign-orphans/route.js +3 -3
  348. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  349. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +6 -6
  350. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  351. package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route/app-paths-manifest.json +3 -0
  352. package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route/build-manifest.json +11 -0
  353. package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route/server-reference-manifest.json +4 -0
  354. package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route.js +7 -0
  355. package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route.js.map +5 -0
  356. package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route.js.nft.json +1 -0
  357. package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route_client-reference-manifest.js +2 -0
  358. package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-export/route.js +1 -1
  359. package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-export/route.js.nft.json +1 -1
  360. package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-repos/route.js +1 -1
  361. package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-repos/route.js.nft.json +1 -1
  362. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +3 -3
  363. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  364. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js +3 -3
  365. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  366. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js +1 -1
  367. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js.nft.json +1 -1
  368. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js +5 -4
  369. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
  370. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js +5 -4
  371. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
  372. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js +5 -4
  373. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
  374. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js +5 -4
  375. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
  376. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js +6 -4
  377. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  378. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js +6 -5
  379. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
  380. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js +5 -4
  381. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
  382. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js +1 -1
  383. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -1
  384. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js +1 -1
  385. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -1
  386. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js +7 -6
  387. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
  388. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js +1 -1
  389. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -1
  390. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js +1 -1
  391. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -1
  392. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js +5 -4
  393. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
  394. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js +4 -3
  395. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
  396. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js +5 -4
  397. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
  398. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js +4 -3
  399. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  400. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +1 -1
  401. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -1
  402. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js +6 -5
  403. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  404. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js +6 -5
  405. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
  406. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js +5 -4
  407. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
  408. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js +8 -7
  409. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
  410. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js +8 -2
  411. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js.nft.json +1 -1
  412. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js +1 -1
  413. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  414. package/cloud-runtime/standalone/apps/local/.next/server/app/api/upload/route.js +1 -1
  415. package/cloud-runtime/standalone/apps/local/.next/server/app/api/upload/route.js.nft.json +1 -1
  416. package/cloud-runtime/standalone/apps/local/.next/server/app/api/user-settings/route.js +3 -3
  417. package/cloud-runtime/standalone/apps/local/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  418. package/cloud-runtime/standalone/apps/local/.next/server/app/api/userPreferences/route.js +1 -1
  419. package/cloud-runtime/standalone/apps/local/.next/server/app/api/userPreferences/route.js.nft.json +1 -1
  420. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route/app-paths-manifest.json +3 -0
  421. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route/build-manifest.json +11 -0
  422. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route/server-reference-manifest.json +4 -0
  423. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route.js +8 -0
  424. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route.js.map +5 -0
  425. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -0
  426. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +2 -0
  427. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route/app-paths-manifest.json +3 -0
  428. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route/build-manifest.json +11 -0
  429. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route/server-reference-manifest.json +4 -0
  430. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route.js +8 -0
  431. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route.js.map +5 -0
  432. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route.js.nft.json +1 -0
  433. package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route_client-reference-manifest.js +2 -0
  434. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  435. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
  436. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  437. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
  438. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  439. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  440. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  441. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/app-paths-manifest.json +3 -0
  442. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/build-manifest.json +18 -0
  443. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/next-font-manifest.json +11 -0
  444. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/react-loadable-manifest.json +1 -0
  445. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/server-reference-manifest.json +4 -0
  446. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js +15 -0
  447. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.map +5 -0
  448. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.nft.json +1 -0
  449. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +2 -0
  450. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +13 -0
  451. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.meta +17 -0
  452. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +24 -0
  453. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +24 -0
  454. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +5 -0
  455. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +10 -0
  456. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +5 -0
  457. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +9 -0
  458. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +4 -0
  459. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +4 -0
  460. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +4 -0
  461. package/cloud-runtime/standalone/apps/local/.next/server/app/page/build-manifest.json +4 -4
  462. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
  463. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  464. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  465. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/build-manifest.json +4 -4
  466. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
  467. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  468. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  469. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/build-manifest.json +4 -4
  470. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
  471. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  472. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  473. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +4 -4
  474. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
  475. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  476. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  477. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +4 -4
  478. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
  479. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  480. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  481. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/app-paths-manifest.json +3 -0
  482. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/build-manifest.json +18 -0
  483. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/next-font-manifest.json +11 -0
  484. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/react-loadable-manifest.json +1 -0
  485. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/server-reference-manifest.json +4 -0
  486. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js +16 -0
  487. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.map +5 -0
  488. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -0
  489. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +2 -0
  490. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/build-manifest.json +4 -4
  491. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
  492. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  493. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  494. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/build-manifest.json +4 -4
  495. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
  496. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  497. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  498. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/build-manifest.json +4 -4
  499. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
  500. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  501. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  502. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/app-paths-manifest.json +3 -0
  503. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/build-manifest.json +18 -0
  504. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/next-font-manifest.json +11 -0
  505. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/react-loadable-manifest.json +10 -0
  506. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/server-reference-manifest.json +4 -0
  507. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js +16 -0
  508. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.map +5 -0
  509. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -0
  510. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +2 -0
  511. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/build-manifest.json +4 -4
  512. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
  513. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  514. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  515. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/build-manifest.json +4 -4
  516. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
  517. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  518. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  519. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/build-manifest.json +4 -4
  520. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
  521. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  522. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  523. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/build-manifest.json +4 -4
  524. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
  525. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  526. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  527. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/build-manifest.json +4 -4
  528. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
  529. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  530. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  531. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/build-manifest.json +4 -4
  532. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
  533. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  534. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  535. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/build-manifest.json +4 -4
  536. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
  537. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  538. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  539. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +4 -4
  540. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
  541. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  542. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  543. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/build-manifest.json +4 -4
  544. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js +1 -1
  545. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  546. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  547. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/build-manifest.json +4 -4
  548. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js +1 -1
  549. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  550. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  551. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/build-manifest.json +4 -4
  552. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js +1 -1
  553. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  554. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  555. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/build-manifest.json +4 -4
  556. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
  557. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  558. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  559. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  560. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  561. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  562. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  563. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  564. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  565. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  566. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  567. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/build-manifest.json +4 -4
  568. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
  569. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  570. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  571. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  572. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +2 -2
  573. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +2 -2
  574. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  575. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  576. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  577. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
  578. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  579. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/build-manifest.json +4 -4
  580. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
  581. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  582. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  583. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  584. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
  585. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
  586. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  587. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  588. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  589. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  590. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  591. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +17 -0
  592. package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_github_prs_context_route_actions_e8dab062.js +3 -0
  593. package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_github_repos_sync_route_actions_bdb9499c.js +3 -0
  594. package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_github_user-repos_route_actions_47aff2d8.js +3 -0
  595. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_[entryId]_route_actions_3bb3b213.js +3 -0
  596. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_0b17e5ca.js +1 -1
  597. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_10446672.js +2 -2
  598. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_11b3f4a4.js +3 -0
  599. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_31b5cff3.js +1 -1
  600. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_33c05c6b.js +1 -1
  601. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_590e0ad5.js +1 -1
  602. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_5e83e3ee.js +7 -7
  603. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_8401c4c5.js +1 -1
  604. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_952a9017.js +1 -1
  605. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_a36acede.js +1 -1
  606. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_ba77f4ed.js +9 -0
  607. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_ffc6e69f.js +1 -1
  608. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__004cdace._.js +3 -0
  609. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01811d0e._.js +3 -0
  610. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__03585144._.js +1 -1
  611. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06575fba._.js +3 -0
  612. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07bee638._.js +3 -0
  613. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09088e21._.js +70 -0
  614. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__66e15f88._.js → [root-of-the-server]__0affc5ad._.js} +3 -3
  615. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0fbbaf2d._.js +2 -2
  616. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0fd3df61._.js +80 -0
  617. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10aebc68._.js +3 -0
  618. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10f1a668._.js +3 -0
  619. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__73f80c8c._.js → [root-of-the-server]__1186e538._.js} +2 -2
  620. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__5da8d281._.js → [root-of-the-server]__1321970e._.js} +2 -2
  621. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1563ebff._.js +18 -0
  622. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__15a6925d._.js +1 -1
  623. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__15ec4cf6._.js +3 -0
  624. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__18232fa9._.js +13 -0
  625. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1cd900f2._.js +3 -0
  626. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1e1f2b15._.js +3 -0
  627. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__23655e4b._.js +3 -3
  628. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__25d281e7._.js +70 -0
  629. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2b07507a._.js +18 -0
  630. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2c148e2b._.js +1 -1
  631. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2c2680ad._.js +3 -0
  632. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__302a3088._.js +3 -0
  633. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__31e86466._.js +150 -0
  634. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__33c6152d._.js +3 -0
  635. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__34f3f619._.js +3 -0
  636. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__38191a64._.js +3 -0
  637. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__2ff70366._.js → [root-of-the-server]__3a8de8a3._.js} +2 -2
  638. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3db8e17d._.js +3 -0
  639. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3ef7d945._.js +3 -0
  640. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3fdd57cb._.js +3 -0
  641. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4206f32c._.js +3 -0
  642. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__45af4365._.js +3 -0
  643. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__460ae7b6._.js +136 -0
  644. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4848a602._.js +80 -0
  645. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4adce5ec._.js +7 -0
  646. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b01d4cf._.js +3 -0
  647. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__461c7102._.js → [root-of-the-server]__4ea9a658._.js} +2 -2
  648. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__b91700c0._.js → [root-of-the-server]__4ee88c24._.js} +2 -2
  649. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4fb1d912._.js +3 -0
  650. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__520d4a7f._.js +3 -0
  651. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__39baf5f6._.js → [root-of-the-server]__550f4c1c._.js} +1 -1
  652. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__21721841._.js → [root-of-the-server]__56c4dfbd._.js} +1 -1
  653. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__59a87972._.js +3 -0
  654. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c07d22ff._.js → [root-of-the-server]__5b22f93a._.js} +2 -2
  655. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5d5c71d1._.js +13 -0
  656. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6003d4d7._.js +140 -0
  657. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__60e89305._.js +129 -0
  658. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6163ad51._.js +3 -0
  659. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__ee43b5b0._.js → [root-of-the-server]__61c40dc9._.js} +2 -2
  660. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__e237981c._.js → [root-of-the-server]__6465e9c6._.js} +2 -2
  661. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__6edb829d._.js → [root-of-the-server]__66437bd3._.js} +2 -2
  662. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c3d88cac._.js → [root-of-the-server]__665fff24._.js} +2 -2
  663. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__66def702._.js +3 -0
  664. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__683b7ad7._.js +8 -0
  665. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__694817d0._.js +3 -0
  666. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6d4e08bb._.js +6 -0
  667. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6d6da42e._.js +3 -0
  668. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c3408141._.js → [root-of-the-server]__6dd68c9c._.js} +2 -2
  669. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6ee2d998._.js +136 -0
  670. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__7d6e19c2._.js → [root-of-the-server]__71fc195c._.js} +4 -4
  671. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__736d5859._.js +3 -0
  672. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__77c3dc54._.js +3 -0
  673. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7dabddde._.js +4 -0
  674. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7e56de3d._.js +70 -0
  675. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__caa79472._.js → [root-of-the-server]__7f6e383e._.js} +2 -2
  676. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7fcbb0c2._.js +2 -2
  677. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7fe442b7._.js +3 -0
  678. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__97b5dbf7._.js → [root-of-the-server]__807a1638._.js} +2 -2
  679. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__82b9b3ca._.js +140 -0
  680. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8680c9de._.js +9 -0
  681. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8cb4fb94._.js → [root-of-the-server]__870fac73._.js} +2 -2
  682. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__87c2a907._.js +1 -1
  683. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8917bc4c._.js +1 -1
  684. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8caf9c04._.js +3 -0
  685. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f9eff837._.js → [root-of-the-server]__8ddbf4ca._.js} +2 -2
  686. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9079a20c._.js +3 -0
  687. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__69a60d71._.js → [root-of-the-server]__92d34a52._.js} +2 -2
  688. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__94f42197._.js +3 -0
  689. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__967a2388._.js +3 -0
  690. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__96a659e4._.js +3 -0
  691. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9cadc914._.js +70 -0
  692. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__3b27260f._.js → [root-of-the-server]__9cb1dc55._.js} +2 -2
  693. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e1746b9._.js +129 -0
  694. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a1dca50c._.js +3 -0
  695. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a53b564a._.js +70 -0
  696. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab150f86._.js +3 -0
  697. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__abf61695._.js +13 -0
  698. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__3a038592._.js → [root-of-the-server]__af70f062._.js} +5 -5
  699. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b00a5099._.js +1 -1
  700. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b1488939._.js +156 -0
  701. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b630ee50._.js +70 -0
  702. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b9538dea._.js +3 -0
  703. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ba72d342._.js +5 -5
  704. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bc26758f._.js +3 -0
  705. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__2d6f22a3._.js → [root-of-the-server]__bdc396a9._.js} +2 -2
  706. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bed6045c._.js +13 -0
  707. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__befbac3e._.js +3 -0
  708. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c0703065._.js +3 -0
  709. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c077a33b._.js +121 -0
  710. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c1581152._.js +3 -0
  711. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__240d98b0._.js → [root-of-the-server]__c26548ed._.js} +2 -2
  712. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3188470._.js +3 -3
  713. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f598d976._.js → [root-of-the-server]__c4855d04._.js} +2 -2
  714. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c5f7b34e._.js +3 -0
  715. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c7e936d4._.js +3 -0
  716. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c936d679._.js +6 -6
  717. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__5af898cb._.js → [root-of-the-server]__ce65d2ba._.js} +2 -2
  718. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cf474787._.js +76 -0
  719. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cf7c65b9._.js +3 -0
  720. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d020d321._.js +69 -0
  721. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__fb694089._.js → [root-of-the-server]__d4a50292._.js} +2 -2
  722. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d54c8dfb._.js +13 -0
  723. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d870d17d._.js +113 -0
  724. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__dacdd4c9._.js +1 -1
  725. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ded6736b._.js +3 -0
  726. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e1dcbfd8._.js +3 -0
  727. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e267d8be._.js +3 -0
  728. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e4633ba9._.js +8 -0
  729. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e4afa482._.js +3 -0
  730. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e71a8a43._.js +13 -0
  731. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb3872bd._.js +3 -0
  732. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb77f5f8._.js +11 -0
  733. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb7e055a._.js +113 -0
  734. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb9921fb._.js +3 -0
  735. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eca53a52._.js +3 -0
  736. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f107289b._.js +18 -0
  737. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f158717d._.js +3 -0
  738. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f1a754d0._.js +3 -0
  739. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9e9149cd._.js → [root-of-the-server]__f48224f7._.js} +2 -2
  740. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6074a7f._.js +70 -0
  741. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6e2a463._.js +3 -0
  742. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a74c7d._.js +3 -0
  743. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8269cb17._.js → [root-of-the-server]__f7e2f962._.js} +2 -2
  744. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f9d933dc._.js +1 -1
  745. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fce2c984._.js +13 -0
  746. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fd504704._.js +3 -0
  747. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fdc68a08._.js +3 -0
  748. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fe3fc98e._.js +3 -0
  749. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fe4b2e4e._.js +3 -0
  750. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ffc62f70._.js +70 -0
  751. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_16bb55a0._.js +2 -2
  752. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_603ba418._.js +2 -2
  753. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_79080c47._.js +3 -0
  754. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{node_modules_d2858615._.js → _9c1d28d4._.js} +2 -2
  755. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_eb019230._.js +2 -2
  756. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_5e5f36c4._.js → apps_local_09d85861._.js} +2 -2
  757. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1a4cb196._.js +1 -1
  758. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +20 -0
  759. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_202a2565._.js +262 -0
  760. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2124f905._.js +6 -6
  761. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_22ab9b7c._.js +1 -1
  762. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +1 -1
  763. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_29919ba4._.js +1 -1
  764. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_29a06140._.js +3 -0
  765. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_f8b3abae._.js → apps_local_2caf4398._.js} +2 -2
  766. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2e6439a2._.js +1 -1
  767. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_e1f4d9ad._.js → apps_local_31ca7a35._.js} +2 -2
  768. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4c70e287._.js +1 -1
  769. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
  770. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +5 -5
  771. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_520e6344._.js +7 -7
  772. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +122 -0
  773. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +122 -0
  774. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5b3f1f41._.js +1 -1
  775. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_65843354._.js +14 -14
  776. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_6c0de567._.js +8 -0
  777. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9168ed82._.js +1 -1
  778. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9726bdb7._.js +1 -1
  779. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9e2c9766._.js +8 -0
  780. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_issues_route_actions_21cb97ab.js +3 -0
  781. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_link_route_actions_8ac048a5.js +3 -0
  782. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_route_actions_20244d74.js +3 -0
  783. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_seed_route_actions_7154cd78.js +3 -0
  784. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_repos_route_actions_73786015.js +3 -0
  785. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_teams_templates_route_actions_13f2c3d6.js +3 -0
  786. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_webhooks_[id]_route_actions_1c0129f8.js +3 -0
  787. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_webhooks_route_actions_a60f4dfd.js +3 -0
  788. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +5 -5
  789. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +122 -0
  790. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
  791. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c47f30a7._.js +1 -1
  792. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c9c6ee26._.js +1 -1
  793. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d256aa32._.js +1 -1
  794. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_bb07a2e3._.js → apps_local_e27f666b._.js} +1 -1
  795. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e55f28ef._.js +18 -18
  796. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_ee8ff181._.js +1 -1
  797. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0857971b._.js +1 -1
  798. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_3e2ced95._.js +1 -1
  799. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +34 -0
  800. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bb79a1d._.js +1 -1
  801. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +10 -10
  802. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_8bf5d476._.js +1 -1
  803. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_929fd1a3._.js +1 -1
  804. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_9663f7e9._.js +1 -1
  805. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_49a308c0._.js +1 -1
  806. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +17 -17
  807. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +10 -10
  808. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +3 -0
  809. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_ee6eaa28._.js +152 -0
  810. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +29 -25
  811. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_lib_sqlite-query-adapter_ts_7ee03cea._.js → apps_local_lib_sqlite-query-adapter_ts_5b6033d8._.js} +1 -1
  812. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_7b90c71f._.js +42 -21
  813. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_a3d4d8f4._.js +37 -16
  814. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_d2c1c6c8._.js +3 -3
  815. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_api-route-utils_ts_b3e10657._.js +1 -1
  816. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_ca6c3a8b._.js +14 -14
  817. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_2e38589d._.js +4 -4
  818. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_918ec858._.js +7 -7
  819. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_github_prs_for-target_route_actions_9d302c68.js +3 -0
  820. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_projects_[id]_workspace_route_actions_6556c571.js +3 -0
  821. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/083c9_next-internal_server_app_integrations_github_select-repos_page_actions_fc7f5a52.js +3 -0
  822. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +3 -0
  823. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_circle-check_eafd6d92.js +3 -0
  824. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{9fb8c_next_f7451f50._.js → 9fb8c_next_b797d184._.js} +2 -2
  825. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__263b7091._.js +5 -0
  826. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +3 -0
  827. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +3 -0
  828. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +3 -0
  829. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4bf7d5b9._.js +3 -0
  830. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +3 -0
  831. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7752d2d2._.js +3 -0
  832. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7e3c2ea1._.js +7 -0
  833. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9193284e._.js +3 -0
  834. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__95ce39fc._.js +3 -0
  835. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +3 -0
  836. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ca35cea0._.js +3 -0
  837. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__dbda910b._.js +7 -0
  838. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e8c6a1f1._.js +3 -0
  839. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__b165b26a._.js → [root-of-the-server]__ebe36ac5._.js} +2 -2
  840. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +3 -0
  841. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f66530a0._.js +3 -0
  842. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f81509ea._.js +3 -0
  843. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +7 -0
  844. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7863b9d3._.js +3 -0
  845. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_917d90b4._.js +3 -0
  846. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e120fc49._.js +3 -0
  847. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +3 -0
  848. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_093aa68d._.js +3 -0
  849. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_28a1430e._.js +3 -0
  850. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +18 -0
  851. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_41ca745c._.js +4 -0
  852. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_620cb123._.js +3 -0
  853. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_7d1abfbf._.js +18 -0
  854. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_8969d6a5._.js +3 -0
  855. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
  856. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +3 -0
  857. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local__next-internal_server_app_projects_[slug]_prs_page_actions_f636afc6.js +3 -0
  858. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_a0dd6e69._.js +4 -0
  859. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_a2835b49._.js +3 -0
  860. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
  861. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
  862. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_24cd120e._.js +1 -1
  863. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_0933eeaf._.js +1 -1
  864. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js +1 -1
  865. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_page_tsx_b5cec607._.js +2 -2
  866. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b4faeb00._.js +18 -0
  867. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_281b2873._.js +8 -0
  868. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +18 -16
  869. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_75dee220._.js +11 -0
  870. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_components_chat-ui_f0554cb4._.js → apps_local_components_chat-ui_d4c3d021._.js} +2 -2
  871. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +4 -4
  872. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_e322e178._.js +18 -0
  873. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eec36ab6._.js +3 -0
  874. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_fed01721._.js +3 -0
  875. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ffd2e9b4._.js +4 -0
  876. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/ebff2__next-internal_server_app_projects_[slug]_notifications_page_actions_899b4c4c.js +3 -0
  877. package/cloud-runtime/standalone/apps/local/.next/server/edge/chunks/[root-of-the-server]__cc2760a4._.js +1 -1
  878. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +12 -0
  879. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +4 -4
  880. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  881. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  882. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +12 -0
  883. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  884. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  885. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  886. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  887. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1600dd6ff8607d8f.js +16 -0
  888. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +16 -0
  889. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1fbcd40dccee738f.js +16 -0
  890. package/cloud-runtime/standalone/apps/local/.next/static/chunks/34483580b9496b00.js +1 -0
  891. package/cloud-runtime/standalone/apps/local/.next/static/chunks/37879a60d670876c.js +1 -0
  892. package/cloud-runtime/standalone/apps/local/.next/static/chunks/48feca51cf97c8a7.js +1 -0
  893. package/cloud-runtime/standalone/apps/local/.next/static/chunks/52a7b1805199c6fb.js +1 -0
  894. package/cloud-runtime/standalone/apps/local/.next/static/chunks/55a31773f8c2833f.js +20 -0
  895. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5b919825bc31a59e.js +1 -0
  896. package/cloud-runtime/standalone/apps/local/.next/static/chunks/62385f0f137d16a0.js +1 -0
  897. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +16 -0
  898. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +1 -0
  899. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6ffcd12eabd7c65e.js +16 -0
  900. package/cloud-runtime/standalone/apps/local/.next/static/chunks/72b4109642bf21f4.js +3 -0
  901. package/cloud-runtime/standalone/apps/local/.next/static/chunks/74e3a3e93be78db8.js +48 -0
  902. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7c8515a24aeea102.js +1 -0
  903. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +16 -0
  904. package/cloud-runtime/standalone/apps/local/.next/static/chunks/80446e085a3aad56.css +1 -0
  905. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8966871bc99cb968.js +1 -0
  906. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8b5d6f5bade8c4ea.js +6 -0
  907. package/cloud-runtime/standalone/apps/local/.next/static/chunks/93b2b6aa0c9593f6.js +1 -0
  908. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +16 -0
  909. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{d5c307b52fd87861.js → 94a66d2d19268d25.js} +1 -1
  910. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9c29ef447bef1576.js +5 -0
  911. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a9111ccc979d4933.js +5 -0
  912. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8bd9cddc3e268c43.js → aa3029ae0b62f930.js} +1 -1
  913. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +1 -0
  914. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c00eea0c6533548d.js +1 -0
  915. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d2b34ade19d9d8da.js +1 -0
  916. package/cloud-runtime/standalone/apps/local/.next/static/chunks/edb0e1ed5398cec6.js +4 -0
  917. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +16 -0
  918. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{turbopack-5fc3e551c6965dd2.js → turbopack-87f23485587f08c3.js} +2 -2
  919. package/cloud-runtime/standalone/apps/local/app/api/agent-specs/pull/route.ts +2 -1
  920. package/cloud-runtime/standalone/apps/local/app/api/agent-specs/route.ts +2 -1
  921. package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +2 -1
  922. package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/skills/route.ts +7 -3
  923. package/cloud-runtime/standalone/apps/local/app/api/agents/export/route.ts +6 -2
  924. package/cloud-runtime/standalone/apps/local/app/api/automations/create/route.ts +6 -2
  925. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -1
  926. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +17 -1
  927. package/cloud-runtime/standalone/apps/local/app/api/chat-runs/[id]/signal/route.ts +4 -1
  928. package/cloud-runtime/standalone/apps/local/app/api/domains/[id]/route.ts +2 -1
  929. package/cloud-runtime/standalone/apps/local/app/api/domains/route.ts +2 -1
  930. package/cloud-runtime/standalone/apps/local/app/api/filesystem/analyze/route.ts +2 -1
  931. package/cloud-runtime/standalone/apps/local/app/api/github/issues/route.ts +30 -0
  932. package/cloud-runtime/standalone/apps/local/app/api/github/prs/context/route.ts +46 -0
  933. package/cloud-runtime/standalone/apps/local/app/api/github/prs/for-target/route.ts +41 -0
  934. package/cloud-runtime/standalone/apps/local/app/api/github/prs/link/route.ts +144 -0
  935. package/cloud-runtime/standalone/apps/local/app/api/github/prs/route.ts +42 -0
  936. package/cloud-runtime/standalone/apps/local/app/api/github/prs/seed/route.ts +254 -0
  937. package/cloud-runtime/standalone/apps/local/app/api/github/repos/route.ts +69 -0
  938. package/cloud-runtime/standalone/apps/local/app/api/github/repos/sync/route.ts +56 -0
  939. package/cloud-runtime/standalone/apps/local/app/api/github/user-repos/route.ts +72 -0
  940. package/cloud-runtime/standalone/apps/local/app/api/history/route.ts +2 -1
  941. package/cloud-runtime/standalone/apps/local/app/api/knowledge-notes/route.ts +7 -3
  942. package/cloud-runtime/standalone/apps/local/app/api/learnings/route.ts +4 -3
  943. package/cloud-runtime/standalone/apps/local/app/api/memories/route.ts +3 -2
  944. package/cloud-runtime/standalone/apps/local/app/api/migrate/workspaces-to-projects/route.ts +2 -1
  945. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/cancel/route.ts +6 -2
  946. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/signal/route.ts +6 -2
  947. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/start/route.ts +2 -1
  948. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/status/route.ts +2 -1
  949. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +15 -7
  950. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/agents/route.ts +12 -6
  951. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/agents/unassigned/route.ts +2 -1
  952. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/migrate-v2/route.ts +4 -1
  953. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/activities/route.ts +3 -2
  954. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.ts +4 -3
  955. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/notes/route.ts +3 -2
  956. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +3 -2
  957. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +3 -2
  958. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +3 -2
  959. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +5 -4
  960. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/skills/route.ts +8 -4
  961. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/[teamId]/agents/route.ts +8 -4
  962. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/[teamId]/route.ts +8 -4
  963. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/export/route.ts +2 -1
  964. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/import/route.ts +2 -1
  965. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +7 -3
  966. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/threads/route.ts +8 -4
  967. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/variables/[key]/route.ts +2 -1
  968. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/variables/route.ts +8 -4
  969. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/[entryId]/route.ts +67 -0
  970. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/route.ts +75 -0
  971. package/cloud-runtime/standalone/apps/local/app/api/projects/objective-metadata.ts +2 -1
  972. package/cloud-runtime/standalone/apps/local/app/api/projects/payload.ts +23 -1
  973. package/cloud-runtime/standalone/apps/local/app/api/projects/route.ts +3 -2
  974. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/cancel/route.ts +2 -1
  975. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/route.ts +9 -3
  976. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/runs/route.ts +2 -1
  977. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +2 -1
  978. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/poll/route.ts +5 -4
  979. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +3 -2
  980. package/cloud-runtime/standalone/apps/local/app/api/queue/complete/route.ts +2 -1
  981. package/cloud-runtime/standalone/apps/local/app/api/queue/route.ts +2 -1
  982. package/cloud-runtime/standalone/apps/local/app/api/reactions/route.ts +2 -1
  983. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +7 -3
  984. package/cloud-runtime/standalone/apps/local/app/api/schedules/route.ts +6 -2
  985. package/cloud-runtime/standalone/apps/local/app/api/search/route.ts +2 -1
  986. package/cloud-runtime/standalone/apps/local/app/api/skills/assign/route.ts +6 -2
  987. package/cloud-runtime/standalone/apps/local/app/api/skills/available/route.ts +2 -1
  988. package/cloud-runtime/standalone/apps/local/app/api/skills/detail/route.ts +2 -1
  989. package/cloud-runtime/standalone/apps/local/app/api/skills/history/route.ts +2 -1
  990. package/cloud-runtime/standalone/apps/local/app/api/skills/learn/route.ts +6 -2
  991. package/cloud-runtime/standalone/apps/local/app/api/skills/route.ts +2 -1
  992. package/cloud-runtime/standalone/apps/local/app/api/skills/unlearn/route.ts +6 -2
  993. package/cloud-runtime/standalone/apps/local/app/api/summarize/route.ts +2 -1
  994. package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/route.ts +3 -2
  995. package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/tasks/route.ts +3 -2
  996. package/cloud-runtime/standalone/apps/local/app/api/task-groups/route.ts +3 -2
  997. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/comments/[commentId]/route.ts +2 -1
  998. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/comments/route.ts +3 -2
  999. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/costs/route.ts +3 -2
  1000. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/dependencies/route.ts +2 -1
  1001. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/pause/route.ts +2 -1
  1002. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/replan/route.ts +2 -1
  1003. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/restart/route.ts +2 -1
  1004. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/resume/route.ts +2 -1
  1005. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/rollback/route.ts +2 -1
  1006. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/route.ts +9 -5
  1007. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/start/route.ts +2 -1
  1008. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/stop/route.ts +2 -1
  1009. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/heartbeat/route.ts +2 -1
  1010. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/history/route.ts +2 -1
  1011. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/logs/route.ts +3 -2
  1012. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/resume/route.ts +2 -1
  1013. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/start/route.ts +2 -1
  1014. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/verify/route.ts +2 -1
  1015. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/route.ts +5 -4
  1016. package/cloud-runtime/standalone/apps/local/app/api/tasks/assign-orphans/route.ts +3 -2
  1017. package/cloud-runtime/standalone/apps/local/app/api/tasks/route.ts +4 -3
  1018. package/cloud-runtime/standalone/apps/local/app/api/teams/templates/route.ts +11 -0
  1019. package/cloud-runtime/standalone/apps/local/app/api/thread-export/route.ts +2 -1
  1020. package/cloud-runtime/standalone/apps/local/app/api/thread-repos/route.ts +2 -1
  1021. package/cloud-runtime/standalone/apps/local/app/api/threads/knowledge/route.ts +2 -1
  1022. package/cloud-runtime/standalone/apps/local/app/api/threads/route.ts +3 -2
  1023. package/cloud-runtime/standalone/apps/local/app/api/tracker/notes/route.ts +16 -3
  1024. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/recap/route.ts +75 -30
  1025. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/route.ts +5 -2
  1026. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/[id]/route.ts +2 -2
  1027. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/route.ts +18 -7
  1028. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/bulk/route.ts +19 -8
  1029. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/route.ts +16 -5
  1030. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/[id]/route.ts +7 -3
  1031. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/route.ts +7 -3
  1032. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/scripted/route.ts +6 -2
  1033. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/token/route.ts +5 -2
  1034. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/worker/route.ts +4 -3
  1035. package/cloud-runtime/standalone/apps/local/app/api/trackers/connections/route.ts +57 -6
  1036. package/cloud-runtime/standalone/apps/local/app/api/upload/route.ts +3 -2
  1037. package/cloud-runtime/standalone/apps/local/app/api/user-settings/route.ts +4 -3
  1038. package/cloud-runtime/standalone/apps/local/app/api/userPreferences/route.ts +2 -1
  1039. package/cloud-runtime/standalone/apps/local/app/api/webhooks/[id]/route.ts +77 -0
  1040. package/cloud-runtime/standalone/apps/local/app/api/webhooks/route.ts +39 -0
  1041. package/cloud-runtime/standalone/apps/local/app/api/webhooks/shared.ts +159 -0
  1042. package/cloud-runtime/standalone/apps/local/app/integrations/github/select-repos/page.tsx +382 -0
  1043. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +5 -2
  1044. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/notifications/page.tsx +509 -0
  1045. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/page.tsx +299 -0
  1046. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/[tracker]/page.tsx +17 -1
  1047. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/connect/page.tsx +61 -26
  1048. package/cloud-runtime/standalone/apps/local/components/GraphDetailSidebar.tsx +1 -1
  1049. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +21 -8
  1050. package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +7 -1
  1051. package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +194 -43
  1052. package/cloud-runtime/standalone/apps/local/components/activity/ActivityStreamButton.tsx +40 -0
  1053. package/cloud-runtime/standalone/apps/local/components/activity/ActivityStreamPopover.tsx +141 -0
  1054. package/cloud-runtime/standalone/apps/local/components/chat-ui/JumpToLatestButton.tsx +30 -0
  1055. package/cloud-runtime/standalone/apps/local/components/chat-ui/LogPanel.tsx +22 -1
  1056. package/cloud-runtime/standalone/apps/local/components/chat-ui/MessageList.tsx +27 -0
  1057. package/cloud-runtime/standalone/apps/local/components/chat-ui/ThreadView.tsx +15 -1
  1058. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +23 -20
  1059. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +301 -113
  1060. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +52 -7
  1061. package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +59 -14
  1062. package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +56 -7
  1063. package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +60 -2
  1064. package/cloud-runtime/standalone/apps/local/components/prs/PrComposerPanel.tsx +219 -0
  1065. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +36 -12
  1066. package/cloud-runtime/standalone/apps/local/components/tracker/FolderRow.tsx +7 -4
  1067. package/cloud-runtime/standalone/apps/local/components/tracker/LinkedPrsSection.tsx +251 -0
  1068. package/cloud-runtime/standalone/apps/local/components/tracker/NoteSticker.tsx +9 -0
  1069. package/cloud-runtime/standalone/apps/local/components/tracker/RowActionsMenu.tsx +228 -0
  1070. package/cloud-runtime/standalone/apps/local/components/tracker/SelectionBar.tsx +11 -24
  1071. package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +43 -9
  1072. package/cloud-runtime/standalone/apps/local/components/tracker/TicketRecapSection.tsx +13 -3
  1073. package/cloud-runtime/standalone/apps/local/components/tracker/TicketRow.tsx +63 -5
  1074. package/cloud-runtime/standalone/apps/local/components/tracking/GithubRepoManager.tsx +518 -0
  1075. package/cloud-runtime/standalone/apps/local/components/tracking/TaskIdentifierPrefix.tsx +174 -0
  1076. package/cloud-runtime/standalone/apps/local/components/tracking/TaskTrackingNav.tsx +73 -11
  1077. package/cloud-runtime/standalone/apps/local/components/tracking/TrackerIcon.tsx +2 -0
  1078. package/cloud-runtime/standalone/apps/local/components/tracking/TrackerSetup.tsx +39 -12
  1079. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +8 -1
  1080. package/cloud-runtime/standalone/apps/local/db/sqlite/001_agx_board_schema.sql +28 -1
  1081. package/cloud-runtime/standalone/apps/local/hooks/useActivityStream.ts +170 -0
  1082. package/cloud-runtime/standalone/apps/local/hooks/useProjects.ts +3 -0
  1083. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +16 -3
  1084. package/cloud-runtime/standalone/apps/local/hooks/useSidebarStage.ts +2 -0
  1085. package/cloud-runtime/standalone/apps/local/hooks/useTrackerConnection.ts +6 -1
  1086. package/cloud-runtime/standalone/apps/local/hooks/useTrackerConnections.ts +29 -1
  1087. package/cloud-runtime/standalone/apps/local/hooks/useTrackerItems.ts +48 -3
  1088. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +8 -2
  1089. package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +44 -5
  1090. package/cloud-runtime/standalone/apps/local/lib/db/agents.ts +205 -0
  1091. package/cloud-runtime/standalone/apps/local/lib/db/index.ts +14 -0
  1092. package/cloud-runtime/standalone/apps/local/lib/db/learnings.ts +67 -0
  1093. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +692 -0
  1094. package/cloud-runtime/standalone/apps/local/lib/db/resolution.ts +74 -0
  1095. package/cloud-runtime/standalone/apps/local/lib/db/shared.ts +222 -0
  1096. package/cloud-runtime/standalone/apps/local/lib/db/task-comments.ts +61 -0
  1097. package/cloud-runtime/standalone/apps/local/lib/db/task-costs.ts +131 -0
  1098. package/cloud-runtime/standalone/apps/local/lib/db/task-logs.ts +62 -0
  1099. package/cloud-runtime/standalone/apps/local/lib/db/tasks.ts +477 -0
  1100. package/cloud-runtime/standalone/apps/local/lib/db/teams.ts +161 -0
  1101. package/cloud-runtime/standalone/apps/local/lib/db/types.ts +359 -0
  1102. package/cloud-runtime/standalone/apps/local/lib/db/user-settings.ts +69 -0
  1103. package/cloud-runtime/standalone/apps/local/lib/db/workflows.ts +439 -0
  1104. package/cloud-runtime/standalone/apps/local/lib/db.ts +1 -2931
  1105. package/cloud-runtime/standalone/apps/local/lib/device-flow.ts +5 -4
  1106. package/cloud-runtime/standalone/apps/local/lib/github-client.ts +382 -0
  1107. package/cloud-runtime/standalone/apps/local/lib/github-db.ts +143 -0
  1108. package/cloud-runtime/standalone/apps/local/lib/github-issue-store.ts +101 -0
  1109. package/cloud-runtime/standalone/apps/local/lib/github-link-resolver.ts +65 -0
  1110. package/cloud-runtime/standalone/apps/local/lib/github-oauth-sessions.ts +55 -0
  1111. package/cloud-runtime/standalone/apps/local/lib/github-pr-context.ts +125 -0
  1112. package/cloud-runtime/standalone/apps/local/lib/github-pr-files-store.ts +59 -0
  1113. package/cloud-runtime/standalone/apps/local/lib/github-pr-store.ts +250 -0
  1114. package/cloud-runtime/standalone/apps/local/lib/github-prs.ts +67 -0
  1115. package/cloud-runtime/standalone/apps/local/lib/github-repo-store.ts +63 -0
  1116. package/cloud-runtime/standalone/apps/local/lib/github-resolvers.ts +41 -0
  1117. package/cloud-runtime/standalone/apps/local/lib/github-token-store.ts +41 -0
  1118. package/cloud-runtime/standalone/apps/local/lib/github-types.ts +116 -0
  1119. package/cloud-runtime/standalone/apps/local/lib/logger.ts +1 -0
  1120. package/cloud-runtime/standalone/apps/local/lib/migrations/task-identifier-migration.ts +39 -0
  1121. package/cloud-runtime/standalone/apps/local/lib/notifications/index.ts +36 -12
  1122. package/cloud-runtime/standalone/apps/local/lib/parse-body.ts +23 -0
  1123. package/cloud-runtime/standalone/apps/local/lib/security.ts +4 -3
  1124. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +31 -0
  1125. package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +19 -0
  1126. package/cloud-runtime/standalone/apps/local/lib/task-identifier-store.ts +32 -0
  1127. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/adapter.tsx +242 -0
  1128. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/github-icon.tsx +18 -0
  1129. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/index.ts +1 -0
  1130. package/cloud-runtime/standalone/apps/local/lib/tracker/connections.ts +46 -15
  1131. package/cloud-runtime/standalone/apps/local/lib/tracker/index.ts +4 -0
  1132. package/cloud-runtime/standalone/apps/local/lib/tracker/recap.ts +71 -3
  1133. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-metadata-store.ts +116 -56
  1134. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-store.ts +16 -5
  1135. package/cloud-runtime/standalone/apps/local/lib/tracker/types.ts +2 -0
  1136. package/cloud-runtime/standalone/apps/local/lib/workspace-categories.ts +44 -0
  1137. package/cloud-runtime/standalone/apps/local/middleware.ts +1 -1
  1138. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +4 -0
  1139. package/cloud-runtime/standalone/apps/local/next.config.ts +1 -1
  1140. package/cloud-runtime/standalone/apps/local/public/agx_icon.png +0 -0
  1141. package/cloud-runtime/standalone/apps/local/public/logo_dark.png +0 -0
  1142. package/cloud-runtime/standalone/apps/local/public/logo_light.png +0 -0
  1143. package/cloud-runtime/standalone/apps/local/src/automations/repository.ts +5 -4
  1144. package/cloud-runtime/standalone/apps/local/src/graph/api-route-utils.ts +13 -1
  1145. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +23 -22
  1146. package/cloud-runtime/standalone/apps/local/src/graph/work-dispatcher.ts +7 -6
  1147. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/engine.ts +2 -1
  1148. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +7 -0
  1149. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +18 -1
  1150. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/task-worker.ts +7 -0
  1151. package/cloud-runtime/standalone/apps/local/state/trackerItemsCache.ts +79 -0
  1152. package/cloud-runtime/standalone/apps/local/worker/index.js +1321 -876
  1153. package/lib/cli/onboarding.js +22 -1
  1154. package/lib/cli/providers.js +46 -2
  1155. package/lib/cli/runCli.js +94 -4
  1156. package/lib/commands/board.js +155 -0
  1157. package/lib/commands/daemonBoard.js +23 -9
  1158. package/lib/commands/narratePrs.js +384 -0
  1159. package/lib/commands/teams.js +320 -0
  1160. package/lib/commands/workspace.js +300 -0
  1161. package/package.json +1 -1
  1162. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_e2187c53.js +0 -3
  1163. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__04ee9637._.js +0 -80
  1164. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06d2e9cc._.js +0 -3
  1165. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__079c42ac._.js +0 -3
  1166. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08a40fc7._.js +0 -3
  1167. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a528fae._.js +0 -18
  1168. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0b317b6d._.js +0 -3
  1169. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e04eca4._.js +0 -40
  1170. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e30f17d._.js +0 -13
  1171. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__101fe653._.js +0 -3
  1172. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10a90219._.js +0 -69
  1173. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10bfac8f._.js +0 -76
  1174. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__121d8e45._.js +0 -3
  1175. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1629da24._.js +0 -9
  1176. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__18ec311a._.js +0 -3
  1177. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__19d0fac1._.js +0 -3
  1178. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1d970ad0._.js +0 -40
  1179. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__20391b07._.js +0 -3
  1180. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__229b2432._.js +0 -3
  1181. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2ab23e45._.js +0 -70
  1182. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2bb933c7._.js +0 -3
  1183. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2d916976._.js +0 -3
  1184. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__368f5ffd._.js +0 -3
  1185. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__37fe207d._.js +0 -13
  1186. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__41534d9e._.js +0 -3
  1187. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4641ba3f._.js +0 -3
  1188. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b167927._.js +0 -113
  1189. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b9d4f5c._.js +0 -3
  1190. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4ddaa4bd._.js +0 -70
  1191. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4e296e1f._.js +0 -7
  1192. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4fbf7baa._.js +0 -3
  1193. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5184da61._.js +0 -20
  1194. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__51eaac77._.js +0 -13
  1195. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__580ddcca._.js +0 -40
  1196. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5859156d._.js +0 -8
  1197. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6062bf0a._.js +0 -3
  1198. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__67ee45bc._.js +0 -3
  1199. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__68b692c4._.js +0 -131
  1200. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6e0ef488._.js +0 -4
  1201. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6e73b6e1._.js +0 -3
  1202. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6ead08b8._.js +0 -3
  1203. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6f6afa0f._.js +0 -70
  1204. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__76030d44._.js +0 -40
  1205. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7cd28ae0._.js +0 -3
  1206. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7db7c421._.js +0 -134
  1207. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__80aea589._.js +0 -3
  1208. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__847236fb._.js +0 -3
  1209. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__847ab7ae._.js +0 -3
  1210. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8a8d1048._.js +0 -3
  1211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8b130db5._.js +0 -3
  1212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8dd3b8c5._.js +0 -3
  1213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8e91653e._.js +0 -3
  1214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__905a5b44._.js +0 -3
  1215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__90dd5edd._.js +0 -3
  1216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__938c45c2._.js +0 -18
  1217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__97e51964._.js +0 -3
  1218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9ad5f462._.js +0 -18
  1219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e4c0741._.js +0 -8
  1220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a74338e8._.js +0 -6
  1221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__aa4e5942._.js +0 -3
  1222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab2d839c._.js +0 -70
  1223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab9b38d8._.js +0 -3
  1224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ac854687._.js +0 -3
  1225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ae54e5ab._.js +0 -3
  1226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b1357960._.js +0 -3
  1227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b70ca903._.js +0 -13
  1228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b810670d._.js +0 -80
  1229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bb757af8._.js +0 -3
  1230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c2e55fb5._.js +0 -13
  1231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c4a986f6._.js +0 -3
  1232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c614c26c._.js +0 -3
  1233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c9444a83._.js +0 -3
  1234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cbd45246._.js +0 -11
  1235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d402ed75._.js +0 -3
  1236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8cc43c7._.js +0 -129
  1237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8efbb6c._.js +0 -3
  1238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__dd538d32._.js +0 -3
  1239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__df0f00fd._.js +0 -3
  1240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e583235c._.js +0 -3
  1241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e86865ef._.js +0 -13
  1242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb0fd512._.js +0 -13
  1243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ece576c1._.js +0 -3
  1244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ef1c393e._.js +0 -70
  1245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f21be9eb._.js +0 -3
  1246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6e4b64e._.js +0 -3
  1247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a936d9._.js +0 -129
  1248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fb5944d3._.js +0 -3
  1249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fbe43c0a._.js +0 -3
  1250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ff552f94._.js +0 -3
  1251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_21812330._.js +0 -118
  1252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_80b34b78._.js +0 -3
  1253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_b8cc7add._.js +0 -118
  1254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d3245de4._.js +0 -25
  1255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e12b284f._.js +0 -118
  1256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_f938bff7._.js +0 -25
  1257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0992c0e3._.js +0 -34
  1258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_ad844f74._.js +0 -3
  1259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_5e38c2ed._.js +0 -3
  1260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_a528155c._.js +0 -3
  1261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__2af44092._.js +0 -3
  1262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__452cb0f0._.js +0 -3
  1263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__489568b4._.js +0 -3
  1264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ebb738f._.js +0 -3
  1265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ec098a0._.js +0 -3
  1266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__53bd50df._.js +0 -3
  1267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7774a40c._.js +0 -3
  1268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__b8484b0e._.js +0 -7
  1269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bc60b3cf._.js +0 -3
  1270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd05ee09._.js +0 -3
  1271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c2c07c79._.js +0 -3
  1272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__fdfb2d96._.js +0 -3
  1273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_18162573._.js +0 -3
  1274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_8c4beba9._.js +0 -7
  1275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_ba2abc47._.js +0 -7
  1276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e00b6c25._.js +0 -3
  1277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e485f527._.js +0 -3
  1278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_064c7b93._.js +0 -18
  1279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_1e4a0236._.js +0 -3
  1280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_1faefdc2._.js +0 -8
  1281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3e5712aa._.js +0 -3
  1282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_4259062a._.js +0 -8
  1283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5d6a3ce2._.js +0 -3
  1284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5eebb5cb._.js +0 -3
  1285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_7395ab20._.js +0 -18
  1286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_86f59be8._.js +0 -3
  1287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_bbb7b83b._.js +0 -3
  1288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c5e75cc1._.js +0 -18
  1289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_f67bb291._.js +0 -18
  1290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/00d8a91bcae5edc5.js +0 -1
  1291. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0243e7d015db440d.js +0 -5
  1292. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1533a70763aff97d.js +0 -1
  1293. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1fef9364e8667e88.js +0 -1
  1294. package/cloud-runtime/standalone/apps/local/.next/static/chunks/27c70630ae583211.js +0 -1
  1295. package/cloud-runtime/standalone/apps/local/.next/static/chunks/4eaf7bca1be5edfa.js +0 -1
  1296. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5d047fc7267a8f53.js +0 -16
  1297. package/cloud-runtime/standalone/apps/local/.next/static/chunks/69008b684b4d5abd.js +0 -6
  1298. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6c278ae4535b6d5c.js +0 -1
  1299. package/cloud-runtime/standalone/apps/local/.next/static/chunks/716e1716d526ded9.js +0 -46
  1300. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7353a3a1fcd5825c.js +0 -1
  1301. package/cloud-runtime/standalone/apps/local/.next/static/chunks/85b0b6ed57b5df52.js +0 -1
  1302. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8a9626e4d7c259ee.js +0 -16
  1303. package/cloud-runtime/standalone/apps/local/.next/static/chunks/938097967e2c1676.js +0 -6
  1304. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9acdd370e9daca0d.js +0 -16
  1305. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9df45611d6c84e02.js +0 -16
  1306. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a084c6475513e6fe.js +0 -16
  1307. package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa6db7c91c1ccd5f.js +0 -16
  1308. package/cloud-runtime/standalone/apps/local/.next/static/chunks/cbb4dbdc63177701.js +0 -1
  1309. package/cloud-runtime/standalone/apps/local/.next/static/chunks/cecf3e8c47c785f5.js +0 -5
  1310. package/cloud-runtime/standalone/apps/local/.next/static/chunks/dc1b3f7fdc1eaf5c.js +0 -4
  1311. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e72724fd8225ec39.js +0 -20
  1312. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f3c1b6295b9442c6.js +0 -1
  1313. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f4acf76cb6c82c73.js +0 -16
  1314. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f6d31036588ddfe4.css +0 -1
  1315. /package/cloud-runtime/standalone/apps/local/.next/static/{4MnUE2NHztybGBWFbcBo5 → C3-tP4djbU34_g7VoIFac}/_buildManifest.js +0 -0
  1316. /package/cloud-runtime/standalone/apps/local/.next/static/{4MnUE2NHztybGBWFbcBo5 → C3-tP4djbU34_g7VoIFac}/_clientMiddlewareManifest.json +0 -0
  1317. /package/cloud-runtime/standalone/apps/local/.next/static/{4MnUE2NHztybGBWFbcBo5 → C3-tP4djbU34_g7VoIFac}/_ssgManifest.js +0 -0
@@ -762,6 +762,28 @@ var init_boss = __esm({
762
762
  }
763
763
  });
764
764
 
765
+ // apps/local/lib/db/types.ts
766
+ function validateIdentifierPrefix(prefix) {
767
+ if (prefix === null || prefix === void 0 || prefix === "") return null;
768
+ if (typeof prefix !== "string") {
769
+ throw new Error("identifier_prefix must be a string");
770
+ }
771
+ const trimmed = prefix.trim().toUpperCase();
772
+ if (!IDENTIFIER_PREFIX_REGEX.test(trimmed)) {
773
+ throw new Error(
774
+ "identifier_prefix must be 2-10 uppercase ASCII letters (e.g. 'TSK', 'AGX')"
775
+ );
776
+ }
777
+ return trimmed;
778
+ }
779
+ var IDENTIFIER_PREFIX_REGEX;
780
+ var init_types = __esm({
781
+ "apps/local/lib/db/types.ts"() {
782
+ "use strict";
783
+ IDENTIFIER_PREFIX_REGEX = /^[A-Z]{2,10}$/;
784
+ }
785
+ });
786
+
765
787
  // apps/local/lib/auth-mode.ts
766
788
  var LOCAL_USER;
767
789
  var init_auth_mode = __esm({
@@ -1644,6 +1666,35 @@ var init_workspaces_to_projects_migration = __esm({
1644
1666
  }
1645
1667
  });
1646
1668
 
1669
+ // apps/local/lib/migrations/task-identifier-migration.ts
1670
+ function runTaskIdentifierMigration(db2) {
1671
+ try {
1672
+ db2.exec("ALTER TABLE projects ADD COLUMN identifier_prefix TEXT");
1673
+ } catch {
1674
+ }
1675
+ try {
1676
+ db2.exec(
1677
+ "ALTER TABLE projects ADD COLUMN next_identifier INTEGER NOT NULL DEFAULT 1"
1678
+ );
1679
+ } catch {
1680
+ }
1681
+ try {
1682
+ db2.exec("ALTER TABLE tasks ADD COLUMN identifier TEXT");
1683
+ } catch {
1684
+ }
1685
+ try {
1686
+ db2.exec(
1687
+ "CREATE UNIQUE INDEX IF NOT EXISTS idx_tasks_identifier ON tasks (project_id, identifier) WHERE identifier IS NOT NULL"
1688
+ );
1689
+ } catch {
1690
+ }
1691
+ }
1692
+ var init_task_identifier_migration = __esm({
1693
+ "apps/local/lib/migrations/task-identifier-migration.ts"() {
1694
+ "use strict";
1695
+ }
1696
+ });
1697
+
1647
1698
  // apps/local/lib/sqlite-query-adapter.ts
1648
1699
  var sqlite_query_adapter_exports = {};
1649
1700
  __export(sqlite_query_adapter_exports, {
@@ -1681,6 +1732,7 @@ ${msgs.join("\n")}`);
1681
1732
  }
1682
1733
  dropLegacyTeamsTables(_db);
1683
1734
  ensureProjectScopedTeamTables(_db);
1735
+ ensureWorkspaceEntriesTable(_db);
1684
1736
  return _db;
1685
1737
  }
1686
1738
  function initSQLiteSchema(db2) {
@@ -1736,6 +1788,30 @@ function ensureProjectScopedTeamTables(db2) {
1736
1788
  END;
1737
1789
  `);
1738
1790
  }
1791
+ function ensureWorkspaceEntriesTable(db2) {
1792
+ db2.exec(`
1793
+ CREATE TABLE IF NOT EXISTS workspace_entries (
1794
+ id TEXT NOT NULL PRIMARY KEY,
1795
+ project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
1796
+ category TEXT NOT NULL,
1797
+ name TEXT NOT NULL,
1798
+ path TEXT DEFAULT NULL,
1799
+ purpose TEXT,
1800
+ sort_order INTEGER NOT NULL DEFAULT 0,
1801
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
1802
+ updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
1803
+ UNIQUE(project_id, category, name)
1804
+ );
1805
+ CREATE INDEX IF NOT EXISTS idx_workspace_entries_project_id ON workspace_entries(project_id);
1806
+
1807
+ CREATE TRIGGER IF NOT EXISTS workspace_entries_updated_at
1808
+ AFTER UPDATE ON workspace_entries
1809
+ FOR EACH ROW
1810
+ BEGIN
1811
+ UPDATE workspace_entries SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now') WHERE rowid = NEW.rowid;
1812
+ END;
1813
+ `);
1814
+ }
1739
1815
  function runMigrations(db2) {
1740
1816
  const graphTables = db2.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all();
1741
1817
  if (graphTables.length > 0) {
@@ -1744,6 +1820,7 @@ function runMigrations(db2) {
1744
1820
  db2.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON");
1745
1821
  }
1746
1822
  }
1823
+ runTaskIdentifierMigration(db2);
1747
1824
  const projectTables = db2.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='projects'").all();
1748
1825
  if (projectTables.length > 0) {
1749
1826
  const projectCols = pragmaAll(db2, "table_info(projects)");
@@ -1814,6 +1891,7 @@ function runMigrations(db2) {
1814
1891
  CREATE INDEX IF NOT EXISTS idx_agent_skill_bindings_agent ON agent_skill_bindings (agent_id, created_at);
1815
1892
  `);
1816
1893
  ensureProjectScopedTeamTables(db2);
1894
+ ensureWorkspaceEntriesTable(db2);
1817
1895
  db2.exec(`
1818
1896
  CREATE TABLE IF NOT EXISTS project_agents (
1819
1897
  project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
@@ -2227,6 +2305,7 @@ var init_sqlite_query_adapter = __esm({
2227
2305
  init_participants_store();
2228
2306
  init_startup();
2229
2307
  init_workspaces_to_projects_migration();
2308
+ init_task_identifier_migration();
2230
2309
  ({ DatabaseSync: DatabaseSyncCtor3 } = process.getBuiltinModule("node:sqlite"));
2231
2310
  AGX_DATA_DIR3 = process.env.AGX_DATA_DIR || import_path9.default.join(import_os9.default.homedir(), ".agx");
2232
2311
  SqlExpression = class {
@@ -2633,10 +2712,215 @@ function createAdminDbClient() {
2633
2712
  }
2634
2713
  var init_db_adapter = __esm({
2635
2714
  "apps/local/lib/db-adapter.ts"() {
2715
+ "use strict";
2636
2716
  init_auth_mode();
2637
2717
  }
2638
2718
  });
2639
2719
 
2720
+ // apps/local/lib/db/shared.ts
2721
+ function isMissingRelationError(error, relation) {
2722
+ if (!error) return false;
2723
+ const message = typeof error.message === "string" ? error.message : "";
2724
+ return error.code === "42P01" || error.code === "PGRST205" || message.includes(`relation "${relation}" does not exist`) || message.includes(`Could not find the table 'agx.${relation}'`) || message.includes(`Could not find the table 'public.${relation}'`);
2725
+ }
2726
+ function resolveTaskConfig(task, stageConfig, userSettings) {
2727
+ const clean = (v) => {
2728
+ if (typeof v !== "string") return null;
2729
+ const t = v.trim();
2730
+ return t ? t : null;
2731
+ };
2732
+ let cliDefaultProvider = null;
2733
+ try {
2734
+ const fs12 = require("fs");
2735
+ const path15 = require("path");
2736
+ const configPath = path15.join(process.env.HOME || "", ".agx", "config.json");
2737
+ const cliConfig = JSON.parse(fs12.readFileSync(configPath, "utf-8"));
2738
+ cliDefaultProvider = clean(cliConfig?.defaultProvider) || null;
2739
+ } catch {
2740
+ }
2741
+ const globalDefaultProvider = clean(userSettings?.default_provider) || cliDefaultProvider || "claude";
2742
+ const provider = clean(task.provider) || clean(stageConfig?.provider) || globalDefaultProvider;
2743
+ const globalDefaultModel = clean(userSettings?.models?.[provider]) || null;
2744
+ const model = clean(task.model) || clean(stageConfig?.model) || globalDefaultModel || null;
2745
+ const swarm = task.swarm ?? stageConfig?.swarm ?? false;
2746
+ const swarm_models = task.swarm_models?.length ? task.swarm_models : stageConfig?.swarm_models || [];
2747
+ return {
2748
+ provider,
2749
+ model,
2750
+ swarm,
2751
+ swarm_models
2752
+ };
2753
+ }
2754
+ function slugify2(input) {
2755
+ return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) || "task";
2756
+ }
2757
+ async function generateUniqueSlug(base, db2) {
2758
+ let slug = slugify2(base);
2759
+ for (let i = 0; i < 5; i++) {
2760
+ const { data, error } = await db2.from("tasks").select("id").eq("slug", slug).limit(1);
2761
+ if (error) throw error;
2762
+ if (!data || data.length === 0) return slug;
2763
+ const suffix = Math.random().toString(36).slice(2, 6);
2764
+ slug = `${slugify2(base)}-${suffix}`.slice(0, 48);
2765
+ }
2766
+ return `${slugify2(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
2767
+ }
2768
+ async function generateUniqueProjectSlug(base, userId, db2, excludeProjectId) {
2769
+ let slug = slugify2(base);
2770
+ for (let i = 0; i < 5; i++) {
2771
+ let query = db2.from("projects").select("id").eq("slug", slug).eq("user_id", userId);
2772
+ if (excludeProjectId) {
2773
+ query = query.neq("id", excludeProjectId);
2774
+ }
2775
+ const { data, error } = await query.limit(1);
2776
+ if (error) throw error;
2777
+ if (!data || data.length === 0) return slug;
2778
+ const suffix = Math.random().toString(36).slice(2, 6);
2779
+ slug = `${slugify2(base)}-${suffix}`.slice(0, 48);
2780
+ }
2781
+ return `${slugify2(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
2782
+ }
2783
+ function getDbClient(client) {
2784
+ return client ?? createAdminDbClient();
2785
+ }
2786
+ function parseDependsOnValue(value) {
2787
+ const trimmed = value.trim();
2788
+ if (!trimmed) return [];
2789
+ try {
2790
+ const parsed = JSON.parse(trimmed);
2791
+ if (Array.isArray(parsed)) {
2792
+ return parsed.map((item) => String(item || "").trim()).filter(Boolean);
2793
+ }
2794
+ } catch {
2795
+ }
2796
+ return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
2797
+ }
2798
+ function normalizeDependsOnInput(input) {
2799
+ if (!input) return [];
2800
+ let candidates;
2801
+ if (Array.isArray(input)) {
2802
+ candidates = input.map((item) => typeof item === "string" ? item : item === null || item === void 0 ? "" : String(item)).filter(Boolean);
2803
+ } else if (typeof input === "string") {
2804
+ candidates = parseDependsOnValue(input);
2805
+ } else {
2806
+ return [];
2807
+ }
2808
+ return Array.from(new Set(candidates.map((id) => id.trim()).filter(Boolean)));
2809
+ }
2810
+ function parseFrontmatter(markdown) {
2811
+ const match = markdown.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
2812
+ if (!match) {
2813
+ return { frontmatter: {}, body: markdown };
2814
+ }
2815
+ const frontmatter = {};
2816
+ const lines = match[1].split("\n");
2817
+ for (const line of lines) {
2818
+ const colonIndex = line.indexOf(":");
2819
+ if (colonIndex > 0) {
2820
+ const key = line.slice(0, colonIndex).trim();
2821
+ const value = line.slice(colonIndex + 1).trim();
2822
+ if (key === "depends_on") {
2823
+ frontmatter[key] = parseDependsOnValue(value);
2824
+ continue;
2825
+ }
2826
+ if (value === "true") frontmatter[key] = true;
2827
+ else if (value === "false") frontmatter[key] = false;
2828
+ else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value, 10);
2829
+ else frontmatter[key] = value;
2830
+ }
2831
+ }
2832
+ return { frontmatter, body: match[2] };
2833
+ }
2834
+ async function ensureNoCircularDependency(taskId, dependsOn, client) {
2835
+ if (!taskId || !dependsOn?.length) return;
2836
+ const db2 = getDbClient(client);
2837
+ const visited = /* @__PURE__ */ new Set();
2838
+ const stack = [...dependsOn];
2839
+ while (stack.length) {
2840
+ const candidate = stack.pop();
2841
+ if (!candidate) continue;
2842
+ if (candidate === taskId) {
2843
+ throw new Error("Circular dependency detected");
2844
+ }
2845
+ if (visited.has(candidate)) continue;
2846
+ visited.add(candidate);
2847
+ const { data, error } = await db2.from("tasks").select("depends_on").eq("id", candidate).maybeSingle();
2848
+ if (error) {
2849
+ if (error.code === "PGRST116" || error.code === "42703") continue;
2850
+ throw error;
2851
+ }
2852
+ if (!data) continue;
2853
+ const childDeps = Array.isArray(data.depends_on) ? data.depends_on : [];
2854
+ for (const next of childDeps) {
2855
+ if (next && !visited.has(next)) {
2856
+ stack.push(next);
2857
+ }
2858
+ }
2859
+ }
2860
+ }
2861
+ function extractTitle(markdown) {
2862
+ const { body } = parseFrontmatter(markdown);
2863
+ const match = body.match(/^#\s+(.+)$/m);
2864
+ return match ? match[1] : void 0;
2865
+ }
2866
+ var init_shared = __esm({
2867
+ "apps/local/lib/db/shared.ts"() {
2868
+ "use strict";
2869
+ init_db_adapter();
2870
+ }
2871
+ });
2872
+
2873
+ // apps/local/lib/db/user-settings.ts
2874
+ function normalizeChangedAt(value) {
2875
+ if (typeof value === "string") {
2876
+ const t = Date.parse(value);
2877
+ if (Number.isFinite(t)) return new Date(t).toISOString();
2878
+ }
2879
+ return (/* @__PURE__ */ new Date()).toISOString();
2880
+ }
2881
+ async function getUserSettings(userId) {
2882
+ const db2 = createAdminDbClient();
2883
+ const { data, error } = await db2.from("user_settings").select("*").eq("user_id", userId).maybeSingle();
2884
+ if (error) {
2885
+ if (isMissingRelationError(error, "user_settings")) return null;
2886
+ throw error;
2887
+ }
2888
+ if (!data) return null;
2889
+ return data;
2890
+ }
2891
+ async function upsertUserSettings(userId, input, options) {
2892
+ const onlyIfNewer = options?.onlyIfNewer !== false;
2893
+ const incomingChangedAt = normalizeChangedAt(input.changed_at);
2894
+ const existing = await getUserSettings(userId);
2895
+ if (onlyIfNewer && existing?.changed_at) {
2896
+ const existingTs = Date.parse(existing.changed_at);
2897
+ const incomingTs = Date.parse(incomingChangedAt);
2898
+ if (Number.isFinite(existingTs) && Number.isFinite(incomingTs) && incomingTs <= existingTs) {
2899
+ return { settings: existing, updated: false };
2900
+ }
2901
+ }
2902
+ const payload = {
2903
+ user_id: userId,
2904
+ default_provider: input.default_provider ?? existing?.default_provider ?? null,
2905
+ models: input.models ?? existing?.models ?? {},
2906
+ provenance: input.provenance,
2907
+ changed_at: incomingChangedAt
2908
+ };
2909
+ const db2 = createAdminDbClient();
2910
+ const { error: upsertError } = await db2.from("user_settings").upsert(payload, { onConflict: "user_id" });
2911
+ if (upsertError) throw upsertError;
2912
+ const after = await getUserSettings(userId);
2913
+ if (!after) throw new Error("Failed to load user_settings after upsert");
2914
+ return { settings: after, updated: true };
2915
+ }
2916
+ var init_user_settings = __esm({
2917
+ "apps/local/lib/db/user-settings.ts"() {
2918
+ "use strict";
2919
+ init_db_adapter();
2920
+ init_shared();
2921
+ }
2922
+ });
2923
+
2640
2924
  // apps/local/lib/dependency-helpers.ts
2641
2925
  function describeDependency(entry) {
2642
2926
  if (entry.title) return entry.title;
@@ -2665,11 +2949,82 @@ function isDependencyBlockedReason(reason) {
2665
2949
  var DEPENDENCY_BLOCKED_REASON_PREFIX, MAX_DISPLAYED_DEPENDENCIES;
2666
2950
  var init_dependency_helpers = __esm({
2667
2951
  "apps/local/lib/dependency-helpers.ts"() {
2952
+ "use strict";
2668
2953
  DEPENDENCY_BLOCKED_REASON_PREFIX = "Waiting on dependencies";
2669
2954
  MAX_DISPLAYED_DEPENDENCIES = 3;
2670
2955
  }
2671
2956
  });
2672
2957
 
2958
+ // lib/logger.ts
2959
+ function scheduleFlush() {
2960
+ if (flushTimer) return;
2961
+ flushTimer = setTimeout(() => {
2962
+ flushTimer = null;
2963
+ flush();
2964
+ }, FLUSH_INTERVAL_MS);
2965
+ }
2966
+ function enqueue(entry) {
2967
+ if (!LOG_ENABLED) return;
2968
+ buffer.push(entry);
2969
+ if (buffer.length >= MAX_BUFFER_SIZE) {
2970
+ flush();
2971
+ } else {
2972
+ scheduleFlush();
2973
+ }
2974
+ }
2975
+ function formatError(error) {
2976
+ if (error instanceof Error) {
2977
+ return { name: error.name, message: error.message, stack: error.stack };
2978
+ }
2979
+ return { message: String(error) };
2980
+ }
2981
+ async function flush() {
2982
+ if (buffer.length === 0) return;
2983
+ const entries = buffer.splice(0);
2984
+ try {
2985
+ await fetch(LOG_ENDPOINT, {
2986
+ method: "POST",
2987
+ headers: { "Content-Type": "application/json" },
2988
+ body: JSON.stringify(entries)
2989
+ });
2990
+ } catch {
2991
+ }
2992
+ }
2993
+ var LOG_ENDPOINT, LOG_ENABLED, buffer, flushTimer, FLUSH_INTERVAL_MS, MAX_BUFFER_SIZE, logger;
2994
+ var init_logger = __esm({
2995
+ "lib/logger.ts"() {
2996
+ "use strict";
2997
+ LOG_ENDPOINT = process.env.AGX_LOG_ENDPOINT || "https://www.runagx.com/api/logs/ingest";
2998
+ LOG_ENABLED = process.env.AGX_DISABLE_REMOTE_LOGGING !== "1";
2999
+ buffer = [];
3000
+ flushTimer = null;
3001
+ FLUSH_INTERVAL_MS = 5e3;
3002
+ MAX_BUFFER_SIZE = 50;
3003
+ logger = {
3004
+ error(message, context) {
3005
+ console.error(message, context ?? "");
3006
+ enqueue({ level: "error", message, context });
3007
+ },
3008
+ warn(message, context) {
3009
+ console.warn(message, context ?? "");
3010
+ enqueue({ level: "warn", message, context });
3011
+ },
3012
+ info(message, context) {
3013
+ console.log(message, context ?? "");
3014
+ enqueue({ level: "info", message, context });
3015
+ },
3016
+ formatError
3017
+ };
3018
+ }
3019
+ });
3020
+
3021
+ // apps/local/lib/logger.ts
3022
+ var init_logger2 = __esm({
3023
+ "apps/local/lib/logger.ts"() {
3024
+ init_logger();
3025
+ }
3026
+ });
3027
+
2673
3028
  // apps/local/lib/notifications/constants.ts
2674
3029
  var NOTIFICATION_EVENT_OPTIONS, NOTIFICATION_EVENT_VALUES;
2675
3030
  var init_constants = __esm({
@@ -2707,7 +3062,7 @@ var init_constants = __esm({
2707
3062
  });
2708
3063
 
2709
3064
  // apps/local/lib/notifications/index.ts
2710
- function isMissingRelationError(error, relation) {
3065
+ function isMissingRelationError2(error, relation) {
2711
3066
  if (!error || typeof error !== "object") return false;
2712
3067
  const code = error.code;
2713
3068
  const message = typeof error.message === "string" ? error.message : "";
@@ -2729,7 +3084,7 @@ function mapWebhookRecord(raw) {
2729
3084
  };
2730
3085
  }
2731
3086
  async function handleRelationError(relation, error) {
2732
- if (isMissingRelationError(error, relation)) {
3087
+ if (isMissingRelationError2(error, relation)) {
2733
3088
  throw new SchemaNotReadyError(`Missing relation: ${relation}`);
2734
3089
  }
2735
3090
  throw error;
@@ -2753,7 +3108,7 @@ async function notifyTaskEvent(payload) {
2753
3108
  console.debug("[notifications] notification_webhooks schema not ready, skipping");
2754
3109
  return;
2755
3110
  }
2756
- console.error("[notifications] failed to load webhooks", error);
3111
+ logger.error("[notifications] failed to load webhooks", logger.formatError(error));
2757
3112
  return;
2758
3113
  }
2759
3114
  const targets = endpoints.filter(
@@ -2777,28 +3132,36 @@ async function notifyTaskEvent(payload) {
2777
3132
  };
2778
3133
  await Promise.all(
2779
3134
  targets.map(async (endpoint) => {
3135
+ const controller = new AbortController();
3136
+ const timeout = setTimeout(() => controller.abort(), WEBHOOK_DELIVERY_TIMEOUT_MS);
2780
3137
  try {
2781
3138
  const response = await fetch(endpoint.url, {
2782
3139
  method: "POST",
2783
3140
  headers: { "Content-Type": "application/json" },
2784
- body: JSON.stringify(body)
3141
+ body: JSON.stringify(body),
3142
+ signal: controller.signal
2785
3143
  });
2786
3144
  if (!response.ok) {
2787
- console.error(
3145
+ logger.error(
2788
3146
  `[notifications] webhook ${endpoint.url} responded with ${response.status}`
2789
3147
  );
2790
3148
  }
2791
3149
  } catch (error) {
2792
- console.error(`[notifications] failed to send to ${endpoint.url}`, error);
3150
+ logger.error(`[notifications] failed to send to ${endpoint.url}`, logger.formatError(error));
3151
+ } finally {
3152
+ clearTimeout(timeout);
2793
3153
  }
2794
3154
  })
2795
3155
  );
2796
3156
  }
2797
- var SchemaNotReadyError;
3157
+ var WEBHOOK_DELIVERY_TIMEOUT_MS, SchemaNotReadyError;
2798
3158
  var init_notifications = __esm({
2799
3159
  "apps/local/lib/notifications/index.ts"() {
3160
+ "use strict";
2800
3161
  init_db_adapter();
3162
+ init_logger2();
2801
3163
  init_constants();
3164
+ WEBHOOK_DELIVERY_TIMEOUT_MS = 1e4;
2802
3165
  SchemaNotReadyError = class extends Error {
2803
3166
  };
2804
3167
  }
@@ -2884,9 +3247,9 @@ var require_mark = __commonJS({
2884
3247
  "node_modules/js-yaml/lib/js-yaml/mark.js"(exports2, module2) {
2885
3248
  "use strict";
2886
3249
  var common = require_common();
2887
- function Mark(name, buffer, position, line, column) {
3250
+ function Mark(name, buffer2, position, line, column) {
2888
3251
  this.name = name;
2889
- this.buffer = buffer;
3252
+ this.buffer = buffer2;
2890
3253
  this.position = position;
2891
3254
  this.line = line;
2892
3255
  this.column = column;
@@ -5631,7 +5994,7 @@ var require_js_yaml2 = __commonJS({
5631
5994
  function nowIso() {
5632
5995
  return (/* @__PURE__ */ new Date()).toISOString();
5633
5996
  }
5634
- function slugify2(value, fallback = "item") {
5997
+ function slugify3(value, fallback = "item") {
5635
5998
  const slug = String(value || "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
5636
5999
  return slug || fallback;
5637
6000
  }
@@ -5901,7 +6264,7 @@ var init_vault_store = __esm({
5901
6264
  }
5902
6265
  nextProjectSlug(base, excludeProjectId) {
5903
6266
  const registry = this.readRegistry();
5904
- const baseSlug = slugify2(base, "project");
6267
+ const baseSlug = slugify3(base, "project");
5905
6268
  let candidate = baseSlug;
5906
6269
  let index = 1;
5907
6270
  while (registry.projects.some((project) => project.slug === candidate && project.id !== excludeProjectId)) {
@@ -5912,7 +6275,7 @@ var init_vault_store = __esm({
5912
6275
  }
5913
6276
  nextRepoSlug(projectSlug, base, excludeRepoId) {
5914
6277
  const manifest = this.readManifest(projectSlug);
5915
- const baseSlug = slugify2(base, "repo");
6278
+ const baseSlug = slugify3(base, "repo");
5916
6279
  let candidate = baseSlug;
5917
6280
  let index = 1;
5918
6281
  while (manifest?.repos.some((repo) => repo.slug === candidate && repo.id !== excludeRepoId)) {
@@ -6061,7 +6424,7 @@ ${project.description?.trim() || ""}
6061
6424
  const registry = this.readRegistry();
6062
6425
  const existing = registry.agents.find((agent) => agent.id === agentId);
6063
6426
  if (existing) return existing;
6064
- const slug = slugify2(name || agentId, "agent");
6427
+ const slug = slugify3(name || agentId, "agent");
6065
6428
  const createdAt = nowIso();
6066
6429
  const entry = {
6067
6430
  id: agentId,
@@ -6355,7 +6718,7 @@ ${project.description?.trim() || ""}
6355
6718
  if (!project) throw new Error("Project not found");
6356
6719
  const timestamp = nowIso();
6357
6720
  const id = (0, import_node_crypto3.randomUUID)();
6358
- const fileSlug = slugify2(import_node_path.default.basename(file) || id, "skill");
6721
+ const fileSlug = slugify3(import_node_path.default.basename(file) || id, "skill");
6359
6722
  writeMarkdownFile(
6360
6723
  import_node_path.default.join(this.projectSkillsDir(project.slug), `${fileSlug}-${id.slice(0, 8)}.md`),
6361
6724
  {
@@ -6407,7 +6770,7 @@ ${project.description?.trim() || ""}
6407
6770
  setProjectVariable(projectId, key, value) {
6408
6771
  const project = this.findProjectRegistryEntryById(projectId);
6409
6772
  if (!project) throw new Error("Project not found");
6410
- const existingPath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify2(key, "var")}.md`);
6773
+ const existingPath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify3(key, "var")}.md`);
6411
6774
  const existing = readMarkdownFile(existingPath);
6412
6775
  const timestamp = nowIso();
6413
6776
  writeMarkdownFile(
@@ -6429,7 +6792,7 @@ ${project.description?.trim() || ""}
6429
6792
  deleteProjectVariable(projectId, key) {
6430
6793
  const project = this.findProjectRegistryEntryById(projectId);
6431
6794
  if (!project) return;
6432
- const filePath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify2(key, "var")}.md`);
6795
+ const filePath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify3(key, "var")}.md`);
6433
6796
  if (import_node_fs.default.existsSync(filePath)) {
6434
6797
  import_node_fs.default.unlinkSync(filePath);
6435
6798
  }
@@ -6750,7 +7113,7 @@ ${project.description?.trim() || ""}
6750
7113
  }
6751
7114
  nextKnowledgeEntryPath(scope, subjectId, title) {
6752
7115
  const id = (0, import_node_crypto3.randomUUID)();
6753
- const fileName = `${slugify2(title, "entry")}-${id.slice(0, 8)}.md`;
7116
+ const fileName = `${slugify3(title, "entry")}-${id.slice(0, 8)}.md`;
6754
7117
  if (scope === "global") {
6755
7118
  return import_node_path.default.join(this.globalEvidenceDir("global"), fileName);
6756
7119
  }
@@ -6878,7 +7241,7 @@ ${addition}` : addition;
6878
7241
  let evidenceFiles = 0;
6879
7242
  for (const learning of globalLearnings) {
6880
7243
  writeMarkdownFile(
6881
- import_node_path.default.join(this.globalImportedLearningsDir(), `${slugify2(learning.id, "learning")}.md`),
7244
+ import_node_path.default.join(this.globalImportedLearningsDir(), `${slugify3(learning.id, "learning")}.md`),
6882
7245
  {
6883
7246
  id: learning.id,
6884
7247
  type: "imported-artifact",
@@ -6978,7 +7341,7 @@ ${addition}` : addition;
6978
7341
  const projectLearningRows = learnings.filter((learning) => learning.scope === "project" && learning.scope_id === project.id);
6979
7342
  for (const learning of projectLearningRows) {
6980
7343
  writeMarkdownFile(
6981
- import_node_path.default.join(this.projectImportedDir(project.slug, "learnings"), `${slugify2(learning.id, "learning")}.md`),
7344
+ import_node_path.default.join(this.projectImportedDir(project.slug, "learnings"), `${slugify3(learning.id, "learning")}.md`),
6982
7345
  {
6983
7346
  id: learning.id,
6984
7347
  type: "imported-artifact",
@@ -6995,7 +7358,7 @@ ${addition}` : addition;
6995
7358
  }
6996
7359
  for (const memoryRow of projectMemoryRows.filter((row) => row.project_id === project.id)) {
6997
7360
  writeMarkdownFile(
6998
- import_node_path.default.join(this.projectImportedDir(project.slug, "project-memory"), `${slugify2(memoryRow.id, "memory")}.md`),
7361
+ import_node_path.default.join(this.projectImportedDir(project.slug, "project-memory"), `${slugify3(memoryRow.id, "memory")}.md`),
6999
7362
  {
7000
7363
  id: memoryRow.id,
7001
7364
  type: "imported-artifact",
@@ -7037,7 +7400,7 @@ ${addition}` : addition;
7037
7400
  );
7038
7401
  if (repo.notes?.trim()) {
7039
7402
  writeMarkdownFile(
7040
- import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${slugify2(repo.id, "repo-notes")}-project-repos-notes.md`),
7403
+ import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${slugify3(repo.id, "repo-notes")}-project-repos-notes.md`),
7041
7404
  {
7042
7405
  id: `${repo.id}:project_repos.notes`,
7043
7406
  type: "imported-artifact",
@@ -7054,7 +7417,7 @@ ${addition}` : addition;
7054
7417
  }
7055
7418
  for (const row of repoKnowledgeRows.filter((entry) => entry.repo_id === repo.id)) {
7056
7419
  writeMarkdownFile(
7057
- import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${slugify2(row.id, "repo-knowledge")}.md`),
7420
+ import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${slugify3(row.id, "repo-knowledge")}.md`),
7058
7421
  {
7059
7422
  id: row.id,
7060
7423
  type: "imported-artifact",
@@ -7073,7 +7436,7 @@ ${addition}` : addition;
7073
7436
  }
7074
7437
  for (const skill of projectSkills.filter((entry) => entry.project_id === project.id)) {
7075
7438
  writeMarkdownFile(
7076
- import_node_path.default.join(this.projectSkillsDir(project.slug), `${slugify2(import_node_path.default.basename(skill.file) || skill.id, "skill")}-${skill.id.slice(0, 8)}.md`),
7439
+ import_node_path.default.join(this.projectSkillsDir(project.slug), `${slugify3(import_node_path.default.basename(skill.file) || skill.id, "skill")}-${skill.id.slice(0, 8)}.md`),
7077
7440
  {
7078
7441
  id: skill.id,
7079
7442
  type: "project-skill",
@@ -7090,7 +7453,7 @@ ${addition}` : addition;
7090
7453
  }
7091
7454
  for (const variable of projectVariables.filter((entry) => entry.project_id === project.id)) {
7092
7455
  writeMarkdownFile(
7093
- import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify2(variable.key, "var")}.md`),
7456
+ import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify3(variable.key, "var")}.md`),
7094
7457
  {
7095
7458
  id: `project-variable:${project.id}:${variable.key}`,
7096
7459
  type: "project-variable",
@@ -7206,283 +7569,418 @@ ${portableKnowledge.trim()}`);
7206
7569
  }
7207
7570
  });
7208
7571
 
7209
- // apps/local/lib/db.ts
7210
- var db_exports = {};
7211
- __export(db_exports, {
7212
- DEFAULT_WORKFLOW_ID: () => DEFAULT_WORKFLOW_ID,
7213
- addLearning: () => addLearning,
7214
- addProjectAgent: () => addProjectAgent,
7215
- addProjectMemory: () => addProjectMemory,
7216
- addProjectSkill: () => addProjectSkill,
7217
- addProjectThread: () => addProjectThread,
7218
- addTaskComment: () => addTaskComment,
7219
- addTaskCostEntry: () => addTaskCostEntry,
7220
- addTaskLog: () => addTaskLog,
7221
- addTeamAgent: () => addTeamAgent,
7222
- appendRunToIndex: () => appendRunToIndex,
7223
- assignOrphanTasksToProject: () => assignOrphanTasksToProject,
7224
- buildExecutionProvenance: () => buildExecutionProvenance,
7225
- createAgent: () => createAgent,
7226
- createProject: () => createProject,
7227
- createTask: () => createTask,
7228
- createTeam: () => createTeam,
7229
- defaultStagePrompts: () => defaultStagePrompts,
7230
- deleteAgent: () => deleteAgent,
7231
- deleteLearning: () => deleteLearning,
7232
- deleteProject: () => deleteProject,
7233
- deleteProjectMemory: () => deleteProjectMemory,
7234
- deleteProjectVariable: () => deleteProjectVariable,
7235
- deleteStagePrompt: () => deleteStagePrompt,
7236
- deleteTask: () => deleteTask,
7237
- deleteTaskComment: () => deleteTaskComment,
7238
- deleteTeam: () => deleteTeam,
7239
- ensureNoCircularDependency: () => ensureNoCircularDependency,
7240
- extractTitle: () => extractTitle,
7241
- getAgent: () => getAgent,
7242
- getAgentSkills: () => getAgentSkills,
7243
- getAgents: () => getAgents,
7244
- getDefaultWorkflowId: () => getDefaultWorkflowId,
7245
- getLearnings: () => getLearnings,
7246
- getNextQueuedTask: () => getNextQueuedTask,
7247
- getProjectAgents: () => getProjectAgents,
7248
- getProjectBySlug: () => getProjectBySlug,
7249
- getProjectForThread: () => getProjectForThread,
7250
- getProjectMemory: () => getProjectMemory,
7251
- getProjectRepos: () => getProjectRepos,
7252
- getProjectSkills: () => getProjectSkills,
7253
- getProjectThreads: () => getProjectThreads,
7254
- getProjectVariables: () => getProjectVariables,
7255
- getProjectWithRepos: () => getProjectWithRepos,
7256
- getProjects: () => getProjects,
7257
- getStagePrompt: () => getStagePrompt,
7258
- getStagePrompts: () => getStagePrompts,
7259
- getTask: () => getTask,
7260
- getTaskBySlug: () => getTaskBySlug,
7261
- getTaskComments: () => getTaskComments,
7262
- getTaskCostEntries: () => getTaskCostEntries,
7263
- getTaskCostSummary: () => getTaskCostSummary,
7264
- getTaskLogs: () => getTaskLogs,
7265
- getTasks: () => getTasks,
7266
- getTeam: () => getTeam,
7267
- getTeamAgents: () => getTeamAgents,
7268
- getTeams: () => getTeams,
7269
- getUserSettings: () => getUserSettings,
7270
- getWorkflow: () => getWorkflow,
7271
- getWorkflowNodeByName: () => getWorkflowNodeByName,
7272
- getWorkflowNodes: () => getWorkflowNodes,
7273
- getWorkflowTransitions: () => getWorkflowTransitions,
7274
- getWorkflowTransitionsFromNode: () => getWorkflowTransitionsFromNode,
7275
- getWorkflowWithGraph: () => getWorkflowWithGraph,
7276
- getWorkflows: () => getWorkflows,
7277
- parseFrontmatter: () => parseFrontmatter,
7278
- removeProjectAgent: () => removeProjectAgent,
7279
- removeProjectSkill: () => removeProjectSkill,
7280
- removeProjectThread: () => removeProjectThread,
7281
- removeTeamAgent: () => removeTeamAgent,
7282
- reorderProjectAgents: () => reorderProjectAgents,
7283
- resolveMemory: () => resolveMemory,
7284
- resolveSkills: () => resolveSkills,
7285
- resolveTaskConfig: () => resolveTaskConfig,
7286
- resolveVariables: () => resolveVariables,
7287
- setAgentSkills: () => setAgentSkills,
7288
- setProjectVariable: () => setProjectVariable,
7289
- summarizeTaskCosts: () => summarizeTaskCosts,
7290
- updateAgent: () => updateAgent,
7291
- updateProject: () => updateProject,
7292
- updateTask: () => updateTask,
7293
- updateTeam: () => updateTeam,
7294
- updateWorkflow: () => updateWorkflow,
7295
- updateWorkflowNodes: () => updateWorkflowNodes,
7296
- upsertStagePrompt: () => upsertStagePrompt,
7297
- upsertUserSettings: () => upsertUserSettings
7298
- });
7299
- function isMissingRelationError2(error, relation) {
7300
- if (!error) return false;
7301
- const message = typeof error.message === "string" ? error.message : "";
7302
- return error.code === "42P01" || error.code === "PGRST205" || message.includes(`relation "${relation}" does not exist`) || message.includes(`Could not find the table 'agx.${relation}'`) || message.includes(`Could not find the table 'public.${relation}'`);
7572
+ // apps/local/lib/db/projects.ts
7573
+ async function insertProjectRepos(projectId, repos, db2) {
7574
+ if (!repos.length) {
7575
+ return [];
7576
+ }
7577
+ const payload = repos.map((repo) => ({
7578
+ ...repo.id ? { id: repo.id } : {},
7579
+ project_id: projectId,
7580
+ name: repo.name,
7581
+ path: repo.path ?? null,
7582
+ git_url: repo.git_url ?? null,
7583
+ notes: repo.notes ?? null
7584
+ }));
7585
+ const { data, error } = await db2.from("project_repos").insert(payload).select("*");
7586
+ if (error) {
7587
+ if (isMissingRelationError(error, "project_repos")) {
7588
+ return [];
7589
+ }
7590
+ throw error;
7591
+ }
7592
+ return data || [];
7303
7593
  }
7304
- function normalizeChangedAt(value) {
7305
- if (typeof value === "string") {
7306
- const t = Date.parse(value);
7307
- if (Number.isFinite(t)) return new Date(t).toISOString();
7594
+ async function getProjects(userId, includeArchived = false) {
7595
+ const db2 = createAdminDbClient();
7596
+ let query = db2.from("projects").select("*, project_repos(*)");
7597
+ if (userId) query = query.eq("user_id", userId);
7598
+ if (!includeArchived) query = query.is("archived_at", null);
7599
+ const { data, error } = await query;
7600
+ if (error) {
7601
+ if (isMissingRelationError(error, "projects")) {
7602
+ return [];
7603
+ }
7604
+ throw error;
7308
7605
  }
7309
- return (/* @__PURE__ */ new Date()).toISOString();
7606
+ const projects = data || [];
7607
+ return projects.map((project) => ({
7608
+ ...project,
7609
+ repos: project.project_repos ?? []
7610
+ }));
7310
7611
  }
7311
- async function getUserSettings(userId) {
7612
+ async function getProjectBySlug(slug, userId) {
7312
7613
  const db2 = createAdminDbClient();
7313
- const { data, error } = await db2.from("user_settings").select("*").eq("user_id", userId).maybeSingle();
7614
+ let query = db2.from("projects").select("*").eq("slug", slug);
7615
+ if (userId) query = query.eq("user_id", userId);
7616
+ const { data, error } = await query.maybeSingle();
7617
+ if (error) {
7618
+ if (isMissingRelationError(error, "projects")) {
7619
+ return null;
7620
+ }
7621
+ throw error;
7622
+ }
7623
+ return data || null;
7624
+ }
7625
+ async function getProjectRepos(projectId) {
7626
+ const db2 = createAdminDbClient();
7627
+ const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
7314
7628
  if (error) {
7315
- if (isMissingRelationError2(error, "user_settings")) return null;
7629
+ if (isMissingRelationError(error, "project_repos")) {
7630
+ return [];
7631
+ }
7316
7632
  throw error;
7317
7633
  }
7318
- if (!data) return null;
7319
- return data;
7634
+ return data || [];
7320
7635
  }
7321
- async function upsertUserSettings(userId, input, options) {
7322
- const onlyIfNewer = options?.onlyIfNewer !== false;
7323
- const incomingChangedAt = normalizeChangedAt(input.changed_at);
7324
- const existing = await getUserSettings(userId);
7325
- if (onlyIfNewer && existing?.changed_at) {
7326
- const existingTs = Date.parse(existing.changed_at);
7327
- const incomingTs = Date.parse(incomingChangedAt);
7328
- if (Number.isFinite(existingTs) && Number.isFinite(incomingTs) && incomingTs <= existingTs) {
7329
- return { settings: existing, updated: false };
7636
+ async function getProjectWithRepos(projectIdOrSlug, userId) {
7637
+ const db2 = createAdminDbClient();
7638
+ const isUuid = UUID_REGEX.test(projectIdOrSlug);
7639
+ let projectQuery = db2.from("projects").select("*");
7640
+ if (isUuid) {
7641
+ projectQuery = projectQuery.eq("id", projectIdOrSlug);
7642
+ } else {
7643
+ projectQuery = projectQuery.eq("slug", projectIdOrSlug);
7644
+ }
7645
+ if (userId) projectQuery = projectQuery.eq("user_id", userId);
7646
+ const projectResult = await projectQuery.maybeSingle();
7647
+ if (projectResult.error) {
7648
+ if (isMissingRelationError(projectResult.error, "projects")) {
7649
+ return null;
7330
7650
  }
7651
+ throw projectResult.error;
7652
+ }
7653
+ const project = projectResult.data;
7654
+ if (!project) return null;
7655
+ const repos = await getProjectRepos(project.id);
7656
+ return { ...project, repos };
7657
+ }
7658
+ async function createProject(userId, input, dbClient) {
7659
+ if (!input.name?.trim()) {
7660
+ throw new Error("Project name is required");
7331
7661
  }
7662
+ const db2 = getDbClient(dbClient);
7663
+ const baseSlug = input.name.trim() || "project";
7664
+ const slug = await generateUniqueProjectSlug(baseSlug, userId, db2);
7665
+ const identifierPrefix = validateIdentifierPrefix(input.identifier_prefix);
7332
7666
  const payload = {
7333
7667
  user_id: userId,
7334
- default_provider: input.default_provider ?? existing?.default_provider ?? null,
7335
- models: input.models ?? existing?.models ?? {},
7336
- provenance: input.provenance,
7337
- changed_at: incomingChangedAt
7668
+ name: input.name.trim(),
7669
+ slug,
7670
+ description: input.description ?? null,
7671
+ workflow_id: input.workflow_id ?? null
7338
7672
  };
7673
+ if (identifierPrefix !== null) {
7674
+ payload.identifier_prefix = identifierPrefix;
7675
+ }
7676
+ let { data: project, error } = await db2.from("projects").insert(payload).select("*").single();
7677
+ if (error && error.code === "42703") {
7678
+ const { identifier_prefix: _ignored, ...fallback } = payload;
7679
+ ({ data: project, error } = await db2.from("projects").insert(fallback).select("*").single());
7680
+ }
7681
+ if (error) throw error;
7682
+ const repos = await insertProjectRepos(project.id, input.repos ?? [], db2);
7683
+ return { ...project, repos };
7684
+ }
7685
+ async function updateProject(projectIdOrSlug, userId, updates, dbClient) {
7686
+ const db2 = getDbClient(dbClient);
7687
+ const isUuid = UUID_REGEX.test(projectIdOrSlug);
7688
+ let projectId = projectIdOrSlug;
7689
+ if (!isUuid) {
7690
+ const project = await getProjectBySlug(projectIdOrSlug, userId);
7691
+ if (!project) return null;
7692
+ projectId = project.id;
7693
+ }
7694
+ const updatePayload = {};
7695
+ if (typeof updates.name !== "undefined") {
7696
+ const trimmedName = updates.name?.trim();
7697
+ if (!trimmedName) {
7698
+ throw new Error("Project name cannot be empty");
7699
+ }
7700
+ updatePayload.name = trimmedName;
7701
+ }
7702
+ if (typeof updates.slug !== "undefined") {
7703
+ const trimmedSlug = updates.slug?.trim();
7704
+ if (trimmedSlug) {
7705
+ updatePayload.slug = trimmedSlug;
7706
+ }
7707
+ }
7708
+ if (typeof updates.description !== "undefined") updatePayload.description = updates.description;
7709
+ if (typeof updates.metadata !== "undefined") updatePayload.metadata = updates.metadata;
7710
+ if (typeof updates.ci_cd_info !== "undefined") updatePayload.ci_cd_info = updates.ci_cd_info;
7711
+ if (typeof updates.workflow_id !== "undefined") updatePayload.workflow_id = updates.workflow_id;
7712
+ if (typeof updates.identifier_prefix !== "undefined") {
7713
+ updatePayload.identifier_prefix = validateIdentifierPrefix(updates.identifier_prefix);
7714
+ }
7715
+ if (Object.keys(updatePayload).length) {
7716
+ const { error } = await db2.from("projects").update(updatePayload).eq("id", projectId).eq("user_id", userId);
7717
+ if (error) throw error;
7718
+ }
7719
+ if (updates.repos) {
7720
+ const { data: existingRepos, error: existingReposError } = await db2.from("project_repos").select("*").eq("project_id", projectId);
7721
+ if (existingReposError && !isMissingRelationError(existingReposError, "project_repos")) {
7722
+ throw existingReposError;
7723
+ }
7724
+ const existingRepoList = existingRepos || [];
7725
+ const existingRepoIds = new Set(existingRepoList.map((repo) => repo.id));
7726
+ const nextRepoIds = new Set(
7727
+ updates.repos.map((repo) => repo.id).filter((repoId) => Boolean(repoId))
7728
+ );
7729
+ for (const existingRepo of existingRepoList) {
7730
+ if (nextRepoIds.has(existingRepo.id)) continue;
7731
+ const { error: deleteError } = await db2.from("project_repos").delete().eq("id", existingRepo.id).eq("project_id", projectId);
7732
+ if (deleteError && !isMissingRelationError(deleteError, "project_repos")) {
7733
+ throw deleteError;
7734
+ }
7735
+ }
7736
+ for (const repo of updates.repos) {
7737
+ const payload = {
7738
+ name: repo.name,
7739
+ path: repo.path ?? null,
7740
+ git_url: repo.git_url ?? null,
7741
+ notes: repo.notes ?? null,
7742
+ project_id: projectId
7743
+ };
7744
+ if (repo.id && existingRepoIds.has(repo.id)) {
7745
+ const { error: repoUpdateError } = await db2.from("project_repos").update(payload).eq("id", repo.id).eq("project_id", projectId);
7746
+ if (repoUpdateError && !isMissingRelationError(repoUpdateError, "project_repos")) {
7747
+ throw repoUpdateError;
7748
+ }
7749
+ continue;
7750
+ }
7751
+ const { error: repoInsertError } = await db2.from("project_repos").insert({
7752
+ ...repo.id ? { id: repo.id } : {},
7753
+ ...payload
7754
+ });
7755
+ if (repoInsertError && !isMissingRelationError(repoInsertError, "project_repos")) {
7756
+ throw repoInsertError;
7757
+ }
7758
+ }
7759
+ }
7760
+ return getProjectWithRepos(projectId, userId);
7761
+ }
7762
+ async function deleteProject(projectId, userId, dbClient) {
7763
+ const db2 = getDbClient(dbClient);
7764
+ const { error } = await db2.from("projects").update({ archived_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", projectId).eq("user_id", userId);
7765
+ if (error) throw error;
7766
+ }
7767
+ async function assignOrphanTasksToProject(projectId, userId, dbClient) {
7768
+ const db2 = getDbClient(dbClient);
7769
+ const project = await getProjectWithRepos(projectId, userId);
7770
+ if (!project) {
7771
+ throw new Error("Project not found");
7772
+ }
7773
+ const { data: tasks, error: tasksError } = await db2.from("tasks").select("id, project").eq("user_id", userId).is("project_id", null);
7774
+ if (tasksError) throw tasksError;
7775
+ const slug = String(project.slug || "").trim().toLowerCase();
7776
+ const orphanTaskIds = (tasks || []).filter((task) => {
7777
+ const projectValue = String(task.project || "").trim().toLowerCase();
7778
+ return !projectValue || projectValue === "none" || projectValue === slug;
7779
+ }).map((task) => task.id);
7780
+ if (!orphanTaskIds.length) {
7781
+ return { updatedCount: 0, taskIds: [] };
7782
+ }
7783
+ const { error: updateError } = await db2.from("tasks").update({
7784
+ project: project.slug,
7785
+ project_id: project.id,
7786
+ updated_at: (/* @__PURE__ */ new Date()).toISOString()
7787
+ }).eq("user_id", userId).is("project_id", null).in("id", orphanTaskIds);
7788
+ if (updateError) throw updateError;
7789
+ return { updatedCount: orphanTaskIds.length, taskIds: orphanTaskIds };
7790
+ }
7791
+ async function getProjectAgents(projectId) {
7339
7792
  const db2 = createAdminDbClient();
7340
- const { error: upsertError } = await db2.from("user_settings").upsert(payload, { onConflict: "user_id" });
7341
- if (upsertError) throw upsertError;
7342
- const after = await getUserSettings(userId);
7343
- if (!after) throw new Error("Failed to load user_settings after upsert");
7344
- return { settings: after, updated: true };
7793
+ const { data, error } = await db2.from("project_agents").select("*").eq("project_id", projectId).order("routing_order", { ascending: true });
7794
+ if (error) {
7795
+ if (isMissingRelationError(error, "project_agents")) return [];
7796
+ throw error;
7797
+ }
7798
+ return data || [];
7345
7799
  }
7346
- function resolveTaskConfig(task, stageConfig, userSettings) {
7347
- const clean = (v) => {
7348
- if (typeof v !== "string") return null;
7349
- const t = v.trim();
7350
- return t ? t : null;
7351
- };
7352
- let cliDefaultProvider = null;
7353
- try {
7354
- const fs12 = require("fs");
7355
- const path15 = require("path");
7356
- const configPath = path15.join(process.env.HOME || "", ".agx", "config.json");
7357
- const cliConfig = JSON.parse(fs12.readFileSync(configPath, "utf-8"));
7358
- cliDefaultProvider = clean(cliConfig?.defaultProvider) || null;
7359
- } catch {
7800
+ async function addProjectAgent(projectId, agentId, routingOrder) {
7801
+ const db2 = createAdminDbClient();
7802
+ if (routingOrder === void 0) {
7803
+ const { data: existing } = await db2.from("project_agents").select("routing_order").eq("project_id", projectId).order("routing_order", { ascending: false }).limit(1);
7804
+ routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
7360
7805
  }
7361
- const globalDefaultProvider = clean(userSettings?.default_provider) || cliDefaultProvider || "claude";
7362
- const provider = clean(task.provider) || clean(stageConfig?.provider) || globalDefaultProvider;
7363
- const globalDefaultModel = clean(userSettings?.models?.[provider]) || null;
7364
- const model = clean(task.model) || clean(stageConfig?.model) || globalDefaultModel || null;
7365
- const swarm = task.swarm ?? stageConfig?.swarm ?? false;
7366
- const swarm_models = task.swarm_models?.length ? task.swarm_models : stageConfig?.swarm_models || [];
7367
- return {
7368
- provider,
7369
- model,
7370
- swarm,
7371
- swarm_models
7372
- };
7806
+ const { data, error } = await db2.from("project_agents").upsert({ project_id: projectId, agent_id: agentId, routing_order: routingOrder }).select().single();
7807
+ if (error) throw error;
7808
+ return data;
7373
7809
  }
7374
- function slugify3(input) {
7375
- return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) || "task";
7810
+ async function removeProjectAgent(projectId, agentId) {
7811
+ const db2 = createAdminDbClient();
7812
+ const { error } = await db2.from("project_agents").delete().eq("project_id", projectId).eq("agent_id", agentId);
7813
+ if (error) throw error;
7376
7814
  }
7377
- async function generateUniqueSlug(base, db2) {
7378
- let slug = slugify3(base);
7379
- for (let i = 0; i < 5; i++) {
7380
- const { data, error } = await db2.from("tasks").select("id").eq("slug", slug).limit(1);
7381
- if (error) throw error;
7382
- if (!data || data.length === 0) return slug;
7383
- const suffix = Math.random().toString(36).slice(2, 6);
7384
- slug = `${slugify3(base)}-${suffix}`.slice(0, 48);
7815
+ async function reorderProjectAgents(projectId, orderedAgentIds) {
7816
+ const db2 = createAdminDbClient();
7817
+ for (let i = 0; i < orderedAgentIds.length; i++) {
7818
+ await db2.from("project_agents").update({ routing_order: i }).eq("project_id", projectId).eq("agent_id", orderedAgentIds[i]);
7385
7819
  }
7386
- return `${slugify3(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
7820
+ return getProjectAgents(projectId);
7387
7821
  }
7388
- async function generateUniqueProjectSlug(base, userId, db2, excludeProjectId) {
7389
- let slug = slugify3(base);
7390
- for (let i = 0; i < 5; i++) {
7391
- let query = db2.from("projects").select("id").eq("slug", slug).eq("user_id", userId);
7392
- if (excludeProjectId) {
7393
- query = query.neq("id", excludeProjectId);
7394
- }
7395
- const { data, error } = await query.limit(1);
7396
- if (error) throw error;
7397
- if (!data || data.length === 0) return slug;
7398
- const suffix = Math.random().toString(36).slice(2, 6);
7399
- slug = `${slugify3(base)}-${suffix}`.slice(0, 48);
7822
+ async function getProjectSkills(projectId) {
7823
+ const db2 = createAdminDbClient();
7824
+ const { data, error } = await db2.from("project_skills").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
7825
+ if (error) {
7826
+ if (isMissingRelationError(error, "project_skills")) return [];
7827
+ throw error;
7400
7828
  }
7401
- return `${slugify3(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
7829
+ return data || [];
7402
7830
  }
7403
- function getDbClient(client) {
7404
- return client ?? createAdminDbClient();
7831
+ async function addProjectSkill(projectId, file, condition) {
7832
+ const db2 = createAdminDbClient();
7833
+ const { data, error } = await db2.from("project_skills").insert({ project_id: projectId, file, condition: condition ?? null }).select().single();
7834
+ if (error) throw error;
7835
+ return data;
7405
7836
  }
7406
- function parseDependsOnValue(value) {
7407
- const trimmed = value.trim();
7408
- if (!trimmed) return [];
7409
- try {
7410
- const parsed = JSON.parse(trimmed);
7411
- if (Array.isArray(parsed)) {
7412
- return parsed.map((item) => String(item || "").trim()).filter(Boolean);
7413
- }
7414
- } catch {
7837
+ async function removeProjectSkill(skillId) {
7838
+ const db2 = createAdminDbClient();
7839
+ const { error } = await db2.from("project_skills").delete().eq("id", skillId);
7840
+ if (error) throw error;
7841
+ }
7842
+ async function getProjectVariables(projectId) {
7843
+ const db2 = createAdminDbClient();
7844
+ const { data, error } = await db2.from("project_variables").select("*").eq("project_id", projectId);
7845
+ if (error) {
7846
+ if (isMissingRelationError(error, "project_variables")) return [];
7847
+ throw error;
7415
7848
  }
7416
- return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
7849
+ return data || [];
7417
7850
  }
7418
- function normalizeDependsOnInput(input) {
7419
- if (!input) return [];
7420
- let candidates;
7421
- if (Array.isArray(input)) {
7422
- candidates = input.map((item) => typeof item === "string" ? item : item === null || item === void 0 ? "" : String(item)).filter(Boolean);
7423
- } else if (typeof input === "string") {
7424
- candidates = parseDependsOnValue(input);
7425
- } else {
7426
- return [];
7851
+ async function setProjectVariable(projectId, key, value) {
7852
+ const db2 = createAdminDbClient();
7853
+ const { data, error } = await db2.from("project_variables").upsert({ project_id: projectId, key, value }, { onConflict: "project_id,key" }).select().single();
7854
+ if (error) throw error;
7855
+ return data;
7856
+ }
7857
+ async function deleteProjectVariable(projectId, key) {
7858
+ const db2 = createAdminDbClient();
7859
+ const { error } = await db2.from("project_variables").delete().eq("project_id", projectId).eq("key", key);
7860
+ if (error) throw error;
7861
+ }
7862
+ async function getProjectMemory(projectId, producer) {
7863
+ void producer;
7864
+ return vaultStore.getProjectMemory(projectId);
7865
+ }
7866
+ async function addProjectMemory(projectId, content, source, producer = "human") {
7867
+ return vaultStore.addProjectMemory(projectId, content, source, producer);
7868
+ }
7869
+ async function deleteProjectMemory(memoryId) {
7870
+ vaultStore.deleteProjectMemory(memoryId);
7871
+ }
7872
+ async function getProjectThreads(projectId) {
7873
+ const db2 = createAdminDbClient();
7874
+ const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
7875
+ if (error) {
7876
+ if (isMissingRelationError(error, "project_threads")) return [];
7877
+ throw error;
7427
7878
  }
7428
- return Array.from(new Set(candidates.map((id) => id.trim()).filter(Boolean)));
7879
+ return data || [];
7429
7880
  }
7430
- function parseFrontmatter(markdown) {
7431
- const match = markdown.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
7432
- if (!match) {
7433
- return { frontmatter: {}, body: markdown };
7881
+ async function addProjectThread(projectId, threadId) {
7882
+ const db2 = createAdminDbClient();
7883
+ const { error } = await db2.from("project_threads").upsert(
7884
+ { project_id: projectId, thread_id: threadId },
7885
+ { onConflict: "project_id,thread_id", ignoreDuplicates: true }
7886
+ );
7887
+ if (error) throw error;
7888
+ const { data, error: fetchError } = await db2.from("project_threads").select("*").eq("project_id", projectId).eq("thread_id", threadId).single();
7889
+ if (fetchError) throw fetchError;
7890
+ return data;
7891
+ }
7892
+ async function removeProjectThread(projectId, threadId) {
7893
+ const db2 = createAdminDbClient();
7894
+ const { error } = await db2.from("project_threads").delete().eq("project_id", projectId).eq("thread_id", threadId);
7895
+ if (error) throw error;
7896
+ }
7897
+ async function getProjectForThread(threadId) {
7898
+ const db2 = createAdminDbClient();
7899
+ const { data, error } = await db2.from("project_threads").select("project_id").eq("thread_id", threadId).maybeSingle();
7900
+ if (error) {
7901
+ if (isMissingRelationError(error, "project_threads")) return null;
7902
+ return null;
7434
7903
  }
7435
- const frontmatter = {};
7436
- const lines = match[1].split("\n");
7437
- for (const line of lines) {
7438
- const colonIndex = line.indexOf(":");
7439
- if (colonIndex > 0) {
7440
- const key = line.slice(0, colonIndex).trim();
7441
- const value = line.slice(colonIndex + 1).trim();
7442
- if (key === "depends_on") {
7443
- frontmatter[key] = parseDependsOnValue(value);
7444
- continue;
7445
- }
7446
- if (value === "true") frontmatter[key] = true;
7447
- else if (value === "false") frontmatter[key] = false;
7448
- else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value);
7449
- else frontmatter[key] = value;
7450
- }
7904
+ return data?.project_id ?? null;
7905
+ }
7906
+ async function getProjectWorkspace(projectId) {
7907
+ const db2 = createAdminDbClient();
7908
+ const { data, error } = await db2.from("workspace_entries").select("*").eq("project_id", projectId).order("category", { ascending: true }).order("sort_order", { ascending: true }).order("name", { ascending: true });
7909
+ if (error) {
7910
+ if (isMissingRelationError(error, "workspace_entries")) return {};
7911
+ throw error;
7451
7912
  }
7452
- return { frontmatter, body: match[2] };
7913
+ const entries = data || [];
7914
+ return entries.reduce((acc, entry) => {
7915
+ if (!acc[entry.category]) acc[entry.category] = [];
7916
+ acc[entry.category].push(entry);
7917
+ return acc;
7918
+ }, {});
7453
7919
  }
7454
- async function ensureNoCircularDependency(taskId, dependsOn, client) {
7455
- if (!taskId || !dependsOn?.length) return;
7456
- const db2 = getDbClient(client);
7457
- const visited = /* @__PURE__ */ new Set();
7458
- const stack = [...dependsOn];
7459
- while (stack.length) {
7460
- const candidate = stack.pop();
7461
- if (!candidate) continue;
7462
- if (candidate === taskId) {
7463
- throw new Error("Circular dependency detected");
7464
- }
7465
- if (visited.has(candidate)) continue;
7466
- visited.add(candidate);
7467
- const { data, error } = await db2.from("tasks").select("depends_on").eq("id", candidate).maybeSingle();
7468
- if (error) {
7469
- if (error.code === "PGRST116" || error.code === "42703") continue;
7470
- throw error;
7471
- }
7472
- if (!data) continue;
7473
- const childDeps = Array.isArray(data.depends_on) ? data.depends_on : [];
7474
- for (const next of childDeps) {
7475
- if (next && !visited.has(next)) {
7476
- stack.push(next);
7477
- }
7478
- }
7920
+ async function createWorkspaceEntry(projectId, entry) {
7921
+ const db2 = createAdminDbClient();
7922
+ const id = (0, import_crypto.randomUUID)();
7923
+ const now = (/* @__PURE__ */ new Date()).toISOString();
7924
+ const { data, error } = await db2.from("workspace_entries").insert({
7925
+ id,
7926
+ project_id: projectId,
7927
+ category: entry.category,
7928
+ name: entry.name,
7929
+ path: entry.path || null,
7930
+ purpose: entry.purpose || null,
7931
+ sort_order: 0,
7932
+ created_at: now,
7933
+ updated_at: now
7934
+ }).select().single();
7935
+ if (error) throw error;
7936
+ return data;
7937
+ }
7938
+ async function updateWorkspaceEntry(projectId, entryId, updates) {
7939
+ const db2 = createAdminDbClient();
7940
+ const payload = {};
7941
+ if (updates.name !== void 0) payload.name = updates.name;
7942
+ if (updates.path !== void 0) payload.path = updates.path;
7943
+ if (updates.purpose !== void 0) payload.purpose = updates.purpose;
7944
+ if (updates.sort_order !== void 0) payload.sort_order = updates.sort_order;
7945
+ const { data, error } = await db2.from("workspace_entries").update(payload).eq("id", entryId).eq("project_id", projectId).select().single();
7946
+ if (error) {
7947
+ if (error.code === "PGRST116") return null;
7948
+ throw error;
7479
7949
  }
7950
+ return data;
7480
7951
  }
7481
- function extractTitle(markdown) {
7482
- const { body } = parseFrontmatter(markdown);
7483
- const match = body.match(/^#\s+(.+)$/m);
7484
- return match ? match[1] : void 0;
7952
+ async function deleteWorkspaceEntry(projectId, entryId) {
7953
+ const db2 = createAdminDbClient();
7954
+ const { error } = await db2.from("workspace_entries").delete().eq("id", entryId).eq("project_id", projectId);
7955
+ if (error) throw error;
7485
7956
  }
7957
+ async function getWorkspaceMapForContext(projectId) {
7958
+ const db2 = createAdminDbClient();
7959
+ const { data, error } = await db2.from("workspace_entries").select("category, name, path, purpose").eq("project_id", projectId).order("category", { ascending: true }).order("sort_order", { ascending: true }).order("name", { ascending: true });
7960
+ if (error) {
7961
+ if (isMissingRelationError(error, "workspace_entries")) return [];
7962
+ throw error;
7963
+ }
7964
+ return (data || []).map((row) => ({
7965
+ location: `${row.category}/${row.name}`,
7966
+ path: row.path || null,
7967
+ purpose: row.purpose || null
7968
+ }));
7969
+ }
7970
+ var import_crypto, UUID_REGEX;
7971
+ var init_projects = __esm({
7972
+ "apps/local/lib/db/projects.ts"() {
7973
+ "use strict";
7974
+ import_crypto = require("crypto");
7975
+ init_db_adapter();
7976
+ init_vault_store();
7977
+ init_shared();
7978
+ init_types();
7979
+ UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
7980
+ }
7981
+ });
7982
+
7983
+ // apps/local/lib/db/tasks.ts
7486
7984
  function normalizeDescriptionBody(markdownBody) {
7487
7985
  return String(markdownBody || "").replace(/^#\s+.+(\r?\n|$)/, "").trim();
7488
7986
  }
@@ -7580,7 +8078,6 @@ async function createTask(content, userId, options) {
7580
8078
  const project = await getProjectWithRepos(projectId);
7581
8079
  if (project?.slug) projectSlug = project.slug;
7582
8080
  }
7583
- const hadFrontmatter = /^---\n/.test(content);
7584
8081
  const provider = typeof frontmatter.provider === "string" ? frontmatter.provider : null;
7585
8082
  const model = typeof frontmatter.model === "string" ? frontmatter.model : null;
7586
8083
  const engine = typeof frontmatter.engine === "string" ? frontmatter.engine : null;
@@ -7588,8 +8085,21 @@ async function createTask(content, userId, options) {
7588
8085
  const frontmatterDepends = normalizeDependsOnInput(frontmatter.depends_on);
7589
8086
  const optionDepends = normalizeDependsOnInput(options?.dependsOn);
7590
8087
  const dependsOn = optionDepends.length > 0 ? optionDepends : frontmatterDepends;
8088
+ let identifier = null;
8089
+ if (projectId) {
8090
+ try {
8091
+ const { data: projectRow } = await db2.from("projects").select("identifier_prefix, next_identifier").eq("id", projectId).single();
8092
+ if (projectRow && typeof projectRow.identifier_prefix === "string" && projectRow.identifier_prefix) {
8093
+ const n = typeof projectRow.next_identifier === "number" ? projectRow.next_identifier : 1;
8094
+ identifier = `${projectRow.identifier_prefix}-${n}`;
8095
+ await db2.from("projects").update({ next_identifier: n + 1 }).eq("id", projectId);
8096
+ }
8097
+ } catch {
8098
+ identifier = null;
8099
+ }
8100
+ }
7591
8101
  const insertPayload = {
7592
- id: (0, import_crypto.randomUUID)(),
8102
+ id: (0, import_crypto2.randomUUID)(),
7593
8103
  content,
7594
8104
  description: normalizeDescriptionBody(body),
7595
8105
  title,
@@ -7599,6 +8109,7 @@ async function createTask(content, userId, options) {
7599
8109
  project: projectSlug || null,
7600
8110
  ...projectId !== void 0 ? { project_id: projectId } : {},
7601
8111
  ...workflowId !== void 0 ? { workflow_id: workflowId } : {},
8112
+ ...identifier !== null ? { identifier } : {},
7602
8113
  priority: frontmatter.priority,
7603
8114
  engine,
7604
8115
  provider,
@@ -7608,7 +8119,6 @@ async function createTask(content, userId, options) {
7608
8119
  depends_on: dependsOn.length ? dependsOn : null,
7609
8120
  created_by: createdBy,
7610
8121
  user_id: userId,
7611
- // Working set fields
7612
8122
  current_plan: options?.currentPlan || null,
7613
8123
  open_blockers: options?.openBlockers || [],
7614
8124
  next_action: options?.nextAction || null,
@@ -7626,6 +8136,7 @@ async function createTask(content, userId, options) {
7626
8136
  next_action,
7627
8137
  version,
7628
8138
  depends_on,
8139
+ identifier: _identifier,
7629
8140
  ...fallbackPayload
7630
8141
  } = insertPayload;
7631
8142
  ({ data, error } = await db2.from("tasks").insert(fallbackPayload).select().single());
@@ -7692,7 +8203,6 @@ async function updateTask(id, content, userId, options) {
7692
8203
  swarm_models: options?.swarmModels ?? void 0,
7693
8204
  ...shouldUpdateDepends ? { depends_on: dependsOnForUpdate.length ? dependsOnForUpdate : null } : {},
7694
8205
  updated_at: (/* @__PURE__ */ new Date()).toISOString(),
7695
- // Working set fields
7696
8206
  current_plan: options?.currentPlan ?? void 0,
7697
8207
  open_blockers: options?.openBlockers ?? void 0,
7698
8208
  next_action: options?.nextAction ?? void 0
@@ -7705,14 +8215,8 @@ async function updateTask(id, content, userId, options) {
7705
8215
  if (shouldUpdateDepends) {
7706
8216
  await ensureNoCircularDependency(id, dependsOnForUpdate, db2);
7707
8217
  }
7708
- let query = db2.from("tasks").update({
7709
- ...updatePayload,
7710
- version: db2.rpc("increment_version")
7711
- // This will be used in the actual SQL via RPC or raw query if possible
7712
- }).eq("id", id);
7713
- if (userId) query = query.eq("user_id", userId);
7714
8218
  if (options?.expectedVersion !== void 0) {
7715
- query = query.eq("version", options.expectedVersion);
8219
+ void options.expectedVersion;
7716
8220
  }
7717
8221
  let { data, error } = await db2.from("tasks").update({
7718
8222
  ...updatePayload
@@ -7805,213 +8309,20 @@ async function getNextQueuedTask(engine) {
7805
8309
  }
7806
8310
  return data;
7807
8311
  }
7808
- async function getProjects(userId, includeArchived = false) {
7809
- const db2 = createAdminDbClient();
7810
- let query = db2.from("projects").select("*, project_repos(*)");
7811
- if (userId) query = query.eq("user_id", userId);
7812
- if (!includeArchived) query = query.is("archived_at", null);
7813
- const { data, error } = await query;
7814
- if (error) {
7815
- if (isMissingRelationError2(error, "projects")) {
7816
- return [];
7817
- }
7818
- throw error;
7819
- }
7820
- const projects = data || [];
7821
- return projects.map((project) => ({
7822
- ...project,
7823
- repos: project.project_repos ?? []
7824
- }));
7825
- }
7826
- async function getProjectBySlug(slug, userId) {
7827
- const db2 = createAdminDbClient();
7828
- let query = db2.from("projects").select("*").eq("slug", slug);
7829
- if (userId) query = query.eq("user_id", userId);
7830
- const { data, error } = await query.maybeSingle();
7831
- if (error) {
7832
- if (isMissingRelationError2(error, "projects")) {
7833
- return null;
7834
- }
7835
- throw error;
7836
- }
7837
- return data || null;
7838
- }
7839
- async function getProjectRepos(projectId) {
7840
- const db2 = createAdminDbClient();
7841
- const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
7842
- if (error) {
7843
- if (isMissingRelationError2(error, "project_repos")) {
7844
- return [];
7845
- }
7846
- throw error;
7847
- }
7848
- return data || [];
7849
- }
7850
- async function getProjectWithRepos(projectIdOrSlug, userId) {
7851
- const db2 = createAdminDbClient();
7852
- const isUuid = UUID_REGEX.test(projectIdOrSlug);
7853
- let projectQuery = db2.from("projects").select("*");
7854
- if (isUuid) {
7855
- projectQuery = projectQuery.eq("id", projectIdOrSlug);
7856
- } else {
7857
- projectQuery = projectQuery.eq("slug", projectIdOrSlug);
7858
- }
7859
- if (userId) projectQuery = projectQuery.eq("user_id", userId);
7860
- const projectResult = await projectQuery.maybeSingle();
7861
- if (projectResult.error) {
7862
- if (isMissingRelationError2(projectResult.error, "projects")) {
7863
- return null;
7864
- }
7865
- throw projectResult.error;
7866
- }
7867
- const project = projectResult.data;
7868
- if (!project) return null;
7869
- const repos = await getProjectRepos(project.id);
7870
- return { ...project, repos };
7871
- }
7872
- async function insertProjectRepos(projectId, repos, db2) {
7873
- if (!repos.length) {
7874
- return [];
7875
- }
7876
- const payload = repos.map((repo) => ({
7877
- ...repo.id ? { id: repo.id } : {},
7878
- project_id: projectId,
7879
- name: repo.name,
7880
- path: repo.path ?? null,
7881
- git_url: repo.git_url ?? null,
7882
- notes: repo.notes ?? null
7883
- }));
7884
- const { data, error } = await db2.from("project_repos").insert(payload).select("*");
7885
- if (error) {
7886
- if (isMissingRelationError2(error, "project_repos")) {
7887
- return [];
7888
- }
7889
- throw error;
7890
- }
7891
- return data || [];
7892
- }
7893
- async function createProject(userId, input, dbClient) {
7894
- if (!input.name?.trim()) {
7895
- throw new Error("Project name is required");
7896
- }
7897
- const db2 = getDbClient(dbClient);
7898
- const baseSlug = input.name.trim() || "project";
7899
- const slug = await generateUniqueProjectSlug(baseSlug, userId, db2);
7900
- const payload = {
7901
- user_id: userId,
7902
- name: input.name.trim(),
7903
- slug,
7904
- description: input.description ?? null,
7905
- workflow_id: input.workflow_id ?? null
7906
- };
7907
- const { data: project, error } = await db2.from("projects").insert(payload).select("*").single();
7908
- if (error) throw error;
7909
- const repos = await insertProjectRepos(project.id, input.repos ?? [], db2);
7910
- return { ...project, repos };
7911
- }
7912
- async function updateProject(projectIdOrSlug, userId, updates, dbClient) {
7913
- const db2 = getDbClient(dbClient);
7914
- const isUuid = UUID_REGEX.test(projectIdOrSlug);
7915
- let projectId = projectIdOrSlug;
7916
- if (!isUuid) {
7917
- const project = await getProjectBySlug(projectIdOrSlug, userId);
7918
- if (!project) return null;
7919
- projectId = project.id;
7920
- }
7921
- const updatePayload = {};
7922
- if (typeof updates.name !== "undefined") {
7923
- const trimmedName = updates.name?.trim();
7924
- if (!trimmedName) {
7925
- throw new Error("Project name cannot be empty");
7926
- }
7927
- updatePayload.name = trimmedName;
7928
- }
7929
- if (typeof updates.slug !== "undefined") {
7930
- const trimmedSlug = updates.slug?.trim();
7931
- if (trimmedSlug) {
7932
- updatePayload.slug = trimmedSlug;
7933
- }
7934
- }
7935
- if (typeof updates.description !== "undefined") updatePayload.description = updates.description;
7936
- if (typeof updates.metadata !== "undefined") updatePayload.metadata = updates.metadata;
7937
- if (typeof updates.ci_cd_info !== "undefined") updatePayload.ci_cd_info = updates.ci_cd_info;
7938
- if (typeof updates.workflow_id !== "undefined") updatePayload.workflow_id = updates.workflow_id;
7939
- if (Object.keys(updatePayload).length) {
7940
- const { error } = await db2.from("projects").update(updatePayload).eq("id", projectId).eq("user_id", userId);
7941
- if (error) throw error;
7942
- }
7943
- if (updates.repos) {
7944
- const { data: existingRepos, error: existingReposError } = await db2.from("project_repos").select("*").eq("project_id", projectId);
7945
- if (existingReposError && !isMissingRelationError2(existingReposError, "project_repos")) {
7946
- throw existingReposError;
7947
- }
7948
- const existingRepoList = existingRepos || [];
7949
- const existingRepoIds = new Set(existingRepoList.map((repo) => repo.id));
7950
- const nextRepoIds = new Set(
7951
- updates.repos.map((repo) => repo.id).filter((repoId) => Boolean(repoId))
7952
- );
7953
- for (const existingRepo of existingRepoList) {
7954
- if (nextRepoIds.has(existingRepo.id)) continue;
7955
- const { error: deleteError } = await db2.from("project_repos").delete().eq("id", existingRepo.id).eq("project_id", projectId);
7956
- if (deleteError && !isMissingRelationError2(deleteError, "project_repos")) {
7957
- throw deleteError;
7958
- }
7959
- }
7960
- for (const repo of updates.repos) {
7961
- const payload = {
7962
- name: repo.name,
7963
- path: repo.path ?? null,
7964
- git_url: repo.git_url ?? null,
7965
- notes: repo.notes ?? null,
7966
- project_id: projectId
7967
- };
7968
- if (repo.id && existingRepoIds.has(repo.id)) {
7969
- const { error: repoUpdateError } = await db2.from("project_repos").update(payload).eq("id", repo.id).eq("project_id", projectId);
7970
- if (repoUpdateError && !isMissingRelationError2(repoUpdateError, "project_repos")) {
7971
- throw repoUpdateError;
7972
- }
7973
- continue;
7974
- }
7975
- const { error: repoInsertError } = await db2.from("project_repos").insert({
7976
- ...repo.id ? { id: repo.id } : {},
7977
- ...payload
7978
- });
7979
- if (repoInsertError && !isMissingRelationError2(repoInsertError, "project_repos")) {
7980
- throw repoInsertError;
7981
- }
7982
- }
7983
- }
7984
- return getProjectWithRepos(projectId, userId);
7985
- }
7986
- async function deleteProject(projectId, userId, dbClient) {
7987
- const db2 = getDbClient(dbClient);
7988
- const { error } = await db2.from("projects").update({ archived_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", projectId).eq("user_id", userId);
7989
- if (error) throw error;
7990
- }
7991
- async function assignOrphanTasksToProject(projectId, userId, dbClient) {
7992
- const db2 = getDbClient(dbClient);
7993
- const project = await getProjectWithRepos(projectId, userId);
7994
- if (!project) {
7995
- throw new Error("Project not found");
7996
- }
7997
- const { data: tasks, error: tasksError } = await db2.from("tasks").select("id, project").eq("user_id", userId).is("project_id", null);
7998
- if (tasksError) throw tasksError;
7999
- const slug = String(project.slug || "").trim().toLowerCase();
8000
- const orphanTaskIds = (tasks || []).filter((task) => {
8001
- const projectValue = String(task.project || "").trim().toLowerCase();
8002
- return !projectValue || projectValue === "none" || projectValue === slug;
8003
- }).map((task) => task.id);
8004
- if (!orphanTaskIds.length) {
8005
- return { updatedCount: 0, taskIds: [] };
8312
+ var import_crypto2;
8313
+ var init_tasks = __esm({
8314
+ "apps/local/lib/db/tasks.ts"() {
8315
+ "use strict";
8316
+ import_crypto2 = require("crypto");
8317
+ init_db_adapter();
8318
+ init_dependency_helpers();
8319
+ init_notifications();
8320
+ init_projects();
8321
+ init_shared();
8006
8322
  }
8007
- const { error: updateError } = await db2.from("tasks").update({
8008
- project: project.slug,
8009
- project_id: project.id,
8010
- updated_at: (/* @__PURE__ */ new Date()).toISOString()
8011
- }).eq("user_id", userId).is("project_id", null).in("id", orphanTaskIds);
8012
- if (updateError) throw updateError;
8013
- return { updatedCount: orphanTaskIds.length, taskIds: orphanTaskIds };
8014
- }
8323
+ });
8324
+
8325
+ // apps/local/lib/db/workflows.ts
8015
8326
  async function ensureDefaultWorkflowGraphExists(userId) {
8016
8327
  const db2 = createAdminDbClient();
8017
8328
  const ownerId = userId || DEFAULT_SYSTEM_USER_ID;
@@ -8039,9 +8350,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
8039
8350
  {
8040
8351
  workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
8041
8352
  from_node_id: "00000000-0000-0000-0001-000000000001",
8042
- // INTAKE
8043
8353
  to_node_id: "00000000-0000-0000-0001-000000000002",
8044
- // PROGRESS
8045
8354
  condition: "done",
8046
8355
  priority: 0,
8047
8356
  metadata: {}
@@ -8049,9 +8358,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
8049
8358
  {
8050
8359
  workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
8051
8360
  from_node_id: "00000000-0000-0000-0001-000000000002",
8052
- // PROGRESS
8053
8361
  to_node_id: "00000000-0000-0000-0001-000000000003",
8054
- // DONE
8055
8362
  condition: "done",
8056
8363
  priority: 0,
8057
8364
  metadata: {}
@@ -8065,7 +8372,7 @@ async function getWorkflows(userId) {
8065
8372
  const db2 = createAdminDbClient();
8066
8373
  const { data, error } = await db2.from("workflows").select("*").or(`user_id.eq.${userId},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at", { ascending: false });
8067
8374
  if (error) {
8068
- if (isMissingRelationError2(error, "workflows")) return [];
8375
+ if (isMissingRelationError(error, "workflows")) return [];
8069
8376
  throw error;
8070
8377
  }
8071
8378
  return data || [];
@@ -8073,17 +8380,17 @@ async function getWorkflows(userId) {
8073
8380
  async function getWorkflow(id, userId) {
8074
8381
  const db2 = createAdminDbClient();
8075
8382
  let query = db2.from("workflows").select("*").eq("id", id);
8076
- if (userId) {
8077
- }
8383
+ void userId;
8078
8384
  const { data, error } = await query.maybeSingle();
8079
8385
  if (error) {
8080
- if (isMissingRelationError2(error, "workflows")) return null;
8386
+ if (isMissingRelationError(error, "workflows")) return null;
8081
8387
  throw error;
8082
8388
  }
8083
8389
  return data;
8084
8390
  }
8085
8391
  async function updateWorkflow(id, userId, updates) {
8086
8392
  const db2 = createAdminDbClient();
8393
+ void userId;
8087
8394
  const payload = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
8088
8395
  if (updates.definition !== void 0) payload.definition = updates.definition;
8089
8396
  if (updates.name !== void 0) payload.name = updates.name;
@@ -8096,7 +8403,7 @@ async function getWorkflowNodes(workflowId) {
8096
8403
  const db2 = createAdminDbClient();
8097
8404
  const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).order("position", { ascending: true });
8098
8405
  if (error) {
8099
- if (isMissingRelationError2(error, "workflow_nodes")) return [];
8406
+ if (isMissingRelationError(error, "workflow_nodes")) return [];
8100
8407
  throw error;
8101
8408
  }
8102
8409
  return data || [];
@@ -8149,7 +8456,7 @@ async function getWorkflowNodeByName(workflowId, name) {
8149
8456
  const db2 = createAdminDbClient();
8150
8457
  const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).eq("name", name).maybeSingle();
8151
8458
  if (error) {
8152
- if (isMissingRelationError2(error, "workflow_nodes")) return null;
8459
+ if (isMissingRelationError(error, "workflow_nodes")) return null;
8153
8460
  throw error;
8154
8461
  }
8155
8462
  return data;
@@ -8158,7 +8465,7 @@ async function getWorkflowTransitions(workflowId) {
8158
8465
  const db2 = createAdminDbClient();
8159
8466
  const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).order("priority", { ascending: true });
8160
8467
  if (error) {
8161
- if (isMissingRelationError2(error, "workflow_transitions")) return [];
8468
+ if (isMissingRelationError(error, "workflow_transitions")) return [];
8162
8469
  throw error;
8163
8470
  }
8164
8471
  return data || [];
@@ -8167,7 +8474,7 @@ async function getWorkflowTransitionsFromNode(workflowId, fromNodeId) {
8167
8474
  const db2 = createAdminDbClient();
8168
8475
  const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).eq("from_node_id", fromNodeId).order("priority", { ascending: true });
8169
8476
  if (error) {
8170
- if (isMissingRelationError2(error, "workflow_transitions")) return [];
8477
+ if (isMissingRelationError(error, "workflow_transitions")) return [];
8171
8478
  throw error;
8172
8479
  }
8173
8480
  return data || [];
@@ -8184,6 +8491,115 @@ async function getWorkflowWithGraph(id, userId) {
8184
8491
  function getDefaultWorkflowId() {
8185
8492
  return DEFAULT_SDLC_WORKFLOW_ID;
8186
8493
  }
8494
+ async function getStagePrompts(userId, workflowId) {
8495
+ const db2 = createAdminDbClient();
8496
+ let query = db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).order("stage", { ascending: true });
8497
+ if (userId) {
8498
+ query = query.or(`user_id.eq.${userId},is_default.eq.true`);
8499
+ } else {
8500
+ query = query.eq("is_default", true);
8501
+ }
8502
+ const { data, error } = await query;
8503
+ if (error) throw error;
8504
+ return data || [];
8505
+ }
8506
+ async function getStagePrompt(stage, userId, workflowId) {
8507
+ const db2 = createAdminDbClient();
8508
+ if (userId) {
8509
+ const { data: userPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("user_id", userId).single();
8510
+ if (userPrompt) return userPrompt;
8511
+ }
8512
+ const { data: defaultPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("is_default", true).single();
8513
+ return defaultPrompt || null;
8514
+ }
8515
+ async function upsertStagePrompt(stage, prompt, outputs = [], userId, modelConfig, workflowId) {
8516
+ const db2 = createAdminDbClient();
8517
+ const payload = {
8518
+ stage,
8519
+ prompt,
8520
+ outputs,
8521
+ user_id: userId,
8522
+ is_default: !userId,
8523
+ workflow_id: workflowId
8524
+ };
8525
+ if (modelConfig) {
8526
+ if (modelConfig.swarm !== void 0) payload.swarm = modelConfig.swarm;
8527
+ if (modelConfig.provider !== void 0) payload.provider = modelConfig.provider;
8528
+ if (modelConfig.model !== void 0) payload.model = modelConfig.model;
8529
+ if (modelConfig.swarm_models !== void 0) payload.swarm_models = modelConfig.swarm_models;
8530
+ }
8531
+ const { data, error } = await db2.from("stage_prompts").upsert(payload, {
8532
+ onConflict: userId ? "workflow_id,stage,user_id" : "workflow_id,stage,is_default"
8533
+ }).select().single();
8534
+ if (error) throw error;
8535
+ return data;
8536
+ }
8537
+ async function deleteStagePrompt(id, userId) {
8538
+ const db2 = createAdminDbClient();
8539
+ let query = db2.from("stage_prompts").delete().eq("id", id);
8540
+ if (userId) query = query.eq("user_id", userId);
8541
+ const { error } = await query;
8542
+ if (error) throw error;
8543
+ }
8544
+ var DEFAULT_SDLC_WORKFLOW_ID, DEFAULT_SYSTEM_USER_ID, DEFAULT_WORKFLOW_NODE_SEED, DEFAULT_WORKFLOW_NODE_SEED_BY_ID, defaultStagePrompts, DEFAULT_WORKFLOW_ID;
8545
+ var init_workflows = __esm({
8546
+ "apps/local/lib/db/workflows.ts"() {
8547
+ "use strict";
8548
+ init_db_adapter();
8549
+ init_shared();
8550
+ DEFAULT_SDLC_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
8551
+ DEFAULT_SYSTEM_USER_ID = "00000000-0000-0000-0000-000000000000";
8552
+ DEFAULT_WORKFLOW_NODE_SEED = [
8553
+ {
8554
+ id: "00000000-0000-0000-0001-000000000001",
8555
+ name: "INTAKE",
8556
+ label: "Intake",
8557
+ prompt: "New task. Triage, scope, and prepare for work.",
8558
+ position: 0,
8559
+ node_type: "step"
8560
+ },
8561
+ {
8562
+ id: "00000000-0000-0000-0001-000000000002",
8563
+ name: "PROGRESS",
8564
+ label: "Progress",
8565
+ prompt: "Task is actively being worked on.",
8566
+ position: 1,
8567
+ node_type: "step"
8568
+ },
8569
+ {
8570
+ id: "00000000-0000-0000-0001-000000000003",
8571
+ name: "DONE",
8572
+ label: "Done",
8573
+ prompt: "Task completed.",
8574
+ position: 2,
8575
+ node_type: "terminal"
8576
+ }
8577
+ ];
8578
+ DEFAULT_WORKFLOW_NODE_SEED_BY_ID = new Map(
8579
+ DEFAULT_WORKFLOW_NODE_SEED.map((node) => [node.id, node])
8580
+ );
8581
+ defaultStagePrompts = {
8582
+ INTAKE: {
8583
+ prompt: "New task. Triage, scope, and prepare for work.",
8584
+ outputs: [],
8585
+ swarm: false
8586
+ },
8587
+ PROGRESS: {
8588
+ prompt: "Task is actively being worked on.",
8589
+ outputs: [],
8590
+ swarm: false
8591
+ },
8592
+ DONE: {
8593
+ prompt: "Task completed.",
8594
+ outputs: [],
8595
+ swarm: false
8596
+ }
8597
+ };
8598
+ DEFAULT_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
8599
+ }
8600
+ });
8601
+
8602
+ // apps/local/lib/db/task-logs.ts
8187
8603
  async function getTaskLogs(taskId, options = {}) {
8188
8604
  const db2 = createAdminDbClient();
8189
8605
  const limit = Math.max(1, Math.min(2e3, Number(options.limit ?? options.tail ?? 500)));
@@ -8214,6 +8630,14 @@ async function addTaskLog(taskId, content, logType, nodeId) {
8214
8630
  if (error) throw error;
8215
8631
  return data;
8216
8632
  }
8633
+ var init_task_logs = __esm({
8634
+ "apps/local/lib/db/task-logs.ts"() {
8635
+ "use strict";
8636
+ init_db_adapter();
8637
+ }
8638
+ });
8639
+
8640
+ // apps/local/lib/db/task-costs.ts
8217
8641
  function normalizeTokenCount(value) {
8218
8642
  const parsed = Number(value ?? 0);
8219
8643
  if (!Number.isFinite(parsed)) return 0;
@@ -8283,6 +8707,14 @@ async function getTaskCostSummary(taskId) {
8283
8707
  const entries = await getTaskCostEntries(taskId);
8284
8708
  return summarizeTaskCosts(entries);
8285
8709
  }
8710
+ var init_task_costs = __esm({
8711
+ "apps/local/lib/db/task-costs.ts"() {
8712
+ "use strict";
8713
+ init_db_adapter();
8714
+ }
8715
+ });
8716
+
8717
+ // apps/local/lib/db/task-comments.ts
8286
8718
  async function getTaskComments(taskId) {
8287
8719
  const db2 = createAdminDbClient();
8288
8720
  const { data, error } = await db2.from("task_comments").select("*").eq("task_id", taskId).is("deleted_at", null).order("created_at", { ascending: true }).order("id", { ascending: true });
@@ -8306,6 +8738,14 @@ async function deleteTaskComment(commentId, userId) {
8306
8738
  const { error } = await db2.from("task_comments").update({ deleted_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", commentId).is("deleted_at", null);
8307
8739
  if (error) throw error;
8308
8740
  }
8741
+ var init_task_comments = __esm({
8742
+ "apps/local/lib/db/task-comments.ts"() {
8743
+ "use strict";
8744
+ init_db_adapter();
8745
+ }
8746
+ });
8747
+
8748
+ // apps/local/lib/db/learnings.ts
8309
8749
  async function getLearnings(scope, scopeId, userId) {
8310
8750
  if (scope !== "task") {
8311
8751
  return vaultStore.getLearnings(scope, scopeId);
@@ -8343,61 +8783,21 @@ async function deleteLearning(id, userId) {
8343
8783
  const { error } = await query;
8344
8784
  if (error) throw error;
8345
8785
  }
8346
- async function getStagePrompts(userId, workflowId) {
8347
- const db2 = createAdminDbClient();
8348
- let query = db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).order("stage", { ascending: true });
8349
- if (userId) {
8350
- query = query.or(`user_id.eq.${userId},is_default.eq.true`);
8351
- } else {
8352
- query = query.eq("is_default", true);
8353
- }
8354
- const { data, error } = await query;
8355
- if (error) throw error;
8356
- return data || [];
8357
- }
8358
- async function getStagePrompt(stage, userId, workflowId) {
8359
- const db2 = createAdminDbClient();
8360
- if (userId) {
8361
- const { data: userPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("user_id", userId).single();
8362
- if (userPrompt) return userPrompt;
8363
- }
8364
- const { data: defaultPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("is_default", true).single();
8365
- return defaultPrompt || null;
8366
- }
8367
- async function upsertStagePrompt(stage, prompt, outputs = [], userId, modelConfig, workflowId) {
8368
- const db2 = createAdminDbClient();
8369
- const payload = {
8370
- stage,
8371
- prompt,
8372
- outputs,
8373
- user_id: userId,
8374
- is_default: !userId,
8375
- workflow_id: workflowId
8376
- };
8377
- if (modelConfig) {
8378
- if (modelConfig.swarm !== void 0) payload.swarm = modelConfig.swarm;
8379
- if (modelConfig.provider !== void 0) payload.provider = modelConfig.provider;
8380
- if (modelConfig.model !== void 0) payload.model = modelConfig.model;
8381
- if (modelConfig.swarm_models !== void 0) payload.swarm_models = modelConfig.swarm_models;
8786
+ var init_learnings = __esm({
8787
+ "apps/local/lib/db/learnings.ts"() {
8788
+ "use strict";
8789
+ init_db_adapter();
8790
+ init_vault_store();
8791
+ init_projects();
8382
8792
  }
8383
- const { data, error } = await db2.from("stage_prompts").upsert(payload, {
8384
- onConflict: userId ? "workflow_id,stage,user_id" : "workflow_id,stage,is_default"
8385
- }).select().single();
8386
- if (error) throw error;
8387
- return data;
8388
- }
8389
- async function deleteStagePrompt(id, userId) {
8390
- const db2 = createAdminDbClient();
8391
- let query = db2.from("stage_prompts").delete().eq("id", id);
8392
- if (userId) query = query.eq("user_id", userId);
8393
- const { error } = await query;
8394
- if (error) throw error;
8395
- }
8793
+ });
8794
+
8795
+ // apps/local/lib/db/agents.ts
8396
8796
  async function getAgents(userId) {
8397
8797
  const db2 = createAdminDbClient();
8398
8798
  const { data, error } = await db2.from("agents").select("*").eq("user_id", userId).order("created_at", { ascending: false });
8399
8799
  if (error) {
8400
- if (isMissingRelationError2(error, "agents")) return [];
8800
+ if (isMissingRelationError(error, "agents")) return [];
8401
8801
  throw error;
8402
8802
  }
8403
8803
  return data || [];
@@ -8406,7 +8806,7 @@ async function getAgent(id, userId) {
8406
8806
  const db2 = createAdminDbClient();
8407
8807
  const { data, error } = await db2.from("agents").select("*").eq("id", id).eq("user_id", userId).maybeSingle();
8408
8808
  if (error) {
8409
- if (error.code === "PGRST116" || isMissingRelationError2(error, "agents")) return null;
8809
+ if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
8410
8810
  throw error;
8411
8811
  }
8412
8812
  return data;
@@ -8415,7 +8815,7 @@ async function getAgentSkills(agentId) {
8415
8815
  const db2 = createAdminDbClient();
8416
8816
  const { data, error } = await db2.from("agent_skills").select("*").eq("agent_id", agentId).order("created_at", { ascending: true });
8417
8817
  if (error) {
8418
- if (isMissingRelationError2(error, "agent_skills")) return [];
8818
+ if (isMissingRelationError(error, "agent_skills")) return [];
8419
8819
  throw error;
8420
8820
  }
8421
8821
  return data || [];
@@ -8436,19 +8836,19 @@ async function setAgentSkills(agentId, skills) {
8436
8836
  for (const skill of existing) {
8437
8837
  if (!normalized.has(skill.file)) {
8438
8838
  const { error } = await db2.from("agent_skills").delete().eq("agent_id", agentId).eq("file", skill.file);
8439
- if (error && !isMissingRelationError2(error, "agent_skills")) throw error;
8839
+ if (error && !isMissingRelationError(error, "agent_skills")) throw error;
8440
8840
  }
8441
8841
  }
8442
8842
  for (const entry of normalized.values()) {
8443
8843
  const existingSkill = existing.find((skill) => skill.file === entry.file);
8444
8844
  if (!existingSkill) {
8445
8845
  const { error } = await db2.from("agent_skills").insert(entry);
8446
- if (error && !isMissingRelationError2(error, "agent_skills")) throw error;
8846
+ if (error && !isMissingRelationError(error, "agent_skills")) throw error;
8447
8847
  continue;
8448
8848
  }
8449
8849
  if ((existingSkill.condition ?? null) !== entry.condition) {
8450
8850
  const { error } = await db2.from("agent_skills").update({ condition: entry.condition }).eq("agent_id", agentId).eq("file", entry.file);
8451
- if (error && !isMissingRelationError2(error, "agent_skills")) throw error;
8851
+ if (error && !isMissingRelationError(error, "agent_skills")) throw error;
8452
8852
  }
8453
8853
  }
8454
8854
  return getAgentSkills(agentId);
@@ -8470,7 +8870,7 @@ async function createAgent(userId, input) {
8470
8870
  if (input.color !== void 0) payload.color = input.color;
8471
8871
  const { data, error } = await db2.from("agents").insert(payload).select().single();
8472
8872
  if (error) {
8473
- if (isMissingRelationError2(error, "agents")) {
8873
+ if (isMissingRelationError(error, "agents")) {
8474
8874
  throw new Error("Agents table does not exist");
8475
8875
  }
8476
8876
  throw error;
@@ -8494,7 +8894,7 @@ async function updateAgent(id, userId, input) {
8494
8894
  }
8495
8895
  const { data, error } = await db2.from("agents").update(updatePayload).eq("id", id).eq("user_id", userId).select().single();
8496
8896
  if (error) {
8497
- if (error.code === "PGRST116" || isMissingRelationError2(error, "agents")) return null;
8897
+ if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
8498
8898
  throw error;
8499
8899
  }
8500
8900
  return data;
@@ -8503,47 +8903,25 @@ async function deleteAgent(id, userId) {
8503
8903
  const db2 = createAdminDbClient();
8504
8904
  const { error } = await db2.from("agents").delete().eq("id", id).eq("user_id", userId);
8505
8905
  if (error) {
8506
- if (!isMissingRelationError2(error, "agents")) {
8906
+ if (!isMissingRelationError(error, "agents")) {
8507
8907
  throw error;
8508
8908
  }
8509
8909
  }
8510
8910
  }
8511
- async function getProjectAgents(projectId) {
8512
- const db2 = createAdminDbClient();
8513
- const { data, error } = await db2.from("project_agents").select("*").eq("project_id", projectId).order("routing_order", { ascending: true });
8514
- if (error) {
8515
- if (isMissingRelationError2(error, "project_agents")) return [];
8516
- throw error;
8517
- }
8518
- return data || [];
8519
- }
8520
- async function addProjectAgent(projectId, agentId, routingOrder) {
8521
- const db2 = createAdminDbClient();
8522
- if (routingOrder === void 0) {
8523
- const { data: existing } = await db2.from("project_agents").select("routing_order").eq("project_id", projectId).order("routing_order", { ascending: false }).limit(1);
8524
- routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
8525
- }
8526
- const { data, error } = await db2.from("project_agents").upsert({ project_id: projectId, agent_id: agentId, routing_order: routingOrder }).select().single();
8527
- if (error) throw error;
8528
- return data;
8529
- }
8530
- async function removeProjectAgent(projectId, agentId) {
8531
- const db2 = createAdminDbClient();
8532
- const { error } = await db2.from("project_agents").delete().eq("project_id", projectId).eq("agent_id", agentId);
8533
- if (error) throw error;
8534
- }
8535
- async function reorderProjectAgents(projectId, orderedAgentIds) {
8536
- const db2 = createAdminDbClient();
8537
- for (let i = 0; i < orderedAgentIds.length; i++) {
8538
- await db2.from("project_agents").update({ routing_order: i }).eq("project_id", projectId).eq("agent_id", orderedAgentIds[i]);
8911
+ var init_agents = __esm({
8912
+ "apps/local/lib/db/agents.ts"() {
8913
+ "use strict";
8914
+ init_db_adapter();
8915
+ init_shared();
8539
8916
  }
8540
- return getProjectAgents(projectId);
8541
- }
8917
+ });
8918
+
8919
+ // apps/local/lib/db/teams.ts
8542
8920
  async function getTeams(projectId) {
8543
8921
  const db2 = createAdminDbClient();
8544
8922
  const { data, error } = await db2.from("teams").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
8545
8923
  if (error) {
8546
- if (isMissingRelationError2(error, "teams")) return [];
8924
+ if (isMissingRelationError(error, "teams")) return [];
8547
8925
  throw error;
8548
8926
  }
8549
8927
  return (data || []).map((row) => ({
@@ -8555,7 +8933,7 @@ async function getTeam(teamId) {
8555
8933
  const db2 = createAdminDbClient();
8556
8934
  const { data, error } = await db2.from("teams").select("*").eq("id", teamId).limit(1).single();
8557
8935
  if (error) {
8558
- if (error.code === "PGRST116" || isMissingRelationError2(error, "teams")) return null;
8936
+ if (error.code === "PGRST116" || isMissingRelationError(error, "teams")) return null;
8559
8937
  throw error;
8560
8938
  }
8561
8939
  if (!data) return null;
@@ -8566,7 +8944,7 @@ async function getTeam(teamId) {
8566
8944
  }
8567
8945
  async function createTeam(projectId, name, templateId, metadata) {
8568
8946
  const db2 = createAdminDbClient();
8569
- const id = (0, import_crypto.randomUUID)();
8947
+ const id = (0, import_crypto3.randomUUID)();
8570
8948
  const now = (/* @__PURE__ */ new Date()).toISOString();
8571
8949
  const { data, error } = await db2.from("teams").insert({
8572
8950
  id,
@@ -8607,7 +8985,7 @@ async function getTeamAgents(teamId) {
8607
8985
  const db2 = createAdminDbClient();
8608
8986
  const { data, error } = await db2.from("team_agents").select("*").eq("team_id", teamId).order("routing_order", { ascending: true });
8609
8987
  if (error) {
8610
- if (isMissingRelationError2(error, "team_agents")) return [];
8988
+ if (isMissingRelationError(error, "team_agents")) return [];
8611
8989
  throw error;
8612
8990
  }
8613
8991
  return data || [];
@@ -8627,90 +9005,17 @@ async function removeTeamAgent(teamId, agentId) {
8627
9005
  const { error } = await db2.from("team_agents").delete().eq("team_id", teamId).eq("agent_id", agentId);
8628
9006
  if (error) throw error;
8629
9007
  }
8630
- async function getProjectSkills(projectId) {
8631
- const db2 = createAdminDbClient();
8632
- const { data, error } = await db2.from("project_skills").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
8633
- if (error) {
8634
- if (isMissingRelationError2(error, "project_skills")) return [];
8635
- throw error;
8636
- }
8637
- return data || [];
8638
- }
8639
- async function addProjectSkill(projectId, file, condition) {
8640
- const db2 = createAdminDbClient();
8641
- const { data, error } = await db2.from("project_skills").insert({ project_id: projectId, file, condition: condition ?? null }).select().single();
8642
- if (error) throw error;
8643
- return data;
8644
- }
8645
- async function removeProjectSkill(skillId) {
8646
- const db2 = createAdminDbClient();
8647
- const { error } = await db2.from("project_skills").delete().eq("id", skillId);
8648
- if (error) throw error;
8649
- }
8650
- async function getProjectVariables(projectId) {
8651
- const db2 = createAdminDbClient();
8652
- const { data, error } = await db2.from("project_variables").select("*").eq("project_id", projectId);
8653
- if (error) {
8654
- if (isMissingRelationError2(error, "project_variables")) return [];
8655
- throw error;
8656
- }
8657
- return data || [];
8658
- }
8659
- async function setProjectVariable(projectId, key, value) {
8660
- const db2 = createAdminDbClient();
8661
- const { data, error } = await db2.from("project_variables").upsert({ project_id: projectId, key, value }).select().single();
8662
- if (error) throw error;
8663
- return data;
8664
- }
8665
- async function deleteProjectVariable(projectId, key) {
8666
- const db2 = createAdminDbClient();
8667
- const { error } = await db2.from("project_variables").delete().eq("project_id", projectId).eq("key", key);
8668
- if (error) throw error;
8669
- }
8670
- async function getProjectMemory(projectId, producer) {
8671
- void producer;
8672
- return vaultStore.getProjectMemory(projectId);
8673
- }
8674
- async function addProjectMemory(projectId, content, source, producer = "human") {
8675
- return vaultStore.addProjectMemory(projectId, content, source, producer);
8676
- }
8677
- async function deleteProjectMemory(memoryId) {
8678
- vaultStore.deleteProjectMemory(memoryId);
8679
- }
8680
- async function getProjectThreads(projectId) {
8681
- const db2 = createAdminDbClient();
8682
- const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
8683
- if (error) {
8684
- if (isMissingRelationError2(error, "project_threads")) return [];
8685
- throw error;
8686
- }
8687
- return data || [];
8688
- }
8689
- async function addProjectThread(projectId, threadId) {
8690
- const db2 = createAdminDbClient();
8691
- const { error } = await db2.from("project_threads").upsert(
8692
- { project_id: projectId, thread_id: threadId },
8693
- { onConflict: "project_id,thread_id", ignoreDuplicates: true }
8694
- );
8695
- if (error) throw error;
8696
- const { data, error: fetchError } = await db2.from("project_threads").select("*").eq("project_id", projectId).eq("thread_id", threadId).single();
8697
- if (fetchError) throw fetchError;
8698
- return data;
8699
- }
8700
- async function removeProjectThread(projectId, threadId) {
8701
- const db2 = createAdminDbClient();
8702
- const { error } = await db2.from("project_threads").delete().eq("project_id", projectId).eq("thread_id", threadId);
8703
- if (error) throw error;
8704
- }
8705
- async function getProjectForThread(threadId) {
8706
- const db2 = createAdminDbClient();
8707
- const { data, error } = await db2.from("project_threads").select("project_id").eq("thread_id", threadId).maybeSingle();
8708
- if (error) {
8709
- if (isMissingRelationError2(error, "project_threads")) return null;
8710
- return null;
9008
+ var import_crypto3;
9009
+ var init_teams = __esm({
9010
+ "apps/local/lib/db/teams.ts"() {
9011
+ "use strict";
9012
+ import_crypto3 = require("crypto");
9013
+ init_db_adapter();
9014
+ init_shared();
8711
9015
  }
8712
- return data?.project_id ?? null;
8713
- }
9016
+ });
9017
+
9018
+ // apps/local/lib/db/resolution.ts
8714
9019
  function resolveSkills(agentSkills, projectSkills) {
8715
9020
  const result = [];
8716
9021
  const agentFileNames = /* @__PURE__ */ new Set();
@@ -8742,6 +9047,7 @@ async function resolveVariables(projectId) {
8742
9047
  return vars.map((v) => ({ key: v.key, value: v.value, source: "project" }));
8743
9048
  }
8744
9049
  async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMemoryEntries) {
9050
+ void agentId;
8745
9051
  const projectSkills = await getProjectSkills(projectId);
8746
9052
  const projectMem = await getProjectMemory(projectId);
8747
9053
  const variables = await resolveVariables(projectId);
@@ -8751,65 +9057,141 @@ async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMe
8751
9057
  variables
8752
9058
  };
8753
9059
  }
8754
- var import_crypto, UUID_REGEX, DEFAULT_SDLC_WORKFLOW_ID, DEFAULT_SYSTEM_USER_ID, DEFAULT_WORKFLOW_NODE_SEED, DEFAULT_WORKFLOW_NODE_SEED_BY_ID, defaultStagePrompts, DEFAULT_WORKFLOW_ID;
9060
+ var init_resolution = __esm({
9061
+ "apps/local/lib/db/resolution.ts"() {
9062
+ "use strict";
9063
+ init_projects();
9064
+ }
9065
+ });
9066
+
9067
+ // apps/local/lib/db/index.ts
8755
9068
  var init_db = __esm({
9069
+ "apps/local/lib/db/index.ts"() {
9070
+ "use strict";
9071
+ init_types();
9072
+ init_shared();
9073
+ init_user_settings();
9074
+ init_tasks();
9075
+ init_projects();
9076
+ init_workflows();
9077
+ init_task_logs();
9078
+ init_task_costs();
9079
+ init_task_comments();
9080
+ init_learnings();
9081
+ init_agents();
9082
+ init_teams();
9083
+ init_resolution();
9084
+ }
9085
+ });
9086
+
9087
+ // apps/local/lib/db.ts
9088
+ var db_exports = {};
9089
+ __export(db_exports, {
9090
+ DEFAULT_WORKFLOW_ID: () => DEFAULT_WORKFLOW_ID,
9091
+ IDENTIFIER_PREFIX_REGEX: () => IDENTIFIER_PREFIX_REGEX,
9092
+ addLearning: () => addLearning,
9093
+ addProjectAgent: () => addProjectAgent,
9094
+ addProjectMemory: () => addProjectMemory,
9095
+ addProjectSkill: () => addProjectSkill,
9096
+ addProjectThread: () => addProjectThread,
9097
+ addTaskComment: () => addTaskComment,
9098
+ addTaskCostEntry: () => addTaskCostEntry,
9099
+ addTaskLog: () => addTaskLog,
9100
+ addTeamAgent: () => addTeamAgent,
9101
+ appendRunToIndex: () => appendRunToIndex,
9102
+ assignOrphanTasksToProject: () => assignOrphanTasksToProject,
9103
+ buildExecutionProvenance: () => buildExecutionProvenance,
9104
+ createAgent: () => createAgent,
9105
+ createProject: () => createProject,
9106
+ createTask: () => createTask,
9107
+ createTeam: () => createTeam,
9108
+ createWorkspaceEntry: () => createWorkspaceEntry,
9109
+ defaultStagePrompts: () => defaultStagePrompts,
9110
+ deleteAgent: () => deleteAgent,
9111
+ deleteLearning: () => deleteLearning,
9112
+ deleteProject: () => deleteProject,
9113
+ deleteProjectMemory: () => deleteProjectMemory,
9114
+ deleteProjectVariable: () => deleteProjectVariable,
9115
+ deleteStagePrompt: () => deleteStagePrompt,
9116
+ deleteTask: () => deleteTask,
9117
+ deleteTaskComment: () => deleteTaskComment,
9118
+ deleteTeam: () => deleteTeam,
9119
+ deleteWorkspaceEntry: () => deleteWorkspaceEntry,
9120
+ ensureNoCircularDependency: () => ensureNoCircularDependency,
9121
+ extractTitle: () => extractTitle,
9122
+ generateUniqueProjectSlug: () => generateUniqueProjectSlug,
9123
+ generateUniqueSlug: () => generateUniqueSlug,
9124
+ getAgent: () => getAgent,
9125
+ getAgentSkills: () => getAgentSkills,
9126
+ getAgents: () => getAgents,
9127
+ getDbClient: () => getDbClient,
9128
+ getDefaultWorkflowId: () => getDefaultWorkflowId,
9129
+ getLearnings: () => getLearnings,
9130
+ getNextQueuedTask: () => getNextQueuedTask,
9131
+ getProjectAgents: () => getProjectAgents,
9132
+ getProjectBySlug: () => getProjectBySlug,
9133
+ getProjectForThread: () => getProjectForThread,
9134
+ getProjectMemory: () => getProjectMemory,
9135
+ getProjectRepos: () => getProjectRepos,
9136
+ getProjectSkills: () => getProjectSkills,
9137
+ getProjectThreads: () => getProjectThreads,
9138
+ getProjectVariables: () => getProjectVariables,
9139
+ getProjectWithRepos: () => getProjectWithRepos,
9140
+ getProjectWorkspace: () => getProjectWorkspace,
9141
+ getProjects: () => getProjects,
9142
+ getStagePrompt: () => getStagePrompt,
9143
+ getStagePrompts: () => getStagePrompts,
9144
+ getTask: () => getTask,
9145
+ getTaskBySlug: () => getTaskBySlug,
9146
+ getTaskComments: () => getTaskComments,
9147
+ getTaskCostEntries: () => getTaskCostEntries,
9148
+ getTaskCostSummary: () => getTaskCostSummary,
9149
+ getTaskLogs: () => getTaskLogs,
9150
+ getTasks: () => getTasks,
9151
+ getTeam: () => getTeam,
9152
+ getTeamAgents: () => getTeamAgents,
9153
+ getTeams: () => getTeams,
9154
+ getUserSettings: () => getUserSettings,
9155
+ getWorkflow: () => getWorkflow,
9156
+ getWorkflowNodeByName: () => getWorkflowNodeByName,
9157
+ getWorkflowNodes: () => getWorkflowNodes,
9158
+ getWorkflowTransitions: () => getWorkflowTransitions,
9159
+ getWorkflowTransitionsFromNode: () => getWorkflowTransitionsFromNode,
9160
+ getWorkflowWithGraph: () => getWorkflowWithGraph,
9161
+ getWorkflows: () => getWorkflows,
9162
+ getWorkspaceMapForContext: () => getWorkspaceMapForContext,
9163
+ isMissingRelationError: () => isMissingRelationError,
9164
+ normalizeDependsOnInput: () => normalizeDependsOnInput,
9165
+ parseDependsOnValue: () => parseDependsOnValue,
9166
+ parseFrontmatter: () => parseFrontmatter,
9167
+ removeProjectAgent: () => removeProjectAgent,
9168
+ removeProjectSkill: () => removeProjectSkill,
9169
+ removeProjectThread: () => removeProjectThread,
9170
+ removeTeamAgent: () => removeTeamAgent,
9171
+ reorderProjectAgents: () => reorderProjectAgents,
9172
+ resolveMemory: () => resolveMemory,
9173
+ resolveSkills: () => resolveSkills,
9174
+ resolveTaskConfig: () => resolveTaskConfig,
9175
+ resolveVariables: () => resolveVariables,
9176
+ setAgentSkills: () => setAgentSkills,
9177
+ setProjectVariable: () => setProjectVariable,
9178
+ slugify: () => slugify2,
9179
+ summarizeTaskCosts: () => summarizeTaskCosts,
9180
+ updateAgent: () => updateAgent,
9181
+ updateProject: () => updateProject,
9182
+ updateTask: () => updateTask,
9183
+ updateTeam: () => updateTeam,
9184
+ updateWorkflow: () => updateWorkflow,
9185
+ updateWorkflowNodes: () => updateWorkflowNodes,
9186
+ updateWorkspaceEntry: () => updateWorkspaceEntry,
9187
+ upsertStagePrompt: () => upsertStagePrompt,
9188
+ upsertUserSettings: () => upsertUserSettings,
9189
+ validateIdentifierPrefix: () => validateIdentifierPrefix
9190
+ });
9191
+ var init_db2 = __esm({
8756
9192
  "apps/local/lib/db.ts"() {
8757
9193
  "use strict";
8758
- init_db_adapter();
8759
- init_dependency_helpers();
8760
- init_notifications();
8761
- import_crypto = require("crypto");
8762
- init_vault_store();
8763
- UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8764
- DEFAULT_SDLC_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
8765
- DEFAULT_SYSTEM_USER_ID = "00000000-0000-0000-0000-000000000000";
8766
- DEFAULT_WORKFLOW_NODE_SEED = [
8767
- {
8768
- id: "00000000-0000-0000-0001-000000000001",
8769
- name: "INTAKE",
8770
- label: "Intake",
8771
- prompt: "New task. Triage, scope, and prepare for work.",
8772
- position: 0,
8773
- node_type: "step"
8774
- },
8775
- {
8776
- id: "00000000-0000-0000-0001-000000000002",
8777
- name: "PROGRESS",
8778
- label: "Progress",
8779
- prompt: "Task is actively being worked on.",
8780
- position: 1,
8781
- node_type: "step"
8782
- },
8783
- {
8784
- id: "00000000-0000-0000-0001-000000000003",
8785
- name: "DONE",
8786
- label: "Done",
8787
- prompt: "Task completed.",
8788
- position: 2,
8789
- node_type: "terminal"
8790
- }
8791
- ];
8792
- DEFAULT_WORKFLOW_NODE_SEED_BY_ID = new Map(
8793
- DEFAULT_WORKFLOW_NODE_SEED.map((node) => [node.id, node])
8794
- );
8795
- defaultStagePrompts = {
8796
- INTAKE: {
8797
- prompt: "New task. Triage, scope, and prepare for work.",
8798
- outputs: [],
8799
- swarm: false
8800
- },
8801
- PROGRESS: {
8802
- prompt: "Task is actively being worked on.",
8803
- outputs: [],
8804
- swarm: false
8805
- },
8806
- DONE: {
8807
- prompt: "Task completed.",
8808
- outputs: [],
8809
- swarm: false
8810
- }
8811
- };
8812
- DEFAULT_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
9194
+ init_db();
8813
9195
  }
8814
9196
  });
8815
9197
 
@@ -8883,7 +9265,7 @@ var SQLiteAdapter;
8883
9265
  var init_sqlite_adapter2 = __esm({
8884
9266
  "apps/local/lib/adapters/sqlite-adapter.ts"() {
8885
9267
  "use strict";
8886
- init_db();
9268
+ init_db2();
8887
9269
  init_sqlite_query_adapter();
8888
9270
  init_errors();
8889
9271
  SQLiteAdapter = class {
@@ -9407,7 +9789,7 @@ async function resolveWorkflowTransition({
9407
9789
  var DEFAULT_STAGE_SEQUENCE, STANDARD_STAGE_SEQUENCES;
9408
9790
  var init_stage_machine = __esm({
9409
9791
  "apps/local/lib/orchestration/stage-machine.ts"() {
9410
- init_db();
9792
+ init_db2();
9411
9793
  DEFAULT_STAGE_SEQUENCE = [
9412
9794
  "INTAKE",
9413
9795
  "PROGRESS",
@@ -9647,11 +10029,15 @@ function providerNativeCommand({
9647
10029
  prompt,
9648
10030
  systemPrompt
9649
10031
  }) {
10032
+ const homeDir = import_os10.default.homedir();
9650
10033
  switch (provider) {
9651
10034
  case "claude": {
9652
10035
  const args = [
9653
10036
  "-p",
9654
10037
  prompt,
10038
+ "--dangerously-skip-permissions",
10039
+ "--add-dir",
10040
+ homeDir,
9655
10041
  "--verbose",
9656
10042
  "--output-format",
9657
10043
  "stream-json",
@@ -9664,9 +10050,17 @@ function providerNativeCommand({
9664
10050
  case "gemini":
9665
10051
  return {
9666
10052
  command: "gemini",
9667
- args: ["--yolo", "-p", systemPrompt ? `${systemPrompt}
9668
-
9669
- ${prompt}` : prompt, "-o", "stream-json"],
10053
+ args: [
10054
+ "--yolo",
10055
+ "--include-directories",
10056
+ homeDir,
10057
+ "-p",
10058
+ systemPrompt ? `${systemPrompt}
10059
+
10060
+ ${prompt}` : prompt,
10061
+ "-o",
10062
+ "stream-json"
10063
+ ],
9670
10064
  parser: "gemini-stream-json"
9671
10065
  };
9672
10066
  case "ollama":
@@ -9678,7 +10072,13 @@ ${prompt}` : prompt],
9678
10072
  parser: "raw"
9679
10073
  };
9680
10074
  case "codex": {
9681
- const codexArgs = ["exec", "--json"];
10075
+ const codexArgs = [
10076
+ "exec",
10077
+ "--json",
10078
+ "--dangerously-bypass-approvals-and-sandbox",
10079
+ "--add-dir",
10080
+ homeDir
10081
+ ];
9682
10082
  if (model) codexArgs.push("--model", model);
9683
10083
  codexArgs.push(systemPrompt ? `${systemPrompt}
9684
10084
 
@@ -9694,6 +10094,9 @@ ${prompt}` : prompt);
9694
10094
  const zaiArgs = [
9695
10095
  "-p",
9696
10096
  prompt,
10097
+ "--dangerously-skip-permissions",
10098
+ "--add-dir",
10099
+ homeDir,
9697
10100
  "--verbose",
9698
10101
  "--output-format",
9699
10102
  "stream-json",
@@ -9715,10 +10118,26 @@ ${prompt}` : prompt);
9715
10118
  return null;
9716
10119
  }
9717
10120
  }
10121
+ function providerAccessPassthrough(provider) {
10122
+ const homeDir = import_os10.default.homedir();
10123
+ switch (provider) {
10124
+ case "claude":
10125
+ case "zai":
10126
+ case "codex":
10127
+ return ["--add-dir", homeDir];
10128
+ case "gemini":
10129
+ return ["--include-directories", homeDir];
10130
+ default:
10131
+ return [];
10132
+ }
10133
+ }
9718
10134
  function agxStreamingPassthrough(provider) {
9719
10135
  switch (provider) {
9720
10136
  case "claude":
9721
- return { args: ["--output-format", "stream-json", "--include-partial-messages"], parser: "claude-stream-json" };
10137
+ return {
10138
+ args: ["--verbose", "--output-format", "stream-json", "--include-partial-messages"],
10139
+ parser: "claude-stream-json"
10140
+ };
9722
10141
  case "gemini":
9723
10142
  return { args: ["-o", "stream-json"], parser: "gemini-stream-json" };
9724
10143
  case "codex":
@@ -9736,7 +10155,7 @@ function agxCommandForProvider({
9736
10155
  const args = [provider, "-y", "--print", "--prompt", prompt];
9737
10156
  if (model) args.push("--model", model);
9738
10157
  const streaming = agxStreamingPassthrough(provider);
9739
- const allPassthrough = [...passthroughArgs || [], ...streaming.args];
10158
+ const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
9740
10159
  if (allPassthrough.length > 0) {
9741
10160
  args.push("--", ...allPassthrough);
9742
10161
  }
@@ -9825,7 +10244,7 @@ function bundledAgxCommandForProvider({
9825
10244
  const args = [resolvedCliPath, provider, "-y", "--print", "--prompt", prompt];
9826
10245
  if (model) args.push("--model", model);
9827
10246
  const streaming = agxStreamingPassthrough(provider);
9828
- const allPassthrough = [...passthroughArgs || [], ...streaming.args];
10247
+ const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
9829
10248
  if (allPassthrough.length > 0) {
9830
10249
  args.push("--", ...allPassthrough);
9831
10250
  }
@@ -10052,12 +10471,12 @@ ${skills}
10052
10471
  </skills>`);
10053
10472
  return systemParts.length > 0 ? systemParts.join("\n\n") : void 0;
10054
10473
  }
10055
- var import_child_process2, import_fs10, import_path10, isNonEmptyString, CliRunError, createRawParser, extractClaudeAssistantText, createClaudeStreamJsonParser, createGeminiStreamJsonParser, extractCodexAssistantText, createCodexJsonParser, createThoughtFilterParser, AGX_WRAPPED_PROVIDERS;
10474
+ var import_child_process2, import_fs10, import_os10, import_path10, isNonEmptyString, CliRunError, createRawParser, extractClaudeAssistantText, createClaudeStreamJsonParser, createGeminiStreamJsonParser, extractCodexAssistantText, createCodexJsonParser, createThoughtFilterParser, AGX_WRAPPED_PROVIDERS;
10056
10475
  var init_cli_runner = __esm({
10057
10476
  "apps/local/lib/cli-runner.ts"() {
10058
- "use strict";
10059
10477
  import_child_process2 = require("child_process");
10060
10478
  import_fs10 = __toESM(require("fs"));
10479
+ import_os10 = __toESM(require("os"));
10061
10480
  import_path10 = __toESM(require("path"));
10062
10481
  init_sanitize();
10063
10482
  init_debug_log();
@@ -10065,6 +10484,8 @@ var init_cli_runner = __esm({
10065
10484
  init_scheduled_task_skill();
10066
10485
  isNonEmptyString = (value) => typeof value === "string" && value.trim().length > 0;
10067
10486
  CliRunError = class extends Error {
10487
+ exitCode;
10488
+ logs;
10068
10489
  constructor(message, exitCode, logs) {
10069
10490
  super(message);
10070
10491
  this.name = "CliRunError";
@@ -10092,7 +10513,7 @@ var init_cli_runner = __esm({
10092
10513
  return "";
10093
10514
  };
10094
10515
  createClaudeStreamJsonParser = (onDelta) => {
10095
- let buffer = "";
10516
+ let buffer2 = "";
10096
10517
  let emittedCharacters = 0;
10097
10518
  let sawJson = false;
10098
10519
  const processLine = (line) => {
@@ -10113,22 +10534,22 @@ var init_cli_runner = __esm({
10113
10534
  };
10114
10535
  return {
10115
10536
  push: (chunk) => {
10116
- buffer += chunk;
10537
+ buffer2 += chunk;
10117
10538
  while (true) {
10118
- const i = buffer.indexOf("\n");
10539
+ const i = buffer2.indexOf("\n");
10119
10540
  if (i === -1) break;
10120
- processLine(buffer.slice(0, i));
10121
- buffer = buffer.slice(i + 1);
10541
+ processLine(buffer2.slice(0, i));
10542
+ buffer2 = buffer2.slice(i + 1);
10122
10543
  }
10123
10544
  },
10124
10545
  flush: () => {
10125
- if (buffer.trim()) processLine(buffer);
10126
- buffer = "";
10546
+ if (buffer2.trim()) processLine(buffer2);
10547
+ buffer2 = "";
10127
10548
  }
10128
10549
  };
10129
10550
  };
10130
10551
  createGeminiStreamJsonParser = (onDelta) => {
10131
- let buffer = "";
10552
+ let buffer2 = "";
10132
10553
  let sawJson = false;
10133
10554
  let accumulatedAssistantText = "";
10134
10555
  const emitGeminiText = (text, isDelta) => {
@@ -10171,17 +10592,17 @@ var init_cli_runner = __esm({
10171
10592
  };
10172
10593
  return {
10173
10594
  push: (chunk) => {
10174
- buffer += chunk;
10595
+ buffer2 += chunk;
10175
10596
  while (true) {
10176
- const i = buffer.indexOf("\n");
10597
+ const i = buffer2.indexOf("\n");
10177
10598
  if (i === -1) break;
10178
- processLine(buffer.slice(0, i));
10179
- buffer = buffer.slice(i + 1);
10599
+ processLine(buffer2.slice(0, i));
10600
+ buffer2 = buffer2.slice(i + 1);
10180
10601
  }
10181
10602
  },
10182
10603
  flush: () => {
10183
- if (buffer.trim()) processLine(buffer);
10184
- buffer = "";
10604
+ if (buffer2.trim()) processLine(buffer2);
10605
+ buffer2 = "";
10185
10606
  }
10186
10607
  };
10187
10608
  };
@@ -10196,7 +10617,7 @@ var init_cli_runner = __esm({
10196
10617
  return "";
10197
10618
  };
10198
10619
  createCodexJsonParser = (onDelta) => {
10199
- let buffer = "";
10620
+ let buffer2 = "";
10200
10621
  let sawJson = false;
10201
10622
  const completedItems = /* @__PURE__ */ new Set();
10202
10623
  const processLine = (line) => {
@@ -10218,22 +10639,22 @@ var init_cli_runner = __esm({
10218
10639
  };
10219
10640
  return {
10220
10641
  push: (chunk) => {
10221
- buffer += chunk;
10642
+ buffer2 += chunk;
10222
10643
  while (true) {
10223
- const i = buffer.indexOf("\n");
10644
+ const i = buffer2.indexOf("\n");
10224
10645
  if (i === -1) break;
10225
- processLine(buffer.slice(0, i));
10226
- buffer = buffer.slice(i + 1);
10646
+ processLine(buffer2.slice(0, i));
10647
+ buffer2 = buffer2.slice(i + 1);
10227
10648
  }
10228
10649
  },
10229
10650
  flush: () => {
10230
- if (buffer.trim()) processLine(buffer);
10231
- buffer = "";
10651
+ if (buffer2.trim()) processLine(buffer2);
10652
+ buffer2 = "";
10232
10653
  }
10233
10654
  };
10234
10655
  };
10235
10656
  createThoughtFilterParser = (inner, onThought) => {
10236
- let buffer = "";
10657
+ let buffer2 = "";
10237
10658
  let inThought = false;
10238
10659
  let thoughtStarted = false;
10239
10660
  let thoughtContent = "";
@@ -10246,12 +10667,12 @@ var init_cli_runner = __esm({
10246
10667
  /<\/think>/i
10247
10668
  ];
10248
10669
  const processBuffer = () => {
10249
- while (buffer.length > 0) {
10670
+ while (buffer2.length > 0) {
10250
10671
  if (inThought) {
10251
10672
  let endIdx = -1;
10252
10673
  let endLen = 0;
10253
10674
  for (const pat of THINK_END_PATTERNS) {
10254
- const match = buffer.match(pat);
10675
+ const match = buffer2.match(pat);
10255
10676
  if (match && match.index !== void 0) {
10256
10677
  const candidate = match.index + match[0].length;
10257
10678
  if (endIdx === -1 || match.index < endIdx) {
@@ -10261,26 +10682,26 @@ var init_cli_runner = __esm({
10261
10682
  }
10262
10683
  }
10263
10684
  if (endIdx !== -1) {
10264
- thoughtContent += buffer.slice(0, endIdx);
10685
+ thoughtContent += buffer2.slice(0, endIdx);
10265
10686
  if (onThought && thoughtContent.trim()) {
10266
10687
  onThought(thoughtContent.trim());
10267
10688
  }
10268
10689
  thoughtContent = "";
10269
- buffer = buffer.slice(endIdx + endLen);
10690
+ buffer2 = buffer2.slice(endIdx + endLen);
10270
10691
  inThought = false;
10271
- buffer = buffer.replace(/^\s*\n*/, "");
10692
+ buffer2 = buffer2.replace(/^\s*\n*/, "");
10272
10693
  continue;
10273
10694
  }
10274
- thoughtContent += buffer;
10275
- buffer = "";
10695
+ thoughtContent += buffer2;
10696
+ buffer2 = "";
10276
10697
  return;
10277
10698
  }
10278
10699
  for (const pat of THINK_START_PATTERNS) {
10279
- const match = buffer.match(pat);
10700
+ const match = buffer2.match(pat);
10280
10701
  if (match && match.index !== void 0) {
10281
- const before = buffer.slice(0, match.index);
10702
+ const before = buffer2.slice(0, match.index);
10282
10703
  if (before) inner.push(before);
10283
- buffer = buffer.slice(match.index + match[0].length);
10704
+ buffer2 = buffer2.slice(match.index + match[0].length);
10284
10705
  inThought = true;
10285
10706
  thoughtStarted = true;
10286
10707
  thoughtContent = "";
@@ -10288,24 +10709,24 @@ var init_cli_runner = __esm({
10288
10709
  }
10289
10710
  }
10290
10711
  if (inThought) continue;
10291
- const safeLen = Math.max(0, buffer.length - 30);
10712
+ const safeLen = Math.max(0, buffer2.length - 30);
10292
10713
  if (safeLen > 0) {
10293
- inner.push(buffer.slice(0, safeLen));
10294
- buffer = buffer.slice(safeLen);
10714
+ inner.push(buffer2.slice(0, safeLen));
10715
+ buffer2 = buffer2.slice(safeLen);
10295
10716
  }
10296
10717
  return;
10297
10718
  }
10298
10719
  };
10299
10720
  return {
10300
10721
  push: (chunk) => {
10301
- buffer += chunk;
10722
+ buffer2 += chunk;
10302
10723
  processBuffer();
10303
10724
  },
10304
10725
  flush: () => {
10305
- if (!inThought && buffer) {
10306
- inner.push(buffer);
10726
+ if (!inThought && buffer2) {
10727
+ inner.push(buffer2);
10307
10728
  }
10308
- buffer = "";
10729
+ buffer2 = "";
10309
10730
  inner.flush();
10310
10731
  }
10311
10732
  };
@@ -10433,8 +10854,8 @@ async function storeMemories(taskId, agentId, memories) {
10433
10854
  const now = Date.now();
10434
10855
  for (const mem of memories) {
10435
10856
  if (!VALID_TYPES_SET.has(mem.memory_type) || !mem.content?.trim()) continue;
10436
- const contentHash2 = (0, import_crypto2.createHash)("sha256").update(mem.content.trim()).digest("hex");
10437
- const result = stmt.run((0, import_crypto2.randomUUID)(), agentId, taskId, mem.memory_type, mem.content.trim(), contentHash2, now);
10857
+ const contentHash2 = (0, import_crypto4.createHash)("sha256").update(mem.content.trim()).digest("hex");
10858
+ const result = stmt.run((0, import_crypto4.randomUUID)(), agentId, taskId, mem.memory_type, mem.content.trim(), contentHash2, now);
10438
10859
  if (result.changes > 0) inserted++;
10439
10860
  }
10440
10861
  if (inserted > 0) {
@@ -10527,10 +10948,10 @@ async function extractAndStoreProjectKnowledge(taskId, projectIdOrSlug, ctx) {
10527
10948
  console.log(`[project-knowledge] Stored ${inserted} project knowledge entries for task ${taskId}`);
10528
10949
  }
10529
10950
  }
10530
- var import_crypto2, VALID_TYPES, EXTRACTION_PROMPT, PROJECT_KNOWLEDGE_PROMPT, VALID_TYPES_SET, MEMORY_AGENT_KEYS;
10951
+ var import_crypto4, VALID_TYPES, EXTRACTION_PROMPT, PROJECT_KNOWLEDGE_PROMPT, VALID_TYPES_SET, MEMORY_AGENT_KEYS;
10531
10952
  var init_memory_extractor = __esm({
10532
10953
  "apps/local/lib/memory-extractor.ts"() {
10533
- import_crypto2 = require("crypto");
10954
+ import_crypto4 = require("crypto");
10534
10955
  init_cli_runner();
10535
10956
  init_sqlite_query_adapter();
10536
10957
  init_knowledge_store();
@@ -10768,7 +11189,7 @@ var init_dependency_manager = __esm({
10768
11189
  init_stage_machine();
10769
11190
  init_db_adapter();
10770
11191
  init_auth_mode();
10771
- init_db();
11192
+ init_db2();
10772
11193
  init_db_instance();
10773
11194
  READY_STATUS = "completed";
10774
11195
  }
@@ -10960,7 +11381,7 @@ async function markCancelledActivity(input) {
10960
11381
  }
10961
11382
  var init_activities = __esm({
10962
11383
  "apps/local/lib/orchestrator/activities.ts"() {
10963
- init_db();
11384
+ init_db2();
10964
11385
  init_memory_extractor();
10965
11386
  init_db_instance();
10966
11387
  init_db_adapter();
@@ -11198,8 +11619,13 @@ function getDb2() {
11198
11619
  const hasOldTable = db2.prepare(
11199
11620
  "SELECT name FROM sqlite_master WHERE type='table' AND name='linear_runs'"
11200
11621
  ).get();
11201
- if (hasOldTable) {
11622
+ const hasNewTable = db2.prepare(
11623
+ "SELECT name FROM sqlite_master WHERE type='table' AND name='tracker_runs'"
11624
+ ).get();
11625
+ if (hasOldTable && !hasNewTable) {
11202
11626
  db2.exec("ALTER TABLE linear_runs RENAME TO tracker_runs");
11627
+ } else if (hasOldTable && hasNewTable) {
11628
+ db2.exec("DROP TABLE linear_runs");
11203
11629
  }
11204
11630
  db2.exec(`
11205
11631
  CREATE TABLE IF NOT EXISTS tracker_runs (
@@ -11351,15 +11777,15 @@ function killByWorkspace(workspaceId) {
11351
11777
  }
11352
11778
  return killed;
11353
11779
  }
11354
- var import_path11, import_os10, import_fs11, DatabaseSyncCtor4, HISTORY_DIR, DB_PATH2;
11780
+ var import_path11, import_os11, import_fs11, DatabaseSyncCtor4, HISTORY_DIR, DB_PATH2;
11355
11781
  var init_agent_process_registry = __esm({
11356
11782
  "apps/local/lib/agent-process-registry.ts"() {
11357
11783
  init_sqlite_compat();
11358
11784
  import_path11 = __toESM(require("path"));
11359
- import_os10 = __toESM(require("os"));
11785
+ import_os11 = __toESM(require("os"));
11360
11786
  import_fs11 = require("fs");
11361
11787
  ({ DatabaseSync: DatabaseSyncCtor4 } = process.getBuiltinModule("node:sqlite"));
11362
- HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(import_os10.default.homedir(), ".agx", "group-chat");
11788
+ HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(import_os11.default.homedir(), ".agx", "group-chat");
11363
11789
  DB_PATH2 = import_path11.default.join(HISTORY_DIR, "history.sqlite");
11364
11790
  }
11365
11791
  });
@@ -12604,16 +13030,15 @@ async function saveThreadRepoSelections(rootMessageId, repoIds) {
12604
13030
  }
12605
13031
  });
12606
13032
  }
12607
- var import_fs12, import_path12, import_os11, DatabaseSyncCtor5, HISTORY_DIR2, DB_PATH3, LEGACY_THREAD_ID, REACTION_TYPES, ACTIVE_AGENT_PROCESS_STALE_MS, ACTIVE_CHAT_RUN_STALE_MS, ALLOWED_TRANSITIONS, ReactionStoreError, withDatabase;
13033
+ var import_fs12, import_path12, import_os12, DatabaseSyncCtor5, HISTORY_DIR2, DB_PATH3, LEGACY_THREAD_ID, REACTION_TYPES, ACTIVE_AGENT_PROCESS_STALE_MS, ACTIVE_CHAT_RUN_STALE_MS, ALLOWED_TRANSITIONS, ReactionStoreError, withDatabase;
12608
13034
  var init_history_store = __esm({
12609
13035
  "apps/local/lib/history-store.ts"() {
12610
- "use strict";
12611
13036
  init_sqlite_compat();
12612
13037
  import_fs12 = require("fs");
12613
13038
  import_path12 = __toESM(require("path"));
12614
- import_os11 = __toESM(require("os"));
13039
+ import_os12 = __toESM(require("os"));
12615
13040
  ({ DatabaseSync: DatabaseSyncCtor5 } = process.getBuiltinModule("node:sqlite"));
12616
- HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(import_os11.default.homedir(), ".agx", "group-chat");
13041
+ HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(import_os12.default.homedir(), ".agx", "group-chat");
12617
13042
  DB_PATH3 = import_path12.default.join(HISTORY_DIR2, "history.sqlite");
12618
13043
  LEGACY_THREAD_ID = "global";
12619
13044
  REACTION_TYPES = /* @__PURE__ */ new Set([
@@ -12633,6 +13058,7 @@ var init_history_store = __esm({
12633
13058
  blocked: /* @__PURE__ */ new Set(["ack", "blocked", "working"])
12634
13059
  };
12635
13060
  ReactionStoreError = class extends Error {
13061
+ status;
12636
13062
  constructor(message, status) {
12637
13063
  super(message);
12638
13064
  this.name = "ReactionStoreError";
@@ -12861,15 +13287,15 @@ async function getAttachmentMeta(id) {
12861
13287
  db2.close();
12862
13288
  }
12863
13289
  }
12864
- var import_path13, import_os12, DatabaseSyncCtor6, HISTORY_DIR3, DB_PATH4, UPLOADS_DIR;
13290
+ var import_path13, import_os13, DatabaseSyncCtor6, HISTORY_DIR3, DB_PATH4, UPLOADS_DIR;
12865
13291
  var init_attachment_store = __esm({
12866
13292
  "apps/local/lib/attachment-store.ts"() {
12867
13293
  "use strict";
12868
13294
  init_sqlite_compat();
12869
13295
  import_path13 = __toESM(require("path"));
12870
- import_os12 = __toESM(require("os"));
13296
+ import_os13 = __toESM(require("os"));
12871
13297
  ({ DatabaseSync: DatabaseSyncCtor6 } = process.getBuiltinModule("node:sqlite"));
12872
- HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(import_os12.default.homedir(), ".agx", "group-chat");
13298
+ HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(import_os13.default.homedir(), ".agx", "group-chat");
12873
13299
  DB_PATH4 = import_path13.default.join(HISTORY_DIR3, "history.sqlite");
12874
13300
  UPLOADS_DIR = import_path13.default.join(HISTORY_DIR3, "uploads");
12875
13301
  }
@@ -12903,16 +13329,16 @@ function appendReaction(agentId, targetEntry, type3) {
12903
13329
  (0, import_fs13.appendFileSync)(reactionsPath(agentId), JSON.stringify(reaction) + "\n", "utf-8");
12904
13330
  logActivity(agentId, "mesh-reaction", { meta: { target: targetEntry, type: type3 } });
12905
13331
  }
12906
- var import_fs13, import_path14, import_os13, AGENTS_DIR6;
13332
+ var import_fs13, import_path14, import_os14, AGENTS_DIR6;
12907
13333
  var init_reactions = __esm({
12908
13334
  "apps/local/lib/mesh-core/reactions.ts"() {
12909
13335
  "use strict";
12910
13336
  import_fs13 = require("fs");
12911
13337
  import_path14 = require("path");
12912
- import_os13 = require("os");
13338
+ import_os14 = require("os");
12913
13339
  init_journal();
12914
13340
  init_activity();
12915
- AGENTS_DIR6 = (0, import_path14.join)((0, import_os13.homedir)(), ".agx", "agents");
13341
+ AGENTS_DIR6 = (0, import_path14.join)((0, import_os14.homedir)(), ".agx", "agents");
12916
13342
  }
12917
13343
  });
12918
13344
 
@@ -13287,7 +13713,6 @@ function resolveBoundSkillFiles(bindings, prompt, provider) {
13287
13713
  var import_node_fs4;
13288
13714
  var init_agent_skill_bindings = __esm({
13289
13715
  "apps/local/lib/agent-skill-bindings.ts"() {
13290
- "use strict";
13291
13716
  import_node_fs4 = __toESM(require("node:fs"));
13292
13717
  init_sqlite_query_adapter();
13293
13718
  init_skills_library();
@@ -13298,6 +13723,22 @@ var init_agent_skill_bindings = __esm({
13298
13723
  function isKnowledgeEvidence(value) {
13299
13724
  return value !== null;
13300
13725
  }
13726
+ function buildFilesystemAccessContext(p) {
13727
+ const homeDir = import_os15.default.homedir();
13728
+ switch (p.provider) {
13729
+ case "claude":
13730
+ case "codex":
13731
+ case "gemini":
13732
+ case "zai":
13733
+ return `<filesystem-access>
13734
+ Current CLI access includes the project working directory and ${homeDir}.
13735
+ Treat ~/.agx as accessible from this chat because it lives under ${homeDir}.
13736
+ Do not claim that ~/.agx is unavailable unless a tool call in this run actually fails with an access error.
13737
+ </filesystem-access>`;
13738
+ default:
13739
+ return null;
13740
+ }
13741
+ }
13301
13742
  function normalizeRuntimeSeedText(raw, name) {
13302
13743
  const collapsed = raw.replace(/\s+/g, " ").trim();
13303
13744
  if (!collapsed) return `I am ${name}. ${DEFAULT_RUNTIME_SEED}`;
@@ -13474,8 +13915,8 @@ async function runReflection(p) {
13474
13915
  const now = Date.now();
13475
13916
  for (const memory of memoryDrafts) {
13476
13917
  const memoryType = memory.kind === "decision" ? "decision" : memory.kind === "gotcha" || memory.kind === "constraint" ? "gotcha" : memory.kind === "outcome" ? "outcome" : "pattern";
13477
- const contentHash2 = (0, import_crypto3.createHash)("sha256").update(memory.body.trim()).digest("hex");
13478
- stmt.run((0, import_crypto3.randomUUID)(), p.id, reflectionTaskId, memoryType, memory.body.trim(), contentHash2, now);
13918
+ const contentHash2 = (0, import_crypto5.createHash)("sha256").update(memory.body.trim()).digest("hex");
13919
+ stmt.run((0, import_crypto5.randomUUID)(), p.id, reflectionTaskId, memoryType, memory.body.trim(), contentHash2, now);
13479
13920
  }
13480
13921
  }
13481
13922
  appendJournal(p.id, {
@@ -13859,6 +14300,7 @@ ${parts.join("\n\n")}`;
13859
14300
  );
13860
14301
  const systemContext = [
13861
14302
  baseSystemContext,
14303
+ buildFilesystemAccessContext(p),
13862
14304
  executionProvenance ? `<execution-provenance>
13863
14305
  Resolved skills: ${executionProvenance.skills.map((skill) => `${skill.file} (${skill.source})`).join(", ") || "none"}
13864
14306
  Resolved memory entries: ${executionProvenance.memory.map((entry) => `${entry.source}${entry.id ? `:${entry.id}` : ""}`).join(", ") || "none"}
@@ -14312,10 +14754,11 @@ function createMultiplexedStream({
14312
14754
  }
14313
14755
  });
14314
14756
  }
14315
- var import_promises, import_crypto3, agentMessageCounts, reflectionQueues, REFLECTION_CADENCE, DEFAULT_RUNTIME_SEED, SKIP_SIGNAL, DEFAULT_MAX_ROUNDS, SIMILARITY_THRESHOLD;
14757
+ var import_promises, import_os15, import_crypto5, agentMessageCounts, reflectionQueues, REFLECTION_CADENCE, DEFAULT_RUNTIME_SEED, SKIP_SIGNAL, DEFAULT_MAX_ROUNDS, SIMILARITY_THRESHOLD;
14316
14758
  var init_stream_multiplexer = __esm({
14317
14759
  "apps/local/lib/stream-multiplexer.ts"() {
14318
14760
  import_promises = require("fs/promises");
14761
+ import_os15 = __toESM(require("os"));
14319
14762
  init_cli_runner();
14320
14763
  init_agent_process_registry();
14321
14764
  init_history_store();
@@ -14329,7 +14772,7 @@ var init_stream_multiplexer = __esm({
14329
14772
  init_activity();
14330
14773
  init_knowledge_store();
14331
14774
  init_agent_skill_bindings();
14332
- import_crypto3 = require("crypto");
14775
+ import_crypto5 = require("crypto");
14333
14776
  agentMessageCounts = /* @__PURE__ */ new Map();
14334
14777
  reflectionQueues = /* @__PURE__ */ new Map();
14335
14778
  REFLECTION_CADENCE = 10;
@@ -14400,7 +14843,7 @@ function filterActiveParticipants(participants, activeParticipantIds) {
14400
14843
  }
14401
14844
  var init_agent_participants = __esm({
14402
14845
  "apps/local/lib/agent-participants.ts"() {
14403
- init_db();
14846
+ init_db2();
14404
14847
  init_agent_skill_bindings();
14405
14848
  init_auth_mode();
14406
14849
  }
@@ -14890,7 +15333,7 @@ var init_project_context = __esm({
14890
15333
  "apps/local/lib/chat/project-context.ts"() {
14891
15334
  init_sqlite_query_adapter();
14892
15335
  init_db_instance();
14893
- init_db();
15336
+ init_db2();
14894
15337
  init_repo_knowledge();
14895
15338
  init_knowledge_notes();
14896
15339
  init_auth_mode();
@@ -14930,7 +15373,7 @@ var init_runtime = __esm({
14930
15373
 
14931
15374
  // apps/local/src/automations/types.ts
14932
15375
  var DEFAULT_OVERLAP_POLICY, DEFAULT_CATCH_UP_POLICY, DEFAULT_CANCEL_CHECK_SEC, DEFAULT_CONDITION_CHECK_EVERY_MS, DEFAULT_GRAPH_INTERVAL_MS;
14933
- var init_types = __esm({
15376
+ var init_types2 = __esm({
14934
15377
  "apps/local/src/automations/types.ts"() {
14935
15378
  "use strict";
14936
15379
  DEFAULT_OVERLAP_POLICY = "skip";
@@ -24120,7 +24563,6 @@ function parseNaturalSchedule(input) {
24120
24563
  var PATTERNS;
24121
24564
  var init_nl_schedule = __esm({
24122
24565
  "apps/local/src/graph/nl-schedule.ts"() {
24123
- "use strict";
24124
24566
  PATTERNS = [
24125
24567
  // "every N seconds" → intervalMs only (sub-minute)
24126
24568
  {
@@ -24534,7 +24976,7 @@ var init_validation = __esm({
24534
24976
  "use strict";
24535
24977
  import_cron_parser = __toESM(require_dist());
24536
24978
  init_nl_schedule();
24537
- init_types();
24979
+ init_types2();
24538
24980
  }
24539
24981
  });
24540
24982
 
@@ -24635,7 +25077,7 @@ var init_serializer = __esm({
24635
25077
  "apps/local/src/automations/serializer.ts"() {
24636
25078
  "use strict";
24637
25079
  import_js_yaml3 = __toESM(require_js_yaml2());
24638
- init_types();
25080
+ init_types2();
24639
25081
  init_validation();
24640
25082
  }
24641
25083
  });
@@ -24646,7 +25088,7 @@ function resolveAgxDataDir2() {
24646
25088
  if (configured) {
24647
25089
  return import_path15.default.resolve(configured);
24648
25090
  }
24649
- return import_path15.default.join((0, import_os14.homedir)(), ".agx");
25091
+ return import_path15.default.join((0, import_os16.homedir)(), ".agx");
24650
25092
  }
24651
25093
  function stableCopy(value) {
24652
25094
  if (Array.isArray(value)) {
@@ -24678,7 +25120,7 @@ function getDefaultAutomationsDir() {
24678
25120
  }
24679
25121
  if (process.env.NODE_ENV === "test") {
24680
25122
  if (!cachedTestAutomationsDir) {
24681
- cachedTestAutomationsDir = (0, import_fs14.mkdtempSync)(import_path15.default.join((0, import_os14.tmpdir)(), "agx-cloud-automations-"));
25123
+ cachedTestAutomationsDir = (0, import_fs14.mkdtempSync)(import_path15.default.join((0, import_os16.tmpdir)(), "agx-cloud-automations-"));
24682
25124
  }
24683
25125
  return cachedTestAutomationsDir;
24684
25126
  }
@@ -24702,7 +25144,7 @@ function computeScheduleHash(definition) {
24702
25144
  activeUntil: definition.execution?.activeUntil
24703
25145
  }
24704
25146
  });
24705
- return (0, import_crypto4.createHash)("sha256").update(JSON.stringify(payload)).digest("hex");
25147
+ return (0, import_crypto6.createHash)("sha256").update(JSON.stringify(payload)).digest("hex");
24706
25148
  }
24707
25149
  function computeNextRunAt(definition, nowMs2 = Date.now()) {
24708
25150
  if (definition.state !== "active") {
@@ -24761,16 +25203,16 @@ function isAutomationDue(definition, runtimeState, nowMs2 = Date.now()) {
24761
25203
  }
24762
25204
  return runtimeState.nextRunAt <= nowMs2;
24763
25205
  }
24764
- var import_crypto4, import_fs14, import_os14, import_path15, import_cron_parser2, cachedTestAutomationsDir;
25206
+ var import_crypto6, import_fs14, import_os16, import_path15, import_cron_parser2, cachedTestAutomationsDir;
24765
25207
  var init_state = __esm({
24766
25208
  "apps/local/src/automations/state.ts"() {
24767
25209
  "use strict";
24768
- import_crypto4 = require("crypto");
25210
+ import_crypto6 = require("crypto");
24769
25211
  import_fs14 = require("fs");
24770
- import_os14 = require("os");
25212
+ import_os16 = require("os");
24771
25213
  import_path15 = __toESM(require("path"));
24772
25214
  import_cron_parser2 = __toESM(require_dist());
24773
- init_types();
25215
+ init_types2();
24774
25216
  cachedTestAutomationsDir = null;
24775
25217
  }
24776
25218
  });
@@ -24816,13 +25258,14 @@ function getAutomationRepository() {
24816
25258
  }
24817
25259
  return cachedRepository;
24818
25260
  }
24819
- var import_fs15, import_path16, import_crypto5, AutomationRepository, cachedRepository, cachedRootDir;
25261
+ var import_fs15, import_path16, import_crypto7, AutomationRepository, cachedRepository, cachedRootDir;
24820
25262
  var init_repository = __esm({
24821
25263
  "apps/local/src/automations/repository.ts"() {
24822
25264
  "use strict";
24823
25265
  import_fs15 = __toESM(require("fs"));
24824
25266
  import_path16 = __toESM(require("path"));
24825
- import_crypto5 = require("crypto");
25267
+ import_crypto7 = require("crypto");
25268
+ init_logger2();
24826
25269
  init_parser();
24827
25270
  init_serializer();
24828
25271
  init_state();
@@ -24851,7 +25294,7 @@ var init_repository = __esm({
24851
25294
  continue;
24852
25295
  }
24853
25296
  if (recordsById.has(record.definition.id)) {
24854
- console.error(`[automations] duplicate automation id detected: ${record.definition.id}`);
25297
+ logger.error(`[automations] duplicate automation id detected: ${record.definition.id}`);
24855
25298
  continue;
24856
25299
  }
24857
25300
  recordsById.set(record.definition.id, record);
@@ -24971,7 +25414,7 @@ var init_repository = __esm({
24971
25414
  if (!current) {
24972
25415
  return null;
24973
25416
  }
24974
- const duplicateId = `${current.definition.id}-copy-${(0, import_crypto5.randomUUID)().slice(0, 8)}`;
25417
+ const duplicateId = `${current.definition.id}-copy-${(0, import_crypto7.randomUUID)().slice(0, 8)}`;
24975
25418
  return this.createAutomation({
24976
25419
  ...cloneDefinition(current.definition),
24977
25420
  id: duplicateId,
@@ -25011,7 +25454,7 @@ var init_repository = __esm({
25011
25454
  copiedEntries += this.copyDirContents(legacyArchivedDir, this.archivedDir);
25012
25455
  copiedEntries += this.copyDirContents(legacyStateDir, this.stateDir);
25013
25456
  if (copiedEntries > 0) {
25014
- console.log(
25457
+ logger.info(
25015
25458
  `[automations] migrated ${copiedEntries} legacy file(s) from ${legacyRootDir} to ${this.rootDir}`
25016
25459
  );
25017
25460
  }
@@ -25068,7 +25511,7 @@ var init_repository = __esm({
25068
25511
  archived
25069
25512
  };
25070
25513
  } catch (error) {
25071
- console.error(`[automations] failed to read ${filePath}:`, error);
25514
+ logger.error(`[automations] failed to read ${filePath}`, logger.formatError(error));
25072
25515
  return null;
25073
25516
  }
25074
25517
  }
@@ -25079,7 +25522,7 @@ var init_repository = __esm({
25079
25522
  try {
25080
25523
  existing = JSON.parse(import_fs15.default.readFileSync(statePath, "utf8"));
25081
25524
  } catch (error) {
25082
- console.error(`[automations] failed to parse state for ${definition.id}:`, error);
25525
+ logger.error(`[automations] failed to parse state for ${definition.id}`, logger.formatError(error));
25083
25526
  }
25084
25527
  }
25085
25528
  const nextState = initializeAutomationRuntimeState(definition, existing);
@@ -25161,7 +25604,7 @@ var init_repository = __esm({
25161
25604
  });
25162
25605
 
25163
25606
  // apps/local/src/prompt-scheduler/types.ts
25164
- var init_types2 = __esm({
25607
+ var init_types3 = __esm({
25165
25608
  "apps/local/src/prompt-scheduler/types.ts"() {
25166
25609
  }
25167
25610
  });
@@ -25258,9 +25701,9 @@ function graphAutomationToDefinition(row) {
25258
25701
  var init_adapters = __esm({
25259
25702
  "apps/local/src/automations/adapters.ts"() {
25260
25703
  "use strict";
25261
- init_types2();
25704
+ init_types3();
25262
25705
  init_cron();
25263
- init_types();
25706
+ init_types2();
25264
25707
  init_state();
25265
25708
  init_validation();
25266
25709
  }
@@ -25269,7 +25712,7 @@ var init_adapters = __esm({
25269
25712
  // apps/local/src/automations/index.ts
25270
25713
  var init_automations = __esm({
25271
25714
  "apps/local/src/automations/index.ts"() {
25272
- init_types();
25715
+ init_types2();
25273
25716
  init_validation();
25274
25717
  init_parser();
25275
25718
  init_serializer();
@@ -26044,7 +26487,7 @@ async function getThreadProjectContext(threadId, taskId) {
26044
26487
  function resolveTeamAgentsFromTask(db2, projectId, taskId) {
26045
26488
  if (!taskId) return null;
26046
26489
  try {
26047
- const { parseFrontmatter: parseFrontmatter2 } = (init_db(), __toCommonJS(db_exports));
26490
+ const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
26048
26491
  const taskRow = db2.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
26049
26492
  if (!taskRow?.content) return null;
26050
26493
  const { frontmatter } = parseFrontmatter2(taskRow.content);
@@ -28460,12 +28903,12 @@ var init_baseAssignIn = __esm({
28460
28903
  });
28461
28904
 
28462
28905
  // node_modules/lodash-es/_cloneBuffer.js
28463
- function cloneBuffer(buffer, isDeep) {
28906
+ function cloneBuffer(buffer2, isDeep) {
28464
28907
  if (isDeep) {
28465
- return buffer.slice();
28908
+ return buffer2.slice();
28466
28909
  }
28467
- var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
28468
- buffer.copy(result);
28910
+ var length = buffer2.length, result = allocUnsafe ? allocUnsafe(length) : new buffer2.constructor(length);
28911
+ buffer2.copy(result);
28469
28912
  return result;
28470
28913
  }
28471
28914
  var freeExports3, freeModule3, moduleExports3, Buffer3, allocUnsafe, cloneBuffer_default;
@@ -28745,8 +29188,8 @@ var init_cloneArrayBuffer = __esm({
28745
29188
 
28746
29189
  // node_modules/lodash-es/_cloneDataView.js
28747
29190
  function cloneDataView(dataView, isDeep) {
28748
- var buffer = isDeep ? cloneArrayBuffer_default(dataView.buffer) : dataView.buffer;
28749
- return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
29191
+ var buffer2 = isDeep ? cloneArrayBuffer_default(dataView.buffer) : dataView.buffer;
29192
+ return new dataView.constructor(buffer2, dataView.byteOffset, dataView.byteLength);
28750
29193
  }
28751
29194
  var cloneDataView_default;
28752
29195
  var init_cloneDataView = __esm({
@@ -28786,8 +29229,8 @@ var init_cloneSymbol = __esm({
28786
29229
 
28787
29230
  // node_modules/lodash-es/_cloneTypedArray.js
28788
29231
  function cloneTypedArray(typedArray, isDeep) {
28789
- var buffer = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;
28790
- return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
29232
+ var buffer2 = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;
29233
+ return new typedArray.constructor(buffer2, typedArray.byteOffset, typedArray.length);
28791
29234
  }
28792
29235
  var cloneTypedArray_default;
28793
29236
  var init_cloneTypedArray = __esm({
@@ -39619,7 +40062,7 @@ function createSystem(rootActor, options) {
39619
40062
  const timerMap = {};
39620
40063
  const {
39621
40064
  clock,
39622
- logger
40065
+ logger: logger2
39623
40066
  } = options;
39624
40067
  const scheduler = {
39625
40068
  schedule: (source, target, event, delay, id = Math.random().toString(36).slice(2)) => {
@@ -39741,7 +40184,7 @@ function createSystem(rootActor, options) {
39741
40184
  }
39742
40185
  },
39743
40186
  _clock: clock,
39744
- _logger: logger
40187
+ _logger: logger2
39745
40188
  };
39746
40189
  return system;
39747
40190
  }
@@ -41127,7 +41570,7 @@ var init_raise_b47daa89_esm = __esm({
41127
41570
  };
41128
41571
  const {
41129
41572
  clock,
41130
- logger,
41573
+ logger: logger2,
41131
41574
  parent,
41132
41575
  syncSnapshot,
41133
41576
  id,
@@ -41136,7 +41579,7 @@ var init_raise_b47daa89_esm = __esm({
41136
41579
  } = resolvedOptions;
41137
41580
  this.system = parent ? parent.system : createSystem(this, {
41138
41581
  clock,
41139
- logger
41582
+ logger: logger2
41140
41583
  });
41141
41584
  if (inspect && !parent) {
41142
41585
  this.system.inspect(toObserver(inspect));
@@ -42427,37 +42870,37 @@ function resolveEnqueueActions(actorScope, snapshot, args, actionParams, {
42427
42870
  collect
42428
42871
  }) {
42429
42872
  const actions = [];
42430
- const enqueue = function enqueue2(action) {
42873
+ const enqueue2 = function enqueue3(action) {
42431
42874
  actions.push(action);
42432
42875
  };
42433
- enqueue.assign = (...args2) => {
42876
+ enqueue2.assign = (...args2) => {
42434
42877
  actions.push(assign2(...args2));
42435
42878
  };
42436
- enqueue.cancel = (...args2) => {
42879
+ enqueue2.cancel = (...args2) => {
42437
42880
  actions.push(cancel(...args2));
42438
42881
  };
42439
- enqueue.raise = (...args2) => {
42882
+ enqueue2.raise = (...args2) => {
42440
42883
  actions.push(raise(...args2));
42441
42884
  };
42442
- enqueue.sendTo = (...args2) => {
42885
+ enqueue2.sendTo = (...args2) => {
42443
42886
  actions.push(sendTo(...args2));
42444
42887
  };
42445
- enqueue.sendParent = (...args2) => {
42888
+ enqueue2.sendParent = (...args2) => {
42446
42889
  actions.push(sendParent(...args2));
42447
42890
  };
42448
- enqueue.spawnChild = (...args2) => {
42891
+ enqueue2.spawnChild = (...args2) => {
42449
42892
  actions.push(spawnChild(...args2));
42450
42893
  };
42451
- enqueue.stopChild = (...args2) => {
42894
+ enqueue2.stopChild = (...args2) => {
42452
42895
  actions.push(stopChild(...args2));
42453
42896
  };
42454
- enqueue.emit = (...args2) => {
42897
+ enqueue2.emit = (...args2) => {
42455
42898
  actions.push(emit(...args2));
42456
42899
  };
42457
42900
  collect({
42458
42901
  context: args.context,
42459
42902
  event: args.event,
42460
- enqueue,
42903
+ enqueue: enqueue2,
42461
42904
  check: (guard) => evaluateGuard(guard, snapshot.context, args.event, snapshot),
42462
42905
  self: actorScope.self,
42463
42906
  system: actorScope.system
@@ -42482,15 +42925,15 @@ function resolveLog(_, snapshot, actionArgs, actionParams, {
42482
42925
  }, void 0];
42483
42926
  }
42484
42927
  function executeLog({
42485
- logger
42928
+ logger: logger2
42486
42929
  }, {
42487
42930
  value,
42488
42931
  label
42489
42932
  }) {
42490
42933
  if (label) {
42491
- logger(label, value);
42934
+ logger2(label, value);
42492
42935
  } else {
42493
- logger(value);
42936
+ logger2(value);
42494
42937
  }
42495
42938
  }
42496
42939
  function log(value = ({
@@ -46255,7 +46698,7 @@ async function pollSchedules(context = {}) {
46255
46698
  pendingWork: []
46256
46699
  };
46257
46700
  const activeSchedules = getGraphsWithActiveSchedules();
46258
- console.log(`[schedules:poll] found ${activeSchedules.length} active schedule(s)`);
46701
+ logger.info(`[schedules:poll] found ${activeSchedules.length} active schedule(s)`);
46259
46702
  for (const { taskId } of activeSchedules) {
46260
46703
  try {
46261
46704
  const graph = store.getGraph(taskId);
@@ -46265,29 +46708,29 @@ async function pollSchedules(context = {}) {
46265
46708
  }
46266
46709
  const tickResult = scheduleTickIfDue(graph);
46267
46710
  if (!tickResult.tickFired) {
46268
- console.log(`[schedules:poll] ${taskId} skipped (${tickResult.skipReason ?? "unknown"})`);
46711
+ logger.info(`[schedules:poll] ${taskId} skipped (${tickResult.skipReason ?? "unknown"})`);
46269
46712
  result.skippedGraphIds.push(taskId);
46270
46713
  continue;
46271
46714
  }
46272
- console.log(`[schedules:poll] ${taskId} tick fired \u2014 resetting nodes`);
46715
+ logger.info(`[schedules:poll] ${taskId} tick fired \u2014 resetting nodes`);
46273
46716
  store.updateGraphStructure(tickResult.graph.id, {
46274
46717
  nodes: tickResult.graph.nodes,
46275
46718
  schedule: tickResult.graph.schedule
46276
46719
  });
46277
46720
  const schedulerResult = schedulerTick(tickResult.graph, context);
46278
- console.log(`[schedules:poll] ${taskId} scheduler: fn=${schedulerResult.functionToRun.length} work=${schedulerResult.workToRun.length}`);
46721
+ logger.info(`[schedules:poll] ${taskId} scheduler: fn=${schedulerResult.functionToRun.length} work=${schedulerResult.workToRun.length}`);
46279
46722
  let currentGraph = schedulerResult.graph;
46280
46723
  for (const nodeId of schedulerResult.functionToRun) {
46281
46724
  const node = currentGraph.nodes[nodeId];
46282
46725
  if (!node || node.type !== "function") continue;
46283
46726
  try {
46284
- console.log(`[schedules:poll] ${taskId} executing function node "${nodeId}"`);
46727
+ logger.info(`[schedules:poll] ${taskId} executing function node "${nodeId}"`);
46285
46728
  const execResult = await executeNode(currentGraph, nodeId, context);
46286
46729
  const resultNode = execResult.graph.nodes[nodeId];
46287
- console.log(`[schedules:poll] ${taskId} function "${nodeId}" \u2192 ${resultNode?.status}`, resultNode && "output" in resultNode ? JSON.stringify(resultNode.output)?.slice(0, 200) : "");
46730
+ logger.info(`[schedules:poll] ${taskId} function "${nodeId}" \u2192 ${resultNode?.status}`, resultNode && "output" in resultNode ? { output: JSON.stringify(resultNode.output)?.slice(0, 200) } : void 0);
46288
46731
  currentGraph = execResult.graph;
46289
46732
  } catch (err) {
46290
- console.error(`[schedules:poll] ${taskId} function "${nodeId}" error:`, err);
46733
+ logger.error(`[schedules:poll] ${taskId} function "${nodeId}" error`, logger.formatError(err));
46291
46734
  result.errors.push({
46292
46735
  graphId: taskId,
46293
46736
  error: err instanceof Error ? err : new Error(String(err))
@@ -46298,7 +46741,7 @@ async function pollSchedules(context = {}) {
46298
46741
  nodes: currentGraph.nodes
46299
46742
  });
46300
46743
  const postFunctionResult = schedulerTick(currentGraph, context);
46301
- console.log(`[schedules:poll] ${taskId} post-fn scheduler: cond=${postFunctionResult.control.conditionalNodeIds.length} work=${postFunctionResult.workToRun.length}`);
46744
+ logger.info(`[schedules:poll] ${taskId} post-fn scheduler: cond=${postFunctionResult.control.conditionalNodeIds.length} work=${postFunctionResult.workToRun.length}`);
46302
46745
  currentGraph = postFunctionResult.graph;
46303
46746
  for (const nodeId of postFunctionResult.workToRun) {
46304
46747
  const node = currentGraph.nodes[nodeId];
@@ -46323,17 +46766,17 @@ async function pollSchedules(context = {}) {
46323
46766
  nodes: currentGraph.nodes
46324
46767
  });
46325
46768
  const postWorkResult = schedulerTick(currentGraph, context);
46326
- console.log(`[schedules:poll] ${taskId} post-work scheduler: fn=${postWorkResult.functionToRun.length} cond=${postWorkResult.control.conditionalNodeIds.length}`);
46769
+ logger.info(`[schedules:poll] ${taskId} post-work scheduler: fn=${postWorkResult.functionToRun.length} cond=${postWorkResult.control.conditionalNodeIds.length}`);
46327
46770
  currentGraph = postWorkResult.graph;
46328
46771
  for (const nodeId of postWorkResult.functionToRun) {
46329
46772
  const node = currentGraph.nodes[nodeId];
46330
46773
  if (!node || node.type !== "function") continue;
46331
46774
  try {
46332
- console.log(`[schedules:poll] ${taskId} executing post-work function "${nodeId}"`);
46775
+ logger.info(`[schedules:poll] ${taskId} executing post-work function "${nodeId}"`);
46333
46776
  const execResult = await executeNode(currentGraph, nodeId, context);
46334
46777
  currentGraph = execResult.graph;
46335
46778
  } catch (err) {
46336
- console.error(`[schedules:poll] ${taskId} post-work function "${nodeId}" error:`, err);
46779
+ logger.error(`[schedules:poll] ${taskId} post-work function "${nodeId}" error`, logger.formatError(err));
46337
46780
  result.errors.push({
46338
46781
  graphId: taskId,
46339
46782
  error: err instanceof Error ? err : new Error(String(err))
@@ -46345,9 +46788,9 @@ async function pollSchedules(context = {}) {
46345
46788
  nodes: currentGraph.nodes
46346
46789
  });
46347
46790
  const nodeStates = Object.entries(currentGraph.nodes).map(([id, n]) => `${id}:${n.status}`).join(", ");
46348
- console.log(`[schedules:poll] ${taskId} node states: ${nodeStates}`);
46791
+ logger.info(`[schedules:poll] ${taskId} node states: ${nodeStates}`);
46349
46792
  const tickComplete = isScheduleTickComplete(currentGraph);
46350
- console.log(`[schedules:poll] ${taskId} tick complete? ${tickComplete}`);
46793
+ logger.info(`[schedules:poll] ${taskId} tick complete? ${tickComplete}`);
46351
46794
  if (tickComplete) {
46352
46795
  const completed = completeScheduleTick(currentGraph);
46353
46796
  const hasFailedNode = completed.schedule?.resetNodeIds.some(
@@ -46370,7 +46813,7 @@ async function pollSchedules(context = {}) {
46370
46813
  }
46371
46814
  const dbGraph = store.getGraph(taskId);
46372
46815
  if (dbGraph?.schedule?.state === "stopped") {
46373
- console.log(`[schedules:poll] ${taskId} schedule was stopped mid-tick, preserving stopped state`);
46816
+ logger.info(`[schedules:poll] ${taskId} schedule was stopped mid-tick, preserving stopped state`);
46374
46817
  completed.schedule = {
46375
46818
  ...completed.schedule,
46376
46819
  state: "stopped"
@@ -46384,14 +46827,14 @@ async function pollSchedules(context = {}) {
46384
46827
  }
46385
46828
  result.tickedGraphIds.push(taskId);
46386
46829
  } catch (err) {
46387
- console.error(`[schedules:poll] ${taskId} caught error:`, err);
46830
+ logger.error(`[schedules:poll] ${taskId} caught error`, logger.formatError(err));
46388
46831
  result.errors.push({
46389
46832
  graphId: taskId,
46390
46833
  error: err instanceof Error ? err : new Error(String(err))
46391
46834
  });
46392
46835
  try {
46393
46836
  store.releaseScheduleTick(taskId);
46394
- console.log(`[schedules:poll] ${taskId} released concurrency slot after error`);
46837
+ logger.info(`[schedules:poll] ${taskId} released concurrency slot after error`);
46395
46838
  } catch {
46396
46839
  }
46397
46840
  }
@@ -46400,6 +46843,7 @@ async function pollSchedules(context = {}) {
46400
46843
  }
46401
46844
  var init_schedule_runner = __esm({
46402
46845
  "apps/local/src/graph/schedule-runner.ts"() {
46846
+ init_logger2();
46403
46847
  init_sqlite_query_adapter();
46404
46848
  init_automations();
46405
46849
  init_schedule();
@@ -46434,7 +46878,7 @@ function resolveProvider(raw) {
46434
46878
  function resolveTeamAgent(sqlite, projectId, taskId) {
46435
46879
  if (!taskId) return null;
46436
46880
  try {
46437
- const { parseFrontmatter: parseFrontmatter2 } = (init_db(), __toCommonJS(db_exports));
46881
+ const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
46438
46882
  const taskRow = sqlite.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
46439
46883
  if (!taskRow?.content) return null;
46440
46884
  const { frontmatter } = parseFrontmatter2(taskRow.content);
@@ -46504,7 +46948,7 @@ function createDispatchWork() {
46504
46948
  message: "No rootMessageId on graph schedule"
46505
46949
  };
46506
46950
  }
46507
- console.log(
46951
+ logger.info(
46508
46952
  `[work-dispatch] Dispatching steer node "${node.title}" for graph ${graph.id} (root: ${rootMessageId})`
46509
46953
  );
46510
46954
  try {
@@ -46536,7 +46980,7 @@ function createDispatchWork() {
46536
46980
  const text = (m.content ?? "").slice(0, 600);
46537
46981
  return `[${sender}]: ${text}`;
46538
46982
  }).join("\n");
46539
- console.log(`[work-dispatch] Thread: active=${activeProcessCount}, msgs=${snapshot.messages?.length ?? 0}`);
46983
+ logger.info(`[work-dispatch] Thread: active=${activeProcessCount}, msgs=${snapshot.messages?.length ?? 0}`);
46540
46984
  const assessPrompt = [
46541
46985
  "--- THREAD STATE ---",
46542
46986
  `Root request: ${snapshot.rootMessage?.content ?? "(missing root message)"}`,
@@ -46556,7 +47000,7 @@ function createDispatchWork() {
46556
47000
  ].filter(Boolean).join("\n");
46557
47001
  const { runCliResponse: runCliResponse2 } = await Promise.resolve().then(() => (init_cli_runner(), cli_runner_exports));
46558
47002
  const steeringAgent = await getSteeringAgentConfig(threadRef.threadId, graph.taskId);
46559
- console.log(
47003
+ logger.info(
46560
47004
  `[work-dispatch] Calling ${steeringAgent.provider} via runCliResponse (prompt length: ${assessPrompt.length})...`
46561
47005
  );
46562
47006
  let fullResponse = "";
@@ -46569,10 +47013,10 @@ function createDispatchWork() {
46569
47013
  fullResponse += chunk;
46570
47014
  },
46571
47015
  onLog: (stream, line) => {
46572
- console.log(`[work-dispatch] [${stream}] ${line}`);
47016
+ logger.info(`[work-dispatch] [${stream}] ${line}`);
46573
47017
  }
46574
47018
  });
46575
- console.log(`[work-dispatch] Raw response: ${fullResponse.slice(0, 500)}`);
47019
+ logger.info(`[work-dispatch] Raw response: ${fullResponse.slice(0, 500)}`);
46576
47020
  const parsed = parseSteerResponse(fullResponse.trim());
46577
47021
  if (!parsed.ok) {
46578
47022
  return {
@@ -46581,7 +47025,7 @@ function createDispatchWork() {
46581
47025
  message: parsed.error
46582
47026
  };
46583
47027
  }
46584
- console.log(`[work-dispatch] Parsed result:`, parsed);
47028
+ logger.info(`[work-dispatch] Parsed result: ${JSON.stringify(parsed)}`);
46585
47029
  return {
46586
47030
  status: "success",
46587
47031
  output: parsed.value
@@ -46627,6 +47071,7 @@ function parseSteerResponse(raw) {
46627
47071
  var import_node_fs5, import_node_path4, import_node_os4, ACTIVE_PROCESS_STATUSES2, DEFAULT_STEER_DIRECTIVE, STEER_OUTPUT_CONTRACT;
46628
47072
  var init_work_dispatcher = __esm({
46629
47073
  "apps/local/src/graph/work-dispatcher.ts"() {
47074
+ init_logger2();
46630
47075
  import_node_fs5 = require("node:fs");
46631
47076
  import_node_path4 = require("node:path");
46632
47077
  import_node_os4 = require("node:os");