@mndrk/agx 2.4.4 → 2.4.6

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 (1311) 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 +4 -3
  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 +4 -3
  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 +4 -3
  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 +4 -3
  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 +7 -5
  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 +5 -4
  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 +4 -3
  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 +4 -3
  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 +4 -3
  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 +4 -3
  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 +6 -5
  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 +1 -1
  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]__7fe442b7._.js +3 -0
  677. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__97b5dbf7._.js → [root-of-the-server]__807a1638._.js} +2 -2
  678. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__82b9b3ca._.js +140 -0
  679. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8680c9de._.js +9 -0
  680. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8cb4fb94._.js → [root-of-the-server]__870fac73._.js} +2 -2
  681. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__87c2a907._.js +1 -1
  682. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8917bc4c._.js +1 -1
  683. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8caf9c04._.js +3 -0
  684. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f9eff837._.js → [root-of-the-server]__8ddbf4ca._.js} +2 -2
  685. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9079a20c._.js +3 -0
  686. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__69a60d71._.js → [root-of-the-server]__92d34a52._.js} +2 -2
  687. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__94f42197._.js +3 -0
  688. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__967a2388._.js +3 -0
  689. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__96a659e4._.js +3 -0
  690. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9cadc914._.js +70 -0
  691. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__3b27260f._.js → [root-of-the-server]__9cb1dc55._.js} +2 -2
  692. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e1746b9._.js +129 -0
  693. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a1dca50c._.js +3 -0
  694. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a53b564a._.js +70 -0
  695. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab150f86._.js +3 -0
  696. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__abf61695._.js +13 -0
  697. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__3a038592._.js → [root-of-the-server]__af70f062._.js} +2 -2
  698. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b00a5099._.js +1 -1
  699. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b1488939._.js +156 -0
  700. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b630ee50._.js +70 -0
  701. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b9538dea._.js +3 -0
  702. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bc26758f._.js +3 -0
  703. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__2d6f22a3._.js → [root-of-the-server]__bdc396a9._.js} +2 -2
  704. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bed6045c._.js +13 -0
  705. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__befbac3e._.js +3 -0
  706. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c0703065._.js +3 -0
  707. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c077a33b._.js +121 -0
  708. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c1581152._.js +3 -0
  709. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__240d98b0._.js → [root-of-the-server]__c26548ed._.js} +2 -2
  710. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3188470._.js +3 -3
  711. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f598d976._.js → [root-of-the-server]__c4855d04._.js} +2 -2
  712. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c5f7b34e._.js +3 -0
  713. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c7e936d4._.js +3 -0
  714. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c936d679._.js +6 -6
  715. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__5af898cb._.js → [root-of-the-server]__ce65d2ba._.js} +2 -2
  716. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cf474787._.js +76 -0
  717. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cf7c65b9._.js +3 -0
  718. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d020d321._.js +69 -0
  719. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__fb694089._.js → [root-of-the-server]__d4a50292._.js} +2 -2
  720. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d54c8dfb._.js +13 -0
  721. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d870d17d._.js +113 -0
  722. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__dacdd4c9._.js +1 -1
  723. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ded6736b._.js +3 -0
  724. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e1dcbfd8._.js +3 -0
  725. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e267d8be._.js +3 -0
  726. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e4633ba9._.js +8 -0
  727. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e4afa482._.js +3 -0
  728. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e71a8a43._.js +13 -0
  729. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb3872bd._.js +3 -0
  730. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb77f5f8._.js +11 -0
  731. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb7e055a._.js +113 -0
  732. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb9921fb._.js +3 -0
  733. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eca53a52._.js +3 -0
  734. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f107289b._.js +18 -0
  735. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f158717d._.js +3 -0
  736. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f1a754d0._.js +3 -0
  737. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9e9149cd._.js → [root-of-the-server]__f48224f7._.js} +2 -2
  738. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6074a7f._.js +70 -0
  739. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6e2a463._.js +3 -0
  740. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a74c7d._.js +3 -0
  741. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8269cb17._.js → [root-of-the-server]__f7e2f962._.js} +2 -2
  742. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f9d933dc._.js +1 -1
  743. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fce2c984._.js +13 -0
  744. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fd504704._.js +3 -0
  745. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fdc68a08._.js +3 -0
  746. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fe3fc98e._.js +3 -0
  747. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fe4b2e4e._.js +3 -0
  748. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ffc62f70._.js +70 -0
  749. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_16bb55a0._.js +2 -2
  750. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_603ba418._.js +2 -2
  751. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_79080c47._.js +3 -0
  752. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{node_modules_d2858615._.js → _9c1d28d4._.js} +2 -2
  753. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_eb019230._.js +2 -2
  754. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_5e5f36c4._.js → apps_local_09d85861._.js} +1 -1
  755. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +20 -0
  756. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_202a2565._.js +262 -0
  757. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2124f905._.js +6 -6
  758. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_22ab9b7c._.js +1 -1
  759. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +1 -1
  760. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_29919ba4._.js +1 -1
  761. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_29a06140._.js +3 -0
  762. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_f8b3abae._.js → apps_local_2caf4398._.js} +1 -1
  763. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2e6439a2._.js +1 -1
  764. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_e1f4d9ad._.js → apps_local_31ca7a35._.js} +1 -1
  765. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4c70e287._.js +1 -1
  766. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
  767. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +5 -5
  768. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_520e6344._.js +7 -7
  769. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +122 -0
  770. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +122 -0
  771. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5b3f1f41._.js +1 -1
  772. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_65843354._.js +14 -14
  773. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_6c0de567._.js +8 -0
  774. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9168ed82._.js +1 -1
  775. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9726bdb7._.js +1 -1
  776. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9e2c9766._.js +8 -0
  777. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_issues_route_actions_21cb97ab.js +3 -0
  778. 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
  779. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_route_actions_20244d74.js +3 -0
  780. 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
  781. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_repos_route_actions_73786015.js +3 -0
  782. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_teams_templates_route_actions_13f2c3d6.js +3 -0
  783. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_webhooks_[id]_route_actions_1c0129f8.js +3 -0
  784. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_webhooks_route_actions_a60f4dfd.js +3 -0
  785. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +5 -5
  786. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +122 -0
  787. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
  788. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c47f30a7._.js +1 -1
  789. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c9c6ee26._.js +1 -1
  790. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d256aa32._.js +1 -1
  791. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_bb07a2e3._.js → apps_local_e27f666b._.js} +1 -1
  792. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e55f28ef._.js +18 -18
  793. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_ee8ff181._.js +1 -1
  794. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0857971b._.js +1 -1
  795. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_3e2ced95._.js +1 -1
  796. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +34 -0
  797. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bb79a1d._.js +1 -1
  798. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +10 -10
  799. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_8bf5d476._.js +1 -1
  800. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_929fd1a3._.js +1 -1
  801. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_9663f7e9._.js +1 -1
  802. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_49a308c0._.js +1 -1
  803. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +17 -17
  804. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +10 -10
  805. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +3 -0
  806. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_ee6eaa28._.js +152 -0
  807. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +26 -22
  808. 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
  809. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_7b90c71f._.js +42 -21
  810. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_a3d4d8f4._.js +37 -16
  811. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_d2c1c6c8._.js +3 -3
  812. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_api-route-utils_ts_b3e10657._.js +1 -1
  813. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_ca6c3a8b._.js +14 -14
  814. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_2e38589d._.js +4 -4
  815. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_918ec858._.js +7 -7
  816. 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
  817. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_projects_[id]_workspace_route_actions_6556c571.js +3 -0
  818. 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
  819. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +3 -0
  820. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_circle-check_eafd6d92.js +3 -0
  821. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{9fb8c_next_f7451f50._.js → 9fb8c_next_b797d184._.js} +2 -2
  822. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__23838f87._.js +3 -0
  823. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__263b7091._.js +5 -0
  824. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +3 -0
  825. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +3 -0
  826. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +3 -0
  827. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4bf7d5b9._.js +3 -0
  828. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +3 -0
  829. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7752d2d2._.js +3 -0
  830. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9193284e._.js +3 -0
  831. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__95ce39fc._.js +3 -0
  832. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__a61463b8._.js +7 -0
  833. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +3 -0
  834. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ca35cea0._.js +3 -0
  835. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e8c6a1f1._.js +3 -0
  836. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__b165b26a._.js → [root-of-the-server]__ebe36ac5._.js} +2 -2
  837. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +3 -0
  838. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f66530a0._.js +3 -0
  839. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f81509ea._.js +3 -0
  840. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ecd68e8._.js +3 -0
  841. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +7 -0
  842. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_5c140c38._.js +7 -0
  843. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7863b9d3._.js +3 -0
  844. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e120fc49._.js +3 -0
  845. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +3 -0
  846. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_093aa68d._.js +3 -0
  847. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_28a1430e._.js +3 -0
  848. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_30d021de._.js +3 -0
  849. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +18 -0
  850. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_41ca745c._.js +4 -0
  851. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_620cb123._.js +3 -0
  852. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_7d1abfbf._.js +18 -0
  853. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_8969d6a5._.js +3 -0
  854. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
  855. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +3 -0
  856. 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
  857. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_a0dd6e69._.js +4 -0
  858. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
  859. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
  860. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_6dcfdd52._.js +1 -1
  861. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_24cd120e._.js +1 -1
  862. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_0933eeaf._.js +1 -1
  863. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js +1 -1
  864. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_page_tsx_b5cec607._.js +2 -2
  865. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b4faeb00._.js +18 -0
  866. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_281b2873._.js +8 -0
  867. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +18 -16
  868. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_75dee220._.js +11 -0
  869. 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
  870. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +6 -6
  871. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_e322e178._.js +18 -0
  872. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eec36ab6._.js +3 -0
  873. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_fed01721._.js +3 -0
  874. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ffd2e9b4._.js +4 -0
  875. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/ebff2__next-internal_server_app_projects_[slug]_notifications_page_actions_899b4c4c.js +3 -0
  876. package/cloud-runtime/standalone/apps/local/.next/server/edge/chunks/[root-of-the-server]__cc2760a4._.js +1 -1
  877. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +12 -0
  878. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +4 -4
  879. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  880. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  881. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +12 -0
  882. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  883. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  884. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  885. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  886. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1600dd6ff8607d8f.js +16 -0
  887. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +16 -0
  888. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1fbcd40dccee738f.js +16 -0
  889. package/cloud-runtime/standalone/apps/local/.next/static/chunks/34483580b9496b00.js +1 -0
  890. package/cloud-runtime/standalone/apps/local/.next/static/chunks/37879a60d670876c.js +1 -0
  891. package/cloud-runtime/standalone/apps/local/.next/static/chunks/48feca51cf97c8a7.js +1 -0
  892. package/cloud-runtime/standalone/apps/local/.next/static/chunks/52a7b1805199c6fb.js +1 -0
  893. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5b919825bc31a59e.js +1 -0
  894. package/cloud-runtime/standalone/apps/local/.next/static/chunks/62385f0f137d16a0.js +1 -0
  895. package/cloud-runtime/standalone/apps/local/.next/static/chunks/692103d55fcd0328.js +5 -0
  896. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +16 -0
  897. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +1 -0
  898. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6ffcd12eabd7c65e.js +16 -0
  899. package/cloud-runtime/standalone/apps/local/.next/static/chunks/72b4109642bf21f4.js +3 -0
  900. package/cloud-runtime/standalone/apps/local/.next/static/chunks/74e3a3e93be78db8.js +48 -0
  901. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +16 -0
  902. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8966871bc99cb968.js +1 -0
  903. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8d8fe711583a59f0.js +6 -0
  904. package/cloud-runtime/standalone/apps/local/.next/static/chunks/92467c495ad08a85.js +5 -0
  905. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +16 -0
  906. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{d5c307b52fd87861.js → 94a66d2d19268d25.js} +1 -1
  907. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8bd9cddc3e268c43.js → aa3029ae0b62f930.js} +1 -1
  908. package/cloud-runtime/standalone/apps/local/.next/static/chunks/add53c2fe147af75.css +1 -0
  909. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +1 -0
  910. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c00eea0c6533548d.js +1 -0
  911. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d662272e49df1950.js +20 -0
  912. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e0d68c6af17c8c87.js +1 -0
  913. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e6d4118b7c32d11c.js +1 -0
  914. package/cloud-runtime/standalone/apps/local/.next/static/chunks/edb0e1ed5398cec6.js +4 -0
  915. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +16 -0
  916. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{turbopack-5fc3e551c6965dd2.js → turbopack-87f23485587f08c3.js} +2 -2
  917. package/cloud-runtime/standalone/apps/local/app/api/agent-specs/pull/route.ts +2 -1
  918. package/cloud-runtime/standalone/apps/local/app/api/agent-specs/route.ts +2 -1
  919. package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +2 -1
  920. package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/skills/route.ts +7 -3
  921. package/cloud-runtime/standalone/apps/local/app/api/agents/export/route.ts +6 -2
  922. package/cloud-runtime/standalone/apps/local/app/api/automations/create/route.ts +6 -2
  923. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -1
  924. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +17 -1
  925. package/cloud-runtime/standalone/apps/local/app/api/chat-runs/[id]/signal/route.ts +4 -1
  926. package/cloud-runtime/standalone/apps/local/app/api/domains/[id]/route.ts +2 -1
  927. package/cloud-runtime/standalone/apps/local/app/api/domains/route.ts +2 -1
  928. package/cloud-runtime/standalone/apps/local/app/api/filesystem/analyze/route.ts +2 -1
  929. package/cloud-runtime/standalone/apps/local/app/api/github/issues/route.ts +30 -0
  930. package/cloud-runtime/standalone/apps/local/app/api/github/prs/context/route.ts +46 -0
  931. package/cloud-runtime/standalone/apps/local/app/api/github/prs/for-target/route.ts +41 -0
  932. package/cloud-runtime/standalone/apps/local/app/api/github/prs/link/route.ts +144 -0
  933. package/cloud-runtime/standalone/apps/local/app/api/github/prs/route.ts +42 -0
  934. package/cloud-runtime/standalone/apps/local/app/api/github/prs/seed/route.ts +254 -0
  935. package/cloud-runtime/standalone/apps/local/app/api/github/repos/route.ts +69 -0
  936. package/cloud-runtime/standalone/apps/local/app/api/github/repos/sync/route.ts +56 -0
  937. package/cloud-runtime/standalone/apps/local/app/api/github/user-repos/route.ts +72 -0
  938. package/cloud-runtime/standalone/apps/local/app/api/history/route.ts +2 -1
  939. package/cloud-runtime/standalone/apps/local/app/api/knowledge-notes/route.ts +7 -3
  940. package/cloud-runtime/standalone/apps/local/app/api/learnings/route.ts +4 -3
  941. package/cloud-runtime/standalone/apps/local/app/api/memories/route.ts +3 -2
  942. package/cloud-runtime/standalone/apps/local/app/api/migrate/workspaces-to-projects/route.ts +2 -1
  943. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/cancel/route.ts +6 -2
  944. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/signal/route.ts +6 -2
  945. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/start/route.ts +2 -1
  946. package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/status/route.ts +2 -1
  947. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +15 -7
  948. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/agents/route.ts +12 -6
  949. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/agents/unassigned/route.ts +2 -1
  950. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/migrate-v2/route.ts +4 -1
  951. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/activities/route.ts +3 -2
  952. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.ts +4 -3
  953. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/notes/route.ts +3 -2
  954. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +3 -2
  955. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +3 -2
  956. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +3 -2
  957. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +5 -4
  958. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/skills/route.ts +8 -4
  959. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/[teamId]/agents/route.ts +8 -4
  960. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/[teamId]/route.ts +8 -4
  961. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/export/route.ts +2 -1
  962. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/import/route.ts +2 -1
  963. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +7 -3
  964. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/threads/route.ts +8 -4
  965. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/variables/[key]/route.ts +2 -1
  966. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/variables/route.ts +8 -4
  967. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/[entryId]/route.ts +67 -0
  968. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/route.ts +75 -0
  969. package/cloud-runtime/standalone/apps/local/app/api/projects/objective-metadata.ts +2 -1
  970. package/cloud-runtime/standalone/apps/local/app/api/projects/payload.ts +23 -1
  971. package/cloud-runtime/standalone/apps/local/app/api/projects/route.ts +3 -2
  972. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/cancel/route.ts +2 -1
  973. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/route.ts +9 -3
  974. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/runs/route.ts +2 -1
  975. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +2 -1
  976. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/poll/route.ts +5 -4
  977. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +3 -2
  978. package/cloud-runtime/standalone/apps/local/app/api/queue/complete/route.ts +2 -1
  979. package/cloud-runtime/standalone/apps/local/app/api/queue/route.ts +2 -1
  980. package/cloud-runtime/standalone/apps/local/app/api/reactions/route.ts +2 -1
  981. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +7 -3
  982. package/cloud-runtime/standalone/apps/local/app/api/schedules/route.ts +6 -2
  983. package/cloud-runtime/standalone/apps/local/app/api/search/route.ts +2 -1
  984. package/cloud-runtime/standalone/apps/local/app/api/skills/assign/route.ts +6 -2
  985. package/cloud-runtime/standalone/apps/local/app/api/skills/available/route.ts +2 -1
  986. package/cloud-runtime/standalone/apps/local/app/api/skills/detail/route.ts +2 -1
  987. package/cloud-runtime/standalone/apps/local/app/api/skills/history/route.ts +2 -1
  988. package/cloud-runtime/standalone/apps/local/app/api/skills/learn/route.ts +6 -2
  989. package/cloud-runtime/standalone/apps/local/app/api/skills/route.ts +2 -1
  990. package/cloud-runtime/standalone/apps/local/app/api/skills/unlearn/route.ts +6 -2
  991. package/cloud-runtime/standalone/apps/local/app/api/summarize/route.ts +2 -1
  992. package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/route.ts +3 -2
  993. package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/tasks/route.ts +3 -2
  994. package/cloud-runtime/standalone/apps/local/app/api/task-groups/route.ts +3 -2
  995. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/comments/[commentId]/route.ts +2 -1
  996. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/comments/route.ts +3 -2
  997. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/costs/route.ts +3 -2
  998. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/dependencies/route.ts +2 -1
  999. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/pause/route.ts +2 -1
  1000. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/replan/route.ts +2 -1
  1001. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/restart/route.ts +2 -1
  1002. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/resume/route.ts +2 -1
  1003. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/rollback/route.ts +2 -1
  1004. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/route.ts +9 -5
  1005. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/start/route.ts +2 -1
  1006. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/stop/route.ts +2 -1
  1007. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/heartbeat/route.ts +2 -1
  1008. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/history/route.ts +2 -1
  1009. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/logs/route.ts +3 -2
  1010. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/resume/route.ts +2 -1
  1011. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/start/route.ts +2 -1
  1012. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/verify/route.ts +2 -1
  1013. package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/route.ts +5 -4
  1014. package/cloud-runtime/standalone/apps/local/app/api/tasks/assign-orphans/route.ts +3 -2
  1015. package/cloud-runtime/standalone/apps/local/app/api/tasks/route.ts +4 -3
  1016. package/cloud-runtime/standalone/apps/local/app/api/teams/templates/route.ts +11 -0
  1017. package/cloud-runtime/standalone/apps/local/app/api/thread-export/route.ts +2 -1
  1018. package/cloud-runtime/standalone/apps/local/app/api/thread-repos/route.ts +2 -1
  1019. package/cloud-runtime/standalone/apps/local/app/api/threads/knowledge/route.ts +2 -1
  1020. package/cloud-runtime/standalone/apps/local/app/api/threads/route.ts +3 -2
  1021. package/cloud-runtime/standalone/apps/local/app/api/tracker/notes/route.ts +16 -3
  1022. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/recap/route.ts +75 -30
  1023. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/route.ts +5 -2
  1024. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/[id]/route.ts +2 -2
  1025. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/route.ts +18 -7
  1026. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/bulk/route.ts +19 -8
  1027. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/route.ts +16 -5
  1028. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/[id]/route.ts +7 -3
  1029. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/route.ts +7 -3
  1030. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/scripted/route.ts +6 -2
  1031. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/token/route.ts +5 -2
  1032. package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/worker/route.ts +4 -3
  1033. package/cloud-runtime/standalone/apps/local/app/api/trackers/connections/route.ts +13 -6
  1034. package/cloud-runtime/standalone/apps/local/app/api/upload/route.ts +3 -2
  1035. package/cloud-runtime/standalone/apps/local/app/api/user-settings/route.ts +4 -3
  1036. package/cloud-runtime/standalone/apps/local/app/api/userPreferences/route.ts +2 -1
  1037. package/cloud-runtime/standalone/apps/local/app/api/webhooks/[id]/route.ts +77 -0
  1038. package/cloud-runtime/standalone/apps/local/app/api/webhooks/route.ts +39 -0
  1039. package/cloud-runtime/standalone/apps/local/app/api/webhooks/shared.ts +159 -0
  1040. package/cloud-runtime/standalone/apps/local/app/integrations/github/select-repos/page.tsx +382 -0
  1041. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +5 -2
  1042. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/notifications/page.tsx +509 -0
  1043. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/page.tsx +299 -0
  1044. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +58 -2
  1045. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/[tracker]/page.tsx +17 -1
  1046. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/connect/page.tsx +23 -18
  1047. package/cloud-runtime/standalone/apps/local/components/GraphDetailSidebar.tsx +1 -1
  1048. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +94 -41
  1049. package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +7 -1
  1050. package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +194 -43
  1051. package/cloud-runtime/standalone/apps/local/components/activity/ActivityStreamButton.tsx +40 -0
  1052. package/cloud-runtime/standalone/apps/local/components/activity/ActivityStreamPopover.tsx +141 -0
  1053. package/cloud-runtime/standalone/apps/local/components/chat-ui/JumpToLatestButton.tsx +30 -0
  1054. package/cloud-runtime/standalone/apps/local/components/chat-ui/LogPanel.tsx +22 -1
  1055. package/cloud-runtime/standalone/apps/local/components/chat-ui/MessageList.tsx +27 -0
  1056. package/cloud-runtime/standalone/apps/local/components/chat-ui/ThreadView.tsx +15 -1
  1057. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +87 -245
  1058. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +99 -66
  1059. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +52 -7
  1060. package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +59 -14
  1061. package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +56 -7
  1062. package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +60 -2
  1063. package/cloud-runtime/standalone/apps/local/components/prs/PrComposerPanel.tsx +219 -0
  1064. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +38 -14
  1065. package/cloud-runtime/standalone/apps/local/components/tracker/FolderRow.tsx +7 -4
  1066. package/cloud-runtime/standalone/apps/local/components/tracker/LinkedPrsSection.tsx +251 -0
  1067. package/cloud-runtime/standalone/apps/local/components/tracker/NoteSticker.tsx +9 -0
  1068. package/cloud-runtime/standalone/apps/local/components/tracker/RowActionsMenu.tsx +228 -0
  1069. package/cloud-runtime/standalone/apps/local/components/tracker/SelectionBar.tsx +11 -24
  1070. package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +43 -9
  1071. package/cloud-runtime/standalone/apps/local/components/tracker/TicketRecapSection.tsx +13 -3
  1072. package/cloud-runtime/standalone/apps/local/components/tracker/TicketRow.tsx +63 -5
  1073. package/cloud-runtime/standalone/apps/local/components/tracking/GithubRepoManager.tsx +518 -0
  1074. package/cloud-runtime/standalone/apps/local/components/tracking/TaskIdentifierPrefix.tsx +174 -0
  1075. package/cloud-runtime/standalone/apps/local/components/tracking/TaskTrackingNav.tsx +73 -11
  1076. package/cloud-runtime/standalone/apps/local/components/tracking/TrackerIcon.tsx +2 -0
  1077. package/cloud-runtime/standalone/apps/local/components/tracking/TrackerSetup.tsx +39 -12
  1078. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +8 -1
  1079. package/cloud-runtime/standalone/apps/local/db/sqlite/001_agx_board_schema.sql +28 -1
  1080. package/cloud-runtime/standalone/apps/local/hooks/useActivityStream.ts +170 -0
  1081. package/cloud-runtime/standalone/apps/local/hooks/useProjects.ts +3 -0
  1082. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +16 -3
  1083. package/cloud-runtime/standalone/apps/local/hooks/useSidebarStage.ts +2 -0
  1084. package/cloud-runtime/standalone/apps/local/hooks/useTrackerConnection.ts +6 -1
  1085. package/cloud-runtime/standalone/apps/local/hooks/useTrackerItems.ts +48 -3
  1086. package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +44 -5
  1087. package/cloud-runtime/standalone/apps/local/lib/db/agents.ts +205 -0
  1088. package/cloud-runtime/standalone/apps/local/lib/db/index.ts +14 -0
  1089. package/cloud-runtime/standalone/apps/local/lib/db/learnings.ts +67 -0
  1090. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +692 -0
  1091. package/cloud-runtime/standalone/apps/local/lib/db/resolution.ts +74 -0
  1092. package/cloud-runtime/standalone/apps/local/lib/db/shared.ts +222 -0
  1093. package/cloud-runtime/standalone/apps/local/lib/db/task-comments.ts +61 -0
  1094. package/cloud-runtime/standalone/apps/local/lib/db/task-costs.ts +131 -0
  1095. package/cloud-runtime/standalone/apps/local/lib/db/task-logs.ts +62 -0
  1096. package/cloud-runtime/standalone/apps/local/lib/db/tasks.ts +477 -0
  1097. package/cloud-runtime/standalone/apps/local/lib/db/teams.ts +161 -0
  1098. package/cloud-runtime/standalone/apps/local/lib/db/types.ts +359 -0
  1099. package/cloud-runtime/standalone/apps/local/lib/db/user-settings.ts +69 -0
  1100. package/cloud-runtime/standalone/apps/local/lib/db/workflows.ts +439 -0
  1101. package/cloud-runtime/standalone/apps/local/lib/db.ts +1 -2931
  1102. package/cloud-runtime/standalone/apps/local/lib/device-flow.ts +5 -4
  1103. package/cloud-runtime/standalone/apps/local/lib/github-client.ts +382 -0
  1104. package/cloud-runtime/standalone/apps/local/lib/github-db.ts +143 -0
  1105. package/cloud-runtime/standalone/apps/local/lib/github-issue-store.ts +101 -0
  1106. package/cloud-runtime/standalone/apps/local/lib/github-link-resolver.ts +65 -0
  1107. package/cloud-runtime/standalone/apps/local/lib/github-oauth-sessions.ts +55 -0
  1108. package/cloud-runtime/standalone/apps/local/lib/github-pr-context.ts +125 -0
  1109. package/cloud-runtime/standalone/apps/local/lib/github-pr-files-store.ts +59 -0
  1110. package/cloud-runtime/standalone/apps/local/lib/github-pr-store.ts +250 -0
  1111. package/cloud-runtime/standalone/apps/local/lib/github-prs.ts +67 -0
  1112. package/cloud-runtime/standalone/apps/local/lib/github-repo-store.ts +63 -0
  1113. package/cloud-runtime/standalone/apps/local/lib/github-resolvers.ts +41 -0
  1114. package/cloud-runtime/standalone/apps/local/lib/github-token-store.ts +41 -0
  1115. package/cloud-runtime/standalone/apps/local/lib/github-types.ts +116 -0
  1116. package/cloud-runtime/standalone/apps/local/lib/logger.ts +1 -0
  1117. package/cloud-runtime/standalone/apps/local/lib/migrations/task-identifier-migration.ts +39 -0
  1118. package/cloud-runtime/standalone/apps/local/lib/notifications/index.ts +36 -12
  1119. package/cloud-runtime/standalone/apps/local/lib/parse-body.ts +23 -0
  1120. package/cloud-runtime/standalone/apps/local/lib/security.ts +4 -3
  1121. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +31 -0
  1122. package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +19 -0
  1123. package/cloud-runtime/standalone/apps/local/lib/task-identifier-store.ts +32 -0
  1124. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/adapter.tsx +242 -0
  1125. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/github-icon.tsx +18 -0
  1126. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/index.ts +1 -0
  1127. package/cloud-runtime/standalone/apps/local/lib/tracker/index.ts +4 -0
  1128. package/cloud-runtime/standalone/apps/local/lib/tracker/recap.ts +71 -3
  1129. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-metadata-store.ts +116 -56
  1130. package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-store.ts +16 -5
  1131. package/cloud-runtime/standalone/apps/local/lib/tracker/types.ts +2 -0
  1132. package/cloud-runtime/standalone/apps/local/lib/workspace-categories.ts +44 -0
  1133. package/cloud-runtime/standalone/apps/local/middleware.ts +1 -1
  1134. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +4 -0
  1135. package/cloud-runtime/standalone/apps/local/next.config.ts +1 -1
  1136. package/cloud-runtime/standalone/apps/local/public/agx_icon.png +0 -0
  1137. package/cloud-runtime/standalone/apps/local/public/logo_dark.png +0 -0
  1138. package/cloud-runtime/standalone/apps/local/public/logo_light.png +0 -0
  1139. package/cloud-runtime/standalone/apps/local/src/automations/repository.ts +5 -4
  1140. package/cloud-runtime/standalone/apps/local/src/graph/api-route-utils.ts +13 -1
  1141. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +23 -22
  1142. package/cloud-runtime/standalone/apps/local/src/graph/work-dispatcher.ts +7 -6
  1143. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/engine.ts +2 -1
  1144. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +18 -1
  1145. package/cloud-runtime/standalone/apps/local/state/trackerItemsCache.ts +79 -0
  1146. package/cloud-runtime/standalone/apps/local/worker/index.js +1312 -872
  1147. package/lib/cli/onboarding.js +22 -1
  1148. package/lib/cli/providers.js +46 -2
  1149. package/lib/cli/runCli.js +94 -4
  1150. package/lib/commands/board.js +155 -0
  1151. package/lib/commands/daemonBoard.js +23 -9
  1152. package/lib/commands/narratePrs.js +384 -0
  1153. package/lib/commands/teams.js +320 -0
  1154. package/lib/commands/workspace.js +300 -0
  1155. package/package.json +1 -1
  1156. package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_e2187c53.js +0 -3
  1157. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__04ee9637._.js +0 -80
  1158. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06d2e9cc._.js +0 -3
  1159. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__079c42ac._.js +0 -3
  1160. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08a40fc7._.js +0 -3
  1161. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a528fae._.js +0 -18
  1162. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0b317b6d._.js +0 -3
  1163. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e04eca4._.js +0 -40
  1164. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e30f17d._.js +0 -13
  1165. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__101fe653._.js +0 -3
  1166. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10a90219._.js +0 -69
  1167. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10bfac8f._.js +0 -76
  1168. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__121d8e45._.js +0 -3
  1169. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1629da24._.js +0 -9
  1170. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__18ec311a._.js +0 -3
  1171. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__19d0fac1._.js +0 -3
  1172. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1d970ad0._.js +0 -40
  1173. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__20391b07._.js +0 -3
  1174. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__229b2432._.js +0 -3
  1175. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2bb933c7._.js +0 -3
  1176. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2d916976._.js +0 -3
  1177. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2eb13697._.js +0 -70
  1178. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__368f5ffd._.js +0 -3
  1179. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__37fe207d._.js +0 -13
  1180. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__41534d9e._.js +0 -3
  1181. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4641ba3f._.js +0 -3
  1182. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__498d8b2d._.js +0 -3
  1183. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b167927._.js +0 -113
  1184. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b9d4f5c._.js +0 -3
  1185. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4ddaa4bd._.js +0 -70
  1186. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4e296e1f._.js +0 -7
  1187. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4fbf7baa._.js +0 -3
  1188. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5184da61._.js +0 -20
  1189. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__51eaac77._.js +0 -13
  1190. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__580ddcca._.js +0 -40
  1191. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5859156d._.js +0 -8
  1192. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6062bf0a._.js +0 -3
  1193. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__67ee45bc._.js +0 -3
  1194. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__68b692c4._.js +0 -131
  1195. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6e0ef488._.js +0 -4
  1196. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6e73b6e1._.js +0 -3
  1197. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6ead08b8._.js +0 -3
  1198. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6f6afa0f._.js +0 -70
  1199. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__76030d44._.js +0 -40
  1200. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7cd28ae0._.js +0 -3
  1201. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7db7c421._.js +0 -134
  1202. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__80aea589._.js +0 -3
  1203. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__847ab7ae._.js +0 -3
  1204. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8a8d1048._.js +0 -3
  1205. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8b130db5._.js +0 -3
  1206. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8dd3b8c5._.js +0 -3
  1207. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8e91653e._.js +0 -3
  1208. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__905a5b44._.js +0 -3
  1209. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__90dd5edd._.js +0 -3
  1210. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__938c45c2._.js +0 -18
  1211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__97e51964._.js +0 -3
  1212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9ad5f462._.js +0 -18
  1213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e4c0741._.js +0 -8
  1214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a74338e8._.js +0 -6
  1215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__aa4e5942._.js +0 -3
  1216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab2d839c._.js +0 -70
  1217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab9b38d8._.js +0 -3
  1218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ac854687._.js +0 -3
  1219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ae54e5ab._.js +0 -3
  1220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b1357960._.js +0 -3
  1221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b70ca903._.js +0 -13
  1222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b810670d._.js +0 -80
  1223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bb757af8._.js +0 -3
  1224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c2e55fb5._.js +0 -13
  1225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c4a986f6._.js +0 -3
  1226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c614c26c._.js +0 -3
  1227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c9444a83._.js +0 -3
  1228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cbd45246._.js +0 -11
  1229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d402ed75._.js +0 -3
  1230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8cc43c7._.js +0 -129
  1231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8efbb6c._.js +0 -3
  1232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__dd538d32._.js +0 -3
  1233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__df0f00fd._.js +0 -3
  1234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e583235c._.js +0 -3
  1235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e86865ef._.js +0 -13
  1236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb0fd512._.js +0 -13
  1237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ece576c1._.js +0 -3
  1238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ef1c393e._.js +0 -70
  1239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f21be9eb._.js +0 -3
  1240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6e4b64e._.js +0 -3
  1241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a936d9._.js +0 -129
  1242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fb5944d3._.js +0 -3
  1243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fbe43c0a._.js +0 -3
  1244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ff552f94._.js +0 -3
  1245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_21812330._.js +0 -118
  1246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9f0fd451._.js +0 -3
  1247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_b8cc7add._.js +0 -118
  1248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d3245de4._.js +0 -25
  1249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e12b284f._.js +0 -118
  1250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_f938bff7._.js +0 -25
  1251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0992c0e3._.js +0 -34
  1252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_ad844f74._.js +0 -3
  1253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_5e38c2ed._.js +0 -3
  1254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_a528155c._.js +0 -3
  1255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__2af44092._.js +0 -3
  1256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__452cb0f0._.js +0 -3
  1257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__489568b4._.js +0 -3
  1258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ebb738f._.js +0 -3
  1259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ec098a0._.js +0 -3
  1260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__53bd50df._.js +0 -3
  1261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7774a40c._.js +0 -3
  1262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__b8484b0e._.js +0 -7
  1263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bc60b3cf._.js +0 -3
  1264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd05ee09._.js +0 -3
  1265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c2c07c79._.js +0 -3
  1266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__fdfb2d96._.js +0 -3
  1267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_18162573._.js +0 -3
  1268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_8c4beba9._.js +0 -7
  1269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_ba2abc47._.js +0 -7
  1270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e00b6c25._.js +0 -3
  1271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e485f527._.js +0 -3
  1272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_064c7b93._.js +0 -18
  1273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_1e4a0236._.js +0 -3
  1274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_1faefdc2._.js +0 -8
  1275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3e5712aa._.js +0 -3
  1276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_4259062a._.js +0 -8
  1277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5d6a3ce2._.js +0 -3
  1278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5eebb5cb._.js +0 -3
  1279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_7395ab20._.js +0 -18
  1280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_86f59be8._.js +0 -3
  1281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_bbb7b83b._.js +0 -3
  1282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c5e75cc1._.js +0 -18
  1283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_f67bb291._.js +0 -18
  1284. package/cloud-runtime/standalone/apps/local/.next/static/chunks/00d8a91bcae5edc5.js +0 -1
  1285. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0243e7d015db440d.js +0 -5
  1286. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1533a70763aff97d.js +0 -1
  1287. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1fef9364e8667e88.js +0 -1
  1288. package/cloud-runtime/standalone/apps/local/.next/static/chunks/27c70630ae583211.js +0 -1
  1289. package/cloud-runtime/standalone/apps/local/.next/static/chunks/4eaf7bca1be5edfa.js +0 -1
  1290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5d047fc7267a8f53.js +0 -16
  1291. package/cloud-runtime/standalone/apps/local/.next/static/chunks/69008b684b4d5abd.js +0 -6
  1292. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7148feb61274d431.css +0 -1
  1293. package/cloud-runtime/standalone/apps/local/.next/static/chunks/716e1716d526ded9.js +0 -46
  1294. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7353a3a1fcd5825c.js +0 -1
  1295. package/cloud-runtime/standalone/apps/local/.next/static/chunks/85b0b6ed57b5df52.js +0 -1
  1296. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8a9626e4d7c259ee.js +0 -16
  1297. package/cloud-runtime/standalone/apps/local/.next/static/chunks/8b91e7692a899f00.js +0 -20
  1298. package/cloud-runtime/standalone/apps/local/.next/static/chunks/938097967e2c1676.js +0 -6
  1299. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9acdd370e9daca0d.js +0 -16
  1300. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9df45611d6c84e02.js +0 -16
  1301. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9e2208153f276f8c.js +0 -1
  1302. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a084c6475513e6fe.js +0 -16
  1303. package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa6db7c91c1ccd5f.js +0 -16
  1304. package/cloud-runtime/standalone/apps/local/.next/static/chunks/cbb4dbdc63177701.js +0 -1
  1305. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d590384ce3045a12.js +0 -5
  1306. package/cloud-runtime/standalone/apps/local/.next/static/chunks/dc1b3f7fdc1eaf5c.js +0 -4
  1307. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f3c1b6295b9442c6.js +0 -1
  1308. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f4acf76cb6c82c73.js +0 -16
  1309. /package/cloud-runtime/standalone/apps/local/.next/static/{3-6VaSnGGXdV-2eV44RDK → fipnHmd6JPn9sTuFdYS0y}/_buildManifest.js +0 -0
  1310. /package/cloud-runtime/standalone/apps/local/.next/static/{3-6VaSnGGXdV-2eV44RDK → fipnHmd6JPn9sTuFdYS0y}/_clientMiddlewareManifest.json +0 -0
  1311. /package/cloud-runtime/standalone/apps/local/.next/static/{3-6VaSnGGXdV-2eV44RDK → fipnHmd6JPn9sTuFdYS0y}/_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 {
@@ -2638,6 +2717,210 @@ var init_db_adapter = __esm({
2638
2717
  }
2639
2718
  });
2640
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
+
2641
2924
  // apps/local/lib/dependency-helpers.ts
2642
2925
  function describeDependency(entry) {
2643
2926
  if (entry.title) return entry.title;
@@ -2666,11 +2949,82 @@ function isDependencyBlockedReason(reason) {
2666
2949
  var DEPENDENCY_BLOCKED_REASON_PREFIX, MAX_DISPLAYED_DEPENDENCIES;
2667
2950
  var init_dependency_helpers = __esm({
2668
2951
  "apps/local/lib/dependency-helpers.ts"() {
2952
+ "use strict";
2669
2953
  DEPENDENCY_BLOCKED_REASON_PREFIX = "Waiting on dependencies";
2670
2954
  MAX_DISPLAYED_DEPENDENCIES = 3;
2671
2955
  }
2672
2956
  });
2673
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
+
2674
3028
  // apps/local/lib/notifications/constants.ts
2675
3029
  var NOTIFICATION_EVENT_OPTIONS, NOTIFICATION_EVENT_VALUES;
2676
3030
  var init_constants = __esm({
@@ -2708,7 +3062,7 @@ var init_constants = __esm({
2708
3062
  });
2709
3063
 
2710
3064
  // apps/local/lib/notifications/index.ts
2711
- function isMissingRelationError(error, relation) {
3065
+ function isMissingRelationError2(error, relation) {
2712
3066
  if (!error || typeof error !== "object") return false;
2713
3067
  const code = error.code;
2714
3068
  const message = typeof error.message === "string" ? error.message : "";
@@ -2730,7 +3084,7 @@ function mapWebhookRecord(raw) {
2730
3084
  };
2731
3085
  }
2732
3086
  async function handleRelationError(relation, error) {
2733
- if (isMissingRelationError(error, relation)) {
3087
+ if (isMissingRelationError2(error, relation)) {
2734
3088
  throw new SchemaNotReadyError(`Missing relation: ${relation}`);
2735
3089
  }
2736
3090
  throw error;
@@ -2754,7 +3108,7 @@ async function notifyTaskEvent(payload) {
2754
3108
  console.debug("[notifications] notification_webhooks schema not ready, skipping");
2755
3109
  return;
2756
3110
  }
2757
- console.error("[notifications] failed to load webhooks", error);
3111
+ logger.error("[notifications] failed to load webhooks", logger.formatError(error));
2758
3112
  return;
2759
3113
  }
2760
3114
  const targets = endpoints.filter(
@@ -2778,28 +3132,36 @@ async function notifyTaskEvent(payload) {
2778
3132
  };
2779
3133
  await Promise.all(
2780
3134
  targets.map(async (endpoint) => {
3135
+ const controller = new AbortController();
3136
+ const timeout = setTimeout(() => controller.abort(), WEBHOOK_DELIVERY_TIMEOUT_MS);
2781
3137
  try {
2782
3138
  const response = await fetch(endpoint.url, {
2783
3139
  method: "POST",
2784
3140
  headers: { "Content-Type": "application/json" },
2785
- body: JSON.stringify(body)
3141
+ body: JSON.stringify(body),
3142
+ signal: controller.signal
2786
3143
  });
2787
3144
  if (!response.ok) {
2788
- console.error(
3145
+ logger.error(
2789
3146
  `[notifications] webhook ${endpoint.url} responded with ${response.status}`
2790
3147
  );
2791
3148
  }
2792
3149
  } catch (error) {
2793
- 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);
2794
3153
  }
2795
3154
  })
2796
3155
  );
2797
3156
  }
2798
- var SchemaNotReadyError;
3157
+ var WEBHOOK_DELIVERY_TIMEOUT_MS, SchemaNotReadyError;
2799
3158
  var init_notifications = __esm({
2800
3159
  "apps/local/lib/notifications/index.ts"() {
3160
+ "use strict";
2801
3161
  init_db_adapter();
3162
+ init_logger2();
2802
3163
  init_constants();
3164
+ WEBHOOK_DELIVERY_TIMEOUT_MS = 1e4;
2803
3165
  SchemaNotReadyError = class extends Error {
2804
3166
  };
2805
3167
  }
@@ -2885,9 +3247,9 @@ var require_mark = __commonJS({
2885
3247
  "node_modules/js-yaml/lib/js-yaml/mark.js"(exports2, module2) {
2886
3248
  "use strict";
2887
3249
  var common = require_common();
2888
- function Mark(name, buffer, position, line, column) {
3250
+ function Mark(name, buffer2, position, line, column) {
2889
3251
  this.name = name;
2890
- this.buffer = buffer;
3252
+ this.buffer = buffer2;
2891
3253
  this.position = position;
2892
3254
  this.line = line;
2893
3255
  this.column = column;
@@ -5632,7 +5994,7 @@ var require_js_yaml2 = __commonJS({
5632
5994
  function nowIso() {
5633
5995
  return (/* @__PURE__ */ new Date()).toISOString();
5634
5996
  }
5635
- function slugify2(value, fallback = "item") {
5997
+ function slugify3(value, fallback = "item") {
5636
5998
  const slug = String(value || "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
5637
5999
  return slug || fallback;
5638
6000
  }
@@ -5902,7 +6264,7 @@ var init_vault_store = __esm({
5902
6264
  }
5903
6265
  nextProjectSlug(base, excludeProjectId) {
5904
6266
  const registry = this.readRegistry();
5905
- const baseSlug = slugify2(base, "project");
6267
+ const baseSlug = slugify3(base, "project");
5906
6268
  let candidate = baseSlug;
5907
6269
  let index = 1;
5908
6270
  while (registry.projects.some((project) => project.slug === candidate && project.id !== excludeProjectId)) {
@@ -5913,7 +6275,7 @@ var init_vault_store = __esm({
5913
6275
  }
5914
6276
  nextRepoSlug(projectSlug, base, excludeRepoId) {
5915
6277
  const manifest = this.readManifest(projectSlug);
5916
- const baseSlug = slugify2(base, "repo");
6278
+ const baseSlug = slugify3(base, "repo");
5917
6279
  let candidate = baseSlug;
5918
6280
  let index = 1;
5919
6281
  while (manifest?.repos.some((repo) => repo.slug === candidate && repo.id !== excludeRepoId)) {
@@ -6062,7 +6424,7 @@ ${project.description?.trim() || ""}
6062
6424
  const registry = this.readRegistry();
6063
6425
  const existing = registry.agents.find((agent) => agent.id === agentId);
6064
6426
  if (existing) return existing;
6065
- const slug = slugify2(name || agentId, "agent");
6427
+ const slug = slugify3(name || agentId, "agent");
6066
6428
  const createdAt = nowIso();
6067
6429
  const entry = {
6068
6430
  id: agentId,
@@ -6356,7 +6718,7 @@ ${project.description?.trim() || ""}
6356
6718
  if (!project) throw new Error("Project not found");
6357
6719
  const timestamp = nowIso();
6358
6720
  const id = (0, import_node_crypto3.randomUUID)();
6359
- const fileSlug = slugify2(import_node_path.default.basename(file) || id, "skill");
6721
+ const fileSlug = slugify3(import_node_path.default.basename(file) || id, "skill");
6360
6722
  writeMarkdownFile(
6361
6723
  import_node_path.default.join(this.projectSkillsDir(project.slug), `${fileSlug}-${id.slice(0, 8)}.md`),
6362
6724
  {
@@ -6408,7 +6770,7 @@ ${project.description?.trim() || ""}
6408
6770
  setProjectVariable(projectId, key, value) {
6409
6771
  const project = this.findProjectRegistryEntryById(projectId);
6410
6772
  if (!project) throw new Error("Project not found");
6411
- 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`);
6412
6774
  const existing = readMarkdownFile(existingPath);
6413
6775
  const timestamp = nowIso();
6414
6776
  writeMarkdownFile(
@@ -6430,7 +6792,7 @@ ${project.description?.trim() || ""}
6430
6792
  deleteProjectVariable(projectId, key) {
6431
6793
  const project = this.findProjectRegistryEntryById(projectId);
6432
6794
  if (!project) return;
6433
- 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`);
6434
6796
  if (import_node_fs.default.existsSync(filePath)) {
6435
6797
  import_node_fs.default.unlinkSync(filePath);
6436
6798
  }
@@ -6751,7 +7113,7 @@ ${project.description?.trim() || ""}
6751
7113
  }
6752
7114
  nextKnowledgeEntryPath(scope, subjectId, title) {
6753
7115
  const id = (0, import_node_crypto3.randomUUID)();
6754
- const fileName = `${slugify2(title, "entry")}-${id.slice(0, 8)}.md`;
7116
+ const fileName = `${slugify3(title, "entry")}-${id.slice(0, 8)}.md`;
6755
7117
  if (scope === "global") {
6756
7118
  return import_node_path.default.join(this.globalEvidenceDir("global"), fileName);
6757
7119
  }
@@ -6879,7 +7241,7 @@ ${addition}` : addition;
6879
7241
  let evidenceFiles = 0;
6880
7242
  for (const learning of globalLearnings) {
6881
7243
  writeMarkdownFile(
6882
- 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`),
6883
7245
  {
6884
7246
  id: learning.id,
6885
7247
  type: "imported-artifact",
@@ -6979,7 +7341,7 @@ ${addition}` : addition;
6979
7341
  const projectLearningRows = learnings.filter((learning) => learning.scope === "project" && learning.scope_id === project.id);
6980
7342
  for (const learning of projectLearningRows) {
6981
7343
  writeMarkdownFile(
6982
- 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`),
6983
7345
  {
6984
7346
  id: learning.id,
6985
7347
  type: "imported-artifact",
@@ -6996,7 +7358,7 @@ ${addition}` : addition;
6996
7358
  }
6997
7359
  for (const memoryRow of projectMemoryRows.filter((row) => row.project_id === project.id)) {
6998
7360
  writeMarkdownFile(
6999
- 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`),
7000
7362
  {
7001
7363
  id: memoryRow.id,
7002
7364
  type: "imported-artifact",
@@ -7038,7 +7400,7 @@ ${addition}` : addition;
7038
7400
  );
7039
7401
  if (repo.notes?.trim()) {
7040
7402
  writeMarkdownFile(
7041
- 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`),
7042
7404
  {
7043
7405
  id: `${repo.id}:project_repos.notes`,
7044
7406
  type: "imported-artifact",
@@ -7055,7 +7417,7 @@ ${addition}` : addition;
7055
7417
  }
7056
7418
  for (const row of repoKnowledgeRows.filter((entry) => entry.repo_id === repo.id)) {
7057
7419
  writeMarkdownFile(
7058
- 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`),
7059
7421
  {
7060
7422
  id: row.id,
7061
7423
  type: "imported-artifact",
@@ -7074,7 +7436,7 @@ ${addition}` : addition;
7074
7436
  }
7075
7437
  for (const skill of projectSkills.filter((entry) => entry.project_id === project.id)) {
7076
7438
  writeMarkdownFile(
7077
- 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`),
7078
7440
  {
7079
7441
  id: skill.id,
7080
7442
  type: "project-skill",
@@ -7091,7 +7453,7 @@ ${addition}` : addition;
7091
7453
  }
7092
7454
  for (const variable of projectVariables.filter((entry) => entry.project_id === project.id)) {
7093
7455
  writeMarkdownFile(
7094
- 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`),
7095
7457
  {
7096
7458
  id: `project-variable:${project.id}:${variable.key}`,
7097
7459
  type: "project-variable",
@@ -7207,283 +7569,418 @@ ${portableKnowledge.trim()}`);
7207
7569
  }
7208
7570
  });
7209
7571
 
7210
- // apps/local/lib/db.ts
7211
- var db_exports = {};
7212
- __export(db_exports, {
7213
- DEFAULT_WORKFLOW_ID: () => DEFAULT_WORKFLOW_ID,
7214
- addLearning: () => addLearning,
7215
- addProjectAgent: () => addProjectAgent,
7216
- addProjectMemory: () => addProjectMemory,
7217
- addProjectSkill: () => addProjectSkill,
7218
- addProjectThread: () => addProjectThread,
7219
- addTaskComment: () => addTaskComment,
7220
- addTaskCostEntry: () => addTaskCostEntry,
7221
- addTaskLog: () => addTaskLog,
7222
- addTeamAgent: () => addTeamAgent,
7223
- appendRunToIndex: () => appendRunToIndex,
7224
- assignOrphanTasksToProject: () => assignOrphanTasksToProject,
7225
- buildExecutionProvenance: () => buildExecutionProvenance,
7226
- createAgent: () => createAgent,
7227
- createProject: () => createProject,
7228
- createTask: () => createTask,
7229
- createTeam: () => createTeam,
7230
- defaultStagePrompts: () => defaultStagePrompts,
7231
- deleteAgent: () => deleteAgent,
7232
- deleteLearning: () => deleteLearning,
7233
- deleteProject: () => deleteProject,
7234
- deleteProjectMemory: () => deleteProjectMemory,
7235
- deleteProjectVariable: () => deleteProjectVariable,
7236
- deleteStagePrompt: () => deleteStagePrompt,
7237
- deleteTask: () => deleteTask,
7238
- deleteTaskComment: () => deleteTaskComment,
7239
- deleteTeam: () => deleteTeam,
7240
- ensureNoCircularDependency: () => ensureNoCircularDependency,
7241
- extractTitle: () => extractTitle,
7242
- getAgent: () => getAgent,
7243
- getAgentSkills: () => getAgentSkills,
7244
- getAgents: () => getAgents,
7245
- getDefaultWorkflowId: () => getDefaultWorkflowId,
7246
- getLearnings: () => getLearnings,
7247
- getNextQueuedTask: () => getNextQueuedTask,
7248
- getProjectAgents: () => getProjectAgents,
7249
- getProjectBySlug: () => getProjectBySlug,
7250
- getProjectForThread: () => getProjectForThread,
7251
- getProjectMemory: () => getProjectMemory,
7252
- getProjectRepos: () => getProjectRepos,
7253
- getProjectSkills: () => getProjectSkills,
7254
- getProjectThreads: () => getProjectThreads,
7255
- getProjectVariables: () => getProjectVariables,
7256
- getProjectWithRepos: () => getProjectWithRepos,
7257
- getProjects: () => getProjects,
7258
- getStagePrompt: () => getStagePrompt,
7259
- getStagePrompts: () => getStagePrompts,
7260
- getTask: () => getTask,
7261
- getTaskBySlug: () => getTaskBySlug,
7262
- getTaskComments: () => getTaskComments,
7263
- getTaskCostEntries: () => getTaskCostEntries,
7264
- getTaskCostSummary: () => getTaskCostSummary,
7265
- getTaskLogs: () => getTaskLogs,
7266
- getTasks: () => getTasks,
7267
- getTeam: () => getTeam,
7268
- getTeamAgents: () => getTeamAgents,
7269
- getTeams: () => getTeams,
7270
- getUserSettings: () => getUserSettings,
7271
- getWorkflow: () => getWorkflow,
7272
- getWorkflowNodeByName: () => getWorkflowNodeByName,
7273
- getWorkflowNodes: () => getWorkflowNodes,
7274
- getWorkflowTransitions: () => getWorkflowTransitions,
7275
- getWorkflowTransitionsFromNode: () => getWorkflowTransitionsFromNode,
7276
- getWorkflowWithGraph: () => getWorkflowWithGraph,
7277
- getWorkflows: () => getWorkflows,
7278
- parseFrontmatter: () => parseFrontmatter,
7279
- removeProjectAgent: () => removeProjectAgent,
7280
- removeProjectSkill: () => removeProjectSkill,
7281
- removeProjectThread: () => removeProjectThread,
7282
- removeTeamAgent: () => removeTeamAgent,
7283
- reorderProjectAgents: () => reorderProjectAgents,
7284
- resolveMemory: () => resolveMemory,
7285
- resolveSkills: () => resolveSkills,
7286
- resolveTaskConfig: () => resolveTaskConfig,
7287
- resolveVariables: () => resolveVariables,
7288
- setAgentSkills: () => setAgentSkills,
7289
- setProjectVariable: () => setProjectVariable,
7290
- summarizeTaskCosts: () => summarizeTaskCosts,
7291
- updateAgent: () => updateAgent,
7292
- updateProject: () => updateProject,
7293
- updateTask: () => updateTask,
7294
- updateTeam: () => updateTeam,
7295
- updateWorkflow: () => updateWorkflow,
7296
- updateWorkflowNodes: () => updateWorkflowNodes,
7297
- upsertStagePrompt: () => upsertStagePrompt,
7298
- upsertUserSettings: () => upsertUserSettings
7299
- });
7300
- function isMissingRelationError2(error, relation) {
7301
- if (!error) return false;
7302
- const message = typeof error.message === "string" ? error.message : "";
7303
- 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 || [];
7304
7593
  }
7305
- function normalizeChangedAt(value) {
7306
- if (typeof value === "string") {
7307
- const t = Date.parse(value);
7308
- 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;
7309
7605
  }
7310
- return (/* @__PURE__ */ new Date()).toISOString();
7606
+ const projects = data || [];
7607
+ return projects.map((project) => ({
7608
+ ...project,
7609
+ repos: project.project_repos ?? []
7610
+ }));
7311
7611
  }
7312
- async function getUserSettings(userId) {
7612
+ async function getProjectBySlug(slug, userId) {
7313
7613
  const db2 = createAdminDbClient();
7314
- 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();
7315
7617
  if (error) {
7316
- if (isMissingRelationError2(error, "user_settings")) return null;
7618
+ if (isMissingRelationError(error, "projects")) {
7619
+ return null;
7620
+ }
7317
7621
  throw error;
7318
7622
  }
7319
- if (!data) return null;
7320
- return data;
7623
+ return data || null;
7321
7624
  }
7322
- async function upsertUserSettings(userId, input, options) {
7323
- const onlyIfNewer = options?.onlyIfNewer !== false;
7324
- const incomingChangedAt = normalizeChangedAt(input.changed_at);
7325
- const existing = await getUserSettings(userId);
7326
- if (onlyIfNewer && existing?.changed_at) {
7327
- const existingTs = Date.parse(existing.changed_at);
7328
- const incomingTs = Date.parse(incomingChangedAt);
7329
- if (Number.isFinite(existingTs) && Number.isFinite(incomingTs) && incomingTs <= existingTs) {
7330
- return { settings: existing, updated: false };
7625
+ async function getProjectRepos(projectId) {
7626
+ const db2 = createAdminDbClient();
7627
+ const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
7628
+ if (error) {
7629
+ if (isMissingRelationError(error, "project_repos")) {
7630
+ return [];
7631
+ }
7632
+ throw error;
7633
+ }
7634
+ return data || [];
7635
+ }
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;
7331
7650
  }
7651
+ throw projectResult.error;
7332
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");
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);
7333
7666
  const payload = {
7334
7667
  user_id: userId,
7335
- default_provider: input.default_provider ?? existing?.default_provider ?? null,
7336
- models: input.models ?? existing?.models ?? {},
7337
- provenance: input.provenance,
7338
- changed_at: incomingChangedAt
7668
+ name: input.name.trim(),
7669
+ slug,
7670
+ description: input.description ?? null,
7671
+ workflow_id: input.workflow_id ?? null
7339
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) {
7340
7792
  const db2 = createAdminDbClient();
7341
- const { error: upsertError } = await db2.from("user_settings").upsert(payload, { onConflict: "user_id" });
7342
- if (upsertError) throw upsertError;
7343
- const after = await getUserSettings(userId);
7344
- if (!after) throw new Error("Failed to load user_settings after upsert");
7345
- 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 || [];
7346
7799
  }
7347
- function resolveTaskConfig(task, stageConfig, userSettings) {
7348
- const clean = (v) => {
7349
- if (typeof v !== "string") return null;
7350
- const t = v.trim();
7351
- return t ? t : null;
7352
- };
7353
- let cliDefaultProvider = null;
7354
- try {
7355
- const fs12 = require("fs");
7356
- const path15 = require("path");
7357
- const configPath = path15.join(process.env.HOME || "", ".agx", "config.json");
7358
- const cliConfig = JSON.parse(fs12.readFileSync(configPath, "utf-8"));
7359
- cliDefaultProvider = clean(cliConfig?.defaultProvider) || null;
7360
- } 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;
7361
7805
  }
7362
- const globalDefaultProvider = clean(userSettings?.default_provider) || cliDefaultProvider || "claude";
7363
- const provider = clean(task.provider) || clean(stageConfig?.provider) || globalDefaultProvider;
7364
- const globalDefaultModel = clean(userSettings?.models?.[provider]) || null;
7365
- const model = clean(task.model) || clean(stageConfig?.model) || globalDefaultModel || null;
7366
- const swarm = task.swarm ?? stageConfig?.swarm ?? false;
7367
- const swarm_models = task.swarm_models?.length ? task.swarm_models : stageConfig?.swarm_models || [];
7368
- return {
7369
- provider,
7370
- model,
7371
- swarm,
7372
- swarm_models
7373
- };
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;
7374
7809
  }
7375
- function slugify3(input) {
7376
- 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;
7377
7814
  }
7378
- async function generateUniqueSlug(base, db2) {
7379
- let slug = slugify3(base);
7380
- for (let i = 0; i < 5; i++) {
7381
- const { data, error } = await db2.from("tasks").select("id").eq("slug", slug).limit(1);
7382
- if (error) throw error;
7383
- if (!data || data.length === 0) return slug;
7384
- const suffix = Math.random().toString(36).slice(2, 6);
7385
- 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]);
7386
7819
  }
7387
- return `${slugify3(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
7820
+ return getProjectAgents(projectId);
7388
7821
  }
7389
- async function generateUniqueProjectSlug(base, userId, db2, excludeProjectId) {
7390
- let slug = slugify3(base);
7391
- for (let i = 0; i < 5; i++) {
7392
- let query = db2.from("projects").select("id").eq("slug", slug).eq("user_id", userId);
7393
- if (excludeProjectId) {
7394
- query = query.neq("id", excludeProjectId);
7395
- }
7396
- const { data, error } = await query.limit(1);
7397
- if (error) throw error;
7398
- if (!data || data.length === 0) return slug;
7399
- const suffix = Math.random().toString(36).slice(2, 6);
7400
- 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;
7401
7828
  }
7402
- return `${slugify3(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
7829
+ return data || [];
7403
7830
  }
7404
- function getDbClient(client) {
7405
- 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;
7406
7836
  }
7407
- function parseDependsOnValue(value) {
7408
- const trimmed = value.trim();
7409
- if (!trimmed) return [];
7410
- try {
7411
- const parsed = JSON.parse(trimmed);
7412
- if (Array.isArray(parsed)) {
7413
- return parsed.map((item) => String(item || "").trim()).filter(Boolean);
7414
- }
7415
- } 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;
7416
7848
  }
7417
- return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
7849
+ return data || [];
7418
7850
  }
7419
- function normalizeDependsOnInput(input) {
7420
- if (!input) return [];
7421
- let candidates;
7422
- if (Array.isArray(input)) {
7423
- candidates = input.map((item) => typeof item === "string" ? item : item === null || item === void 0 ? "" : String(item)).filter(Boolean);
7424
- } else if (typeof input === "string") {
7425
- candidates = parseDependsOnValue(input);
7426
- } else {
7427
- 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;
7428
7878
  }
7429
- return Array.from(new Set(candidates.map((id) => id.trim()).filter(Boolean)));
7879
+ return data || [];
7430
7880
  }
7431
- function parseFrontmatter(markdown) {
7432
- const match = markdown.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
7433
- if (!match) {
7434
- 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;
7435
7903
  }
7436
- const frontmatter = {};
7437
- const lines = match[1].split("\n");
7438
- for (const line of lines) {
7439
- const colonIndex = line.indexOf(":");
7440
- if (colonIndex > 0) {
7441
- const key = line.slice(0, colonIndex).trim();
7442
- const value = line.slice(colonIndex + 1).trim();
7443
- if (key === "depends_on") {
7444
- frontmatter[key] = parseDependsOnValue(value);
7445
- continue;
7446
- }
7447
- if (value === "true") frontmatter[key] = true;
7448
- else if (value === "false") frontmatter[key] = false;
7449
- else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value);
7450
- else frontmatter[key] = value;
7451
- }
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;
7452
7912
  }
7453
- 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
+ }, {});
7454
7919
  }
7455
- async function ensureNoCircularDependency(taskId, dependsOn, client) {
7456
- if (!taskId || !dependsOn?.length) return;
7457
- const db2 = getDbClient(client);
7458
- const visited = /* @__PURE__ */ new Set();
7459
- const stack = [...dependsOn];
7460
- while (stack.length) {
7461
- const candidate = stack.pop();
7462
- if (!candidate) continue;
7463
- if (candidate === taskId) {
7464
- throw new Error("Circular dependency detected");
7465
- }
7466
- if (visited.has(candidate)) continue;
7467
- visited.add(candidate);
7468
- const { data, error } = await db2.from("tasks").select("depends_on").eq("id", candidate).maybeSingle();
7469
- if (error) {
7470
- if (error.code === "PGRST116" || error.code === "42703") continue;
7471
- throw error;
7472
- }
7473
- if (!data) continue;
7474
- const childDeps = Array.isArray(data.depends_on) ? data.depends_on : [];
7475
- for (const next of childDeps) {
7476
- if (next && !visited.has(next)) {
7477
- stack.push(next);
7478
- }
7479
- }
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;
7480
7949
  }
7950
+ return data;
7481
7951
  }
7482
- function extractTitle(markdown) {
7483
- const { body } = parseFrontmatter(markdown);
7484
- const match = body.match(/^#\s+(.+)$/m);
7485
- 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;
7486
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
7487
7984
  function normalizeDescriptionBody(markdownBody) {
7488
7985
  return String(markdownBody || "").replace(/^#\s+.+(\r?\n|$)/, "").trim();
7489
7986
  }
@@ -7581,7 +8078,6 @@ async function createTask(content, userId, options) {
7581
8078
  const project = await getProjectWithRepos(projectId);
7582
8079
  if (project?.slug) projectSlug = project.slug;
7583
8080
  }
7584
- const hadFrontmatter = /^---\n/.test(content);
7585
8081
  const provider = typeof frontmatter.provider === "string" ? frontmatter.provider : null;
7586
8082
  const model = typeof frontmatter.model === "string" ? frontmatter.model : null;
7587
8083
  const engine = typeof frontmatter.engine === "string" ? frontmatter.engine : null;
@@ -7589,8 +8085,21 @@ async function createTask(content, userId, options) {
7589
8085
  const frontmatterDepends = normalizeDependsOnInput(frontmatter.depends_on);
7590
8086
  const optionDepends = normalizeDependsOnInput(options?.dependsOn);
7591
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
+ }
7592
8101
  const insertPayload = {
7593
- id: (0, import_crypto.randomUUID)(),
8102
+ id: (0, import_crypto2.randomUUID)(),
7594
8103
  content,
7595
8104
  description: normalizeDescriptionBody(body),
7596
8105
  title,
@@ -7600,6 +8109,7 @@ async function createTask(content, userId, options) {
7600
8109
  project: projectSlug || null,
7601
8110
  ...projectId !== void 0 ? { project_id: projectId } : {},
7602
8111
  ...workflowId !== void 0 ? { workflow_id: workflowId } : {},
8112
+ ...identifier !== null ? { identifier } : {},
7603
8113
  priority: frontmatter.priority,
7604
8114
  engine,
7605
8115
  provider,
@@ -7609,7 +8119,6 @@ async function createTask(content, userId, options) {
7609
8119
  depends_on: dependsOn.length ? dependsOn : null,
7610
8120
  created_by: createdBy,
7611
8121
  user_id: userId,
7612
- // Working set fields
7613
8122
  current_plan: options?.currentPlan || null,
7614
8123
  open_blockers: options?.openBlockers || [],
7615
8124
  next_action: options?.nextAction || null,
@@ -7627,6 +8136,7 @@ async function createTask(content, userId, options) {
7627
8136
  next_action,
7628
8137
  version,
7629
8138
  depends_on,
8139
+ identifier: _identifier,
7630
8140
  ...fallbackPayload
7631
8141
  } = insertPayload;
7632
8142
  ({ data, error } = await db2.from("tasks").insert(fallbackPayload).select().single());
@@ -7693,7 +8203,6 @@ async function updateTask(id, content, userId, options) {
7693
8203
  swarm_models: options?.swarmModels ?? void 0,
7694
8204
  ...shouldUpdateDepends ? { depends_on: dependsOnForUpdate.length ? dependsOnForUpdate : null } : {},
7695
8205
  updated_at: (/* @__PURE__ */ new Date()).toISOString(),
7696
- // Working set fields
7697
8206
  current_plan: options?.currentPlan ?? void 0,
7698
8207
  open_blockers: options?.openBlockers ?? void 0,
7699
8208
  next_action: options?.nextAction ?? void 0
@@ -7706,14 +8215,8 @@ async function updateTask(id, content, userId, options) {
7706
8215
  if (shouldUpdateDepends) {
7707
8216
  await ensureNoCircularDependency(id, dependsOnForUpdate, db2);
7708
8217
  }
7709
- let query = db2.from("tasks").update({
7710
- ...updatePayload,
7711
- version: db2.rpc("increment_version")
7712
- // This will be used in the actual SQL via RPC or raw query if possible
7713
- }).eq("id", id);
7714
- if (userId) query = query.eq("user_id", userId);
7715
8218
  if (options?.expectedVersion !== void 0) {
7716
- query = query.eq("version", options.expectedVersion);
8219
+ void options.expectedVersion;
7717
8220
  }
7718
8221
  let { data, error } = await db2.from("tasks").update({
7719
8222
  ...updatePayload
@@ -7806,213 +8309,20 @@ async function getNextQueuedTask(engine) {
7806
8309
  }
7807
8310
  return data;
7808
8311
  }
7809
- async function getProjects(userId, includeArchived = false) {
7810
- const db2 = createAdminDbClient();
7811
- let query = db2.from("projects").select("*, project_repos(*)");
7812
- if (userId) query = query.eq("user_id", userId);
7813
- if (!includeArchived) query = query.is("archived_at", null);
7814
- const { data, error } = await query;
7815
- if (error) {
7816
- if (isMissingRelationError2(error, "projects")) {
7817
- return [];
7818
- }
7819
- throw error;
7820
- }
7821
- const projects = data || [];
7822
- return projects.map((project) => ({
7823
- ...project,
7824
- repos: project.project_repos ?? []
7825
- }));
7826
- }
7827
- async function getProjectBySlug(slug, userId) {
7828
- const db2 = createAdminDbClient();
7829
- let query = db2.from("projects").select("*").eq("slug", slug);
7830
- if (userId) query = query.eq("user_id", userId);
7831
- const { data, error } = await query.maybeSingle();
7832
- if (error) {
7833
- if (isMissingRelationError2(error, "projects")) {
7834
- return null;
7835
- }
7836
- throw error;
7837
- }
7838
- return data || null;
7839
- }
7840
- async function getProjectRepos(projectId) {
7841
- const db2 = createAdminDbClient();
7842
- const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
7843
- if (error) {
7844
- if (isMissingRelationError2(error, "project_repos")) {
7845
- return [];
7846
- }
7847
- throw error;
7848
- }
7849
- return data || [];
7850
- }
7851
- async function getProjectWithRepos(projectIdOrSlug, userId) {
7852
- const db2 = createAdminDbClient();
7853
- const isUuid = UUID_REGEX.test(projectIdOrSlug);
7854
- let projectQuery = db2.from("projects").select("*");
7855
- if (isUuid) {
7856
- projectQuery = projectQuery.eq("id", projectIdOrSlug);
7857
- } else {
7858
- projectQuery = projectQuery.eq("slug", projectIdOrSlug);
7859
- }
7860
- if (userId) projectQuery = projectQuery.eq("user_id", userId);
7861
- const projectResult = await projectQuery.maybeSingle();
7862
- if (projectResult.error) {
7863
- if (isMissingRelationError2(projectResult.error, "projects")) {
7864
- return null;
7865
- }
7866
- throw projectResult.error;
7867
- }
7868
- const project = projectResult.data;
7869
- if (!project) return null;
7870
- const repos = await getProjectRepos(project.id);
7871
- return { ...project, repos };
7872
- }
7873
- async function insertProjectRepos(projectId, repos, db2) {
7874
- if (!repos.length) {
7875
- return [];
7876
- }
7877
- const payload = repos.map((repo) => ({
7878
- ...repo.id ? { id: repo.id } : {},
7879
- project_id: projectId,
7880
- name: repo.name,
7881
- path: repo.path ?? null,
7882
- git_url: repo.git_url ?? null,
7883
- notes: repo.notes ?? null
7884
- }));
7885
- const { data, error } = await db2.from("project_repos").insert(payload).select("*");
7886
- if (error) {
7887
- if (isMissingRelationError2(error, "project_repos")) {
7888
- return [];
7889
- }
7890
- throw error;
7891
- }
7892
- return data || [];
7893
- }
7894
- async function createProject(userId, input, dbClient) {
7895
- if (!input.name?.trim()) {
7896
- throw new Error("Project name is required");
7897
- }
7898
- const db2 = getDbClient(dbClient);
7899
- const baseSlug = input.name.trim() || "project";
7900
- const slug = await generateUniqueProjectSlug(baseSlug, userId, db2);
7901
- const payload = {
7902
- user_id: userId,
7903
- name: input.name.trim(),
7904
- slug,
7905
- description: input.description ?? null,
7906
- workflow_id: input.workflow_id ?? null
7907
- };
7908
- const { data: project, error } = await db2.from("projects").insert(payload).select("*").single();
7909
- if (error) throw error;
7910
- const repos = await insertProjectRepos(project.id, input.repos ?? [], db2);
7911
- return { ...project, repos };
7912
- }
7913
- async function updateProject(projectIdOrSlug, userId, updates, dbClient) {
7914
- const db2 = getDbClient(dbClient);
7915
- const isUuid = UUID_REGEX.test(projectIdOrSlug);
7916
- let projectId = projectIdOrSlug;
7917
- if (!isUuid) {
7918
- const project = await getProjectBySlug(projectIdOrSlug, userId);
7919
- if (!project) return null;
7920
- projectId = project.id;
7921
- }
7922
- const updatePayload = {};
7923
- if (typeof updates.name !== "undefined") {
7924
- const trimmedName = updates.name?.trim();
7925
- if (!trimmedName) {
7926
- throw new Error("Project name cannot be empty");
7927
- }
7928
- updatePayload.name = trimmedName;
7929
- }
7930
- if (typeof updates.slug !== "undefined") {
7931
- const trimmedSlug = updates.slug?.trim();
7932
- if (trimmedSlug) {
7933
- updatePayload.slug = trimmedSlug;
7934
- }
7935
- }
7936
- if (typeof updates.description !== "undefined") updatePayload.description = updates.description;
7937
- if (typeof updates.metadata !== "undefined") updatePayload.metadata = updates.metadata;
7938
- if (typeof updates.ci_cd_info !== "undefined") updatePayload.ci_cd_info = updates.ci_cd_info;
7939
- if (typeof updates.workflow_id !== "undefined") updatePayload.workflow_id = updates.workflow_id;
7940
- if (Object.keys(updatePayload).length) {
7941
- const { error } = await db2.from("projects").update(updatePayload).eq("id", projectId).eq("user_id", userId);
7942
- if (error) throw error;
7943
- }
7944
- if (updates.repos) {
7945
- const { data: existingRepos, error: existingReposError } = await db2.from("project_repos").select("*").eq("project_id", projectId);
7946
- if (existingReposError && !isMissingRelationError2(existingReposError, "project_repos")) {
7947
- throw existingReposError;
7948
- }
7949
- const existingRepoList = existingRepos || [];
7950
- const existingRepoIds = new Set(existingRepoList.map((repo) => repo.id));
7951
- const nextRepoIds = new Set(
7952
- updates.repos.map((repo) => repo.id).filter((repoId) => Boolean(repoId))
7953
- );
7954
- for (const existingRepo of existingRepoList) {
7955
- if (nextRepoIds.has(existingRepo.id)) continue;
7956
- const { error: deleteError } = await db2.from("project_repos").delete().eq("id", existingRepo.id).eq("project_id", projectId);
7957
- if (deleteError && !isMissingRelationError2(deleteError, "project_repos")) {
7958
- throw deleteError;
7959
- }
7960
- }
7961
- for (const repo of updates.repos) {
7962
- const payload = {
7963
- name: repo.name,
7964
- path: repo.path ?? null,
7965
- git_url: repo.git_url ?? null,
7966
- notes: repo.notes ?? null,
7967
- project_id: projectId
7968
- };
7969
- if (repo.id && existingRepoIds.has(repo.id)) {
7970
- const { error: repoUpdateError } = await db2.from("project_repos").update(payload).eq("id", repo.id).eq("project_id", projectId);
7971
- if (repoUpdateError && !isMissingRelationError2(repoUpdateError, "project_repos")) {
7972
- throw repoUpdateError;
7973
- }
7974
- continue;
7975
- }
7976
- const { error: repoInsertError } = await db2.from("project_repos").insert({
7977
- ...repo.id ? { id: repo.id } : {},
7978
- ...payload
7979
- });
7980
- if (repoInsertError && !isMissingRelationError2(repoInsertError, "project_repos")) {
7981
- throw repoInsertError;
7982
- }
7983
- }
7984
- }
7985
- return getProjectWithRepos(projectId, userId);
7986
- }
7987
- async function deleteProject(projectId, userId, dbClient) {
7988
- const db2 = getDbClient(dbClient);
7989
- const { error } = await db2.from("projects").update({ archived_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", projectId).eq("user_id", userId);
7990
- if (error) throw error;
7991
- }
7992
- async function assignOrphanTasksToProject(projectId, userId, dbClient) {
7993
- const db2 = getDbClient(dbClient);
7994
- const project = await getProjectWithRepos(projectId, userId);
7995
- if (!project) {
7996
- throw new Error("Project not found");
7997
- }
7998
- const { data: tasks, error: tasksError } = await db2.from("tasks").select("id, project").eq("user_id", userId).is("project_id", null);
7999
- if (tasksError) throw tasksError;
8000
- const slug = String(project.slug || "").trim().toLowerCase();
8001
- const orphanTaskIds = (tasks || []).filter((task) => {
8002
- const projectValue = String(task.project || "").trim().toLowerCase();
8003
- return !projectValue || projectValue === "none" || projectValue === slug;
8004
- }).map((task) => task.id);
8005
- if (!orphanTaskIds.length) {
8006
- 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();
8007
8322
  }
8008
- const { error: updateError } = await db2.from("tasks").update({
8009
- project: project.slug,
8010
- project_id: project.id,
8011
- updated_at: (/* @__PURE__ */ new Date()).toISOString()
8012
- }).eq("user_id", userId).is("project_id", null).in("id", orphanTaskIds);
8013
- if (updateError) throw updateError;
8014
- return { updatedCount: orphanTaskIds.length, taskIds: orphanTaskIds };
8015
- }
8323
+ });
8324
+
8325
+ // apps/local/lib/db/workflows.ts
8016
8326
  async function ensureDefaultWorkflowGraphExists(userId) {
8017
8327
  const db2 = createAdminDbClient();
8018
8328
  const ownerId = userId || DEFAULT_SYSTEM_USER_ID;
@@ -8040,9 +8350,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
8040
8350
  {
8041
8351
  workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
8042
8352
  from_node_id: "00000000-0000-0000-0001-000000000001",
8043
- // INTAKE
8044
8353
  to_node_id: "00000000-0000-0000-0001-000000000002",
8045
- // PROGRESS
8046
8354
  condition: "done",
8047
8355
  priority: 0,
8048
8356
  metadata: {}
@@ -8050,9 +8358,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
8050
8358
  {
8051
8359
  workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
8052
8360
  from_node_id: "00000000-0000-0000-0001-000000000002",
8053
- // PROGRESS
8054
8361
  to_node_id: "00000000-0000-0000-0001-000000000003",
8055
- // DONE
8056
8362
  condition: "done",
8057
8363
  priority: 0,
8058
8364
  metadata: {}
@@ -8066,7 +8372,7 @@ async function getWorkflows(userId) {
8066
8372
  const db2 = createAdminDbClient();
8067
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 });
8068
8374
  if (error) {
8069
- if (isMissingRelationError2(error, "workflows")) return [];
8375
+ if (isMissingRelationError(error, "workflows")) return [];
8070
8376
  throw error;
8071
8377
  }
8072
8378
  return data || [];
@@ -8074,17 +8380,17 @@ async function getWorkflows(userId) {
8074
8380
  async function getWorkflow(id, userId) {
8075
8381
  const db2 = createAdminDbClient();
8076
8382
  let query = db2.from("workflows").select("*").eq("id", id);
8077
- if (userId) {
8078
- }
8383
+ void userId;
8079
8384
  const { data, error } = await query.maybeSingle();
8080
8385
  if (error) {
8081
- if (isMissingRelationError2(error, "workflows")) return null;
8386
+ if (isMissingRelationError(error, "workflows")) return null;
8082
8387
  throw error;
8083
8388
  }
8084
8389
  return data;
8085
8390
  }
8086
8391
  async function updateWorkflow(id, userId, updates) {
8087
8392
  const db2 = createAdminDbClient();
8393
+ void userId;
8088
8394
  const payload = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
8089
8395
  if (updates.definition !== void 0) payload.definition = updates.definition;
8090
8396
  if (updates.name !== void 0) payload.name = updates.name;
@@ -8097,7 +8403,7 @@ async function getWorkflowNodes(workflowId) {
8097
8403
  const db2 = createAdminDbClient();
8098
8404
  const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).order("position", { ascending: true });
8099
8405
  if (error) {
8100
- if (isMissingRelationError2(error, "workflow_nodes")) return [];
8406
+ if (isMissingRelationError(error, "workflow_nodes")) return [];
8101
8407
  throw error;
8102
8408
  }
8103
8409
  return data || [];
@@ -8150,7 +8456,7 @@ async function getWorkflowNodeByName(workflowId, name) {
8150
8456
  const db2 = createAdminDbClient();
8151
8457
  const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).eq("name", name).maybeSingle();
8152
8458
  if (error) {
8153
- if (isMissingRelationError2(error, "workflow_nodes")) return null;
8459
+ if (isMissingRelationError(error, "workflow_nodes")) return null;
8154
8460
  throw error;
8155
8461
  }
8156
8462
  return data;
@@ -8159,7 +8465,7 @@ async function getWorkflowTransitions(workflowId) {
8159
8465
  const db2 = createAdminDbClient();
8160
8466
  const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).order("priority", { ascending: true });
8161
8467
  if (error) {
8162
- if (isMissingRelationError2(error, "workflow_transitions")) return [];
8468
+ if (isMissingRelationError(error, "workflow_transitions")) return [];
8163
8469
  throw error;
8164
8470
  }
8165
8471
  return data || [];
@@ -8168,7 +8474,7 @@ async function getWorkflowTransitionsFromNode(workflowId, fromNodeId) {
8168
8474
  const db2 = createAdminDbClient();
8169
8475
  const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).eq("from_node_id", fromNodeId).order("priority", { ascending: true });
8170
8476
  if (error) {
8171
- if (isMissingRelationError2(error, "workflow_transitions")) return [];
8477
+ if (isMissingRelationError(error, "workflow_transitions")) return [];
8172
8478
  throw error;
8173
8479
  }
8174
8480
  return data || [];
@@ -8185,6 +8491,115 @@ async function getWorkflowWithGraph(id, userId) {
8185
8491
  function getDefaultWorkflowId() {
8186
8492
  return DEFAULT_SDLC_WORKFLOW_ID;
8187
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
8188
8603
  async function getTaskLogs(taskId, options = {}) {
8189
8604
  const db2 = createAdminDbClient();
8190
8605
  const limit = Math.max(1, Math.min(2e3, Number(options.limit ?? options.tail ?? 500)));
@@ -8215,6 +8630,14 @@ async function addTaskLog(taskId, content, logType, nodeId) {
8215
8630
  if (error) throw error;
8216
8631
  return data;
8217
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
8218
8641
  function normalizeTokenCount(value) {
8219
8642
  const parsed = Number(value ?? 0);
8220
8643
  if (!Number.isFinite(parsed)) return 0;
@@ -8284,6 +8707,14 @@ async function getTaskCostSummary(taskId) {
8284
8707
  const entries = await getTaskCostEntries(taskId);
8285
8708
  return summarizeTaskCosts(entries);
8286
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
8287
8718
  async function getTaskComments(taskId) {
8288
8719
  const db2 = createAdminDbClient();
8289
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 });
@@ -8307,6 +8738,14 @@ async function deleteTaskComment(commentId, userId) {
8307
8738
  const { error } = await db2.from("task_comments").update({ deleted_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", commentId).is("deleted_at", null);
8308
8739
  if (error) throw error;
8309
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
8310
8749
  async function getLearnings(scope, scopeId, userId) {
8311
8750
  if (scope !== "task") {
8312
8751
  return vaultStore.getLearnings(scope, scopeId);
@@ -8344,61 +8783,21 @@ async function deleteLearning(id, userId) {
8344
8783
  const { error } = await query;
8345
8784
  if (error) throw error;
8346
8785
  }
8347
- async function getStagePrompts(userId, workflowId) {
8348
- const db2 = createAdminDbClient();
8349
- let query = db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).order("stage", { ascending: true });
8350
- if (userId) {
8351
- query = query.or(`user_id.eq.${userId},is_default.eq.true`);
8352
- } else {
8353
- query = query.eq("is_default", true);
8354
- }
8355
- const { data, error } = await query;
8356
- if (error) throw error;
8357
- return data || [];
8358
- }
8359
- async function getStagePrompt(stage, userId, workflowId) {
8360
- const db2 = createAdminDbClient();
8361
- if (userId) {
8362
- const { data: userPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("user_id", userId).single();
8363
- if (userPrompt) return userPrompt;
8364
- }
8365
- const { data: defaultPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("is_default", true).single();
8366
- return defaultPrompt || null;
8367
- }
8368
- async function upsertStagePrompt(stage, prompt, outputs = [], userId, modelConfig, workflowId) {
8369
- const db2 = createAdminDbClient();
8370
- const payload = {
8371
- stage,
8372
- prompt,
8373
- outputs,
8374
- user_id: userId,
8375
- is_default: !userId,
8376
- workflow_id: workflowId
8377
- };
8378
- if (modelConfig) {
8379
- if (modelConfig.swarm !== void 0) payload.swarm = modelConfig.swarm;
8380
- if (modelConfig.provider !== void 0) payload.provider = modelConfig.provider;
8381
- if (modelConfig.model !== void 0) payload.model = modelConfig.model;
8382
- 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();
8383
8792
  }
8384
- const { data, error } = await db2.from("stage_prompts").upsert(payload, {
8385
- onConflict: userId ? "workflow_id,stage,user_id" : "workflow_id,stage,is_default"
8386
- }).select().single();
8387
- if (error) throw error;
8388
- return data;
8389
- }
8390
- async function deleteStagePrompt(id, userId) {
8391
- const db2 = createAdminDbClient();
8392
- let query = db2.from("stage_prompts").delete().eq("id", id);
8393
- if (userId) query = query.eq("user_id", userId);
8394
- const { error } = await query;
8395
- if (error) throw error;
8396
- }
8793
+ });
8794
+
8795
+ // apps/local/lib/db/agents.ts
8397
8796
  async function getAgents(userId) {
8398
8797
  const db2 = createAdminDbClient();
8399
8798
  const { data, error } = await db2.from("agents").select("*").eq("user_id", userId).order("created_at", { ascending: false });
8400
8799
  if (error) {
8401
- if (isMissingRelationError2(error, "agents")) return [];
8800
+ if (isMissingRelationError(error, "agents")) return [];
8402
8801
  throw error;
8403
8802
  }
8404
8803
  return data || [];
@@ -8407,7 +8806,7 @@ async function getAgent(id, userId) {
8407
8806
  const db2 = createAdminDbClient();
8408
8807
  const { data, error } = await db2.from("agents").select("*").eq("id", id).eq("user_id", userId).maybeSingle();
8409
8808
  if (error) {
8410
- if (error.code === "PGRST116" || isMissingRelationError2(error, "agents")) return null;
8809
+ if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
8411
8810
  throw error;
8412
8811
  }
8413
8812
  return data;
@@ -8416,7 +8815,7 @@ async function getAgentSkills(agentId) {
8416
8815
  const db2 = createAdminDbClient();
8417
8816
  const { data, error } = await db2.from("agent_skills").select("*").eq("agent_id", agentId).order("created_at", { ascending: true });
8418
8817
  if (error) {
8419
- if (isMissingRelationError2(error, "agent_skills")) return [];
8818
+ if (isMissingRelationError(error, "agent_skills")) return [];
8420
8819
  throw error;
8421
8820
  }
8422
8821
  return data || [];
@@ -8437,19 +8836,19 @@ async function setAgentSkills(agentId, skills) {
8437
8836
  for (const skill of existing) {
8438
8837
  if (!normalized.has(skill.file)) {
8439
8838
  const { error } = await db2.from("agent_skills").delete().eq("agent_id", agentId).eq("file", skill.file);
8440
- if (error && !isMissingRelationError2(error, "agent_skills")) throw error;
8839
+ if (error && !isMissingRelationError(error, "agent_skills")) throw error;
8441
8840
  }
8442
8841
  }
8443
8842
  for (const entry of normalized.values()) {
8444
8843
  const existingSkill = existing.find((skill) => skill.file === entry.file);
8445
8844
  if (!existingSkill) {
8446
8845
  const { error } = await db2.from("agent_skills").insert(entry);
8447
- if (error && !isMissingRelationError2(error, "agent_skills")) throw error;
8846
+ if (error && !isMissingRelationError(error, "agent_skills")) throw error;
8448
8847
  continue;
8449
8848
  }
8450
8849
  if ((existingSkill.condition ?? null) !== entry.condition) {
8451
8850
  const { error } = await db2.from("agent_skills").update({ condition: entry.condition }).eq("agent_id", agentId).eq("file", entry.file);
8452
- if (error && !isMissingRelationError2(error, "agent_skills")) throw error;
8851
+ if (error && !isMissingRelationError(error, "agent_skills")) throw error;
8453
8852
  }
8454
8853
  }
8455
8854
  return getAgentSkills(agentId);
@@ -8471,7 +8870,7 @@ async function createAgent(userId, input) {
8471
8870
  if (input.color !== void 0) payload.color = input.color;
8472
8871
  const { data, error } = await db2.from("agents").insert(payload).select().single();
8473
8872
  if (error) {
8474
- if (isMissingRelationError2(error, "agents")) {
8873
+ if (isMissingRelationError(error, "agents")) {
8475
8874
  throw new Error("Agents table does not exist");
8476
8875
  }
8477
8876
  throw error;
@@ -8495,7 +8894,7 @@ async function updateAgent(id, userId, input) {
8495
8894
  }
8496
8895
  const { data, error } = await db2.from("agents").update(updatePayload).eq("id", id).eq("user_id", userId).select().single();
8497
8896
  if (error) {
8498
- if (error.code === "PGRST116" || isMissingRelationError2(error, "agents")) return null;
8897
+ if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
8499
8898
  throw error;
8500
8899
  }
8501
8900
  return data;
@@ -8504,47 +8903,25 @@ async function deleteAgent(id, userId) {
8504
8903
  const db2 = createAdminDbClient();
8505
8904
  const { error } = await db2.from("agents").delete().eq("id", id).eq("user_id", userId);
8506
8905
  if (error) {
8507
- if (!isMissingRelationError2(error, "agents")) {
8906
+ if (!isMissingRelationError(error, "agents")) {
8508
8907
  throw error;
8509
8908
  }
8510
8909
  }
8511
8910
  }
8512
- async function getProjectAgents(projectId) {
8513
- const db2 = createAdminDbClient();
8514
- const { data, error } = await db2.from("project_agents").select("*").eq("project_id", projectId).order("routing_order", { ascending: true });
8515
- if (error) {
8516
- if (isMissingRelationError2(error, "project_agents")) return [];
8517
- throw error;
8518
- }
8519
- return data || [];
8520
- }
8521
- async function addProjectAgent(projectId, agentId, routingOrder) {
8522
- const db2 = createAdminDbClient();
8523
- if (routingOrder === void 0) {
8524
- const { data: existing } = await db2.from("project_agents").select("routing_order").eq("project_id", projectId).order("routing_order", { ascending: false }).limit(1);
8525
- routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
8526
- }
8527
- const { data, error } = await db2.from("project_agents").upsert({ project_id: projectId, agent_id: agentId, routing_order: routingOrder }).select().single();
8528
- if (error) throw error;
8529
- return data;
8530
- }
8531
- async function removeProjectAgent(projectId, agentId) {
8532
- const db2 = createAdminDbClient();
8533
- const { error } = await db2.from("project_agents").delete().eq("project_id", projectId).eq("agent_id", agentId);
8534
- if (error) throw error;
8535
- }
8536
- async function reorderProjectAgents(projectId, orderedAgentIds) {
8537
- const db2 = createAdminDbClient();
8538
- for (let i = 0; i < orderedAgentIds.length; i++) {
8539
- 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();
8540
8916
  }
8541
- return getProjectAgents(projectId);
8542
- }
8917
+ });
8918
+
8919
+ // apps/local/lib/db/teams.ts
8543
8920
  async function getTeams(projectId) {
8544
8921
  const db2 = createAdminDbClient();
8545
8922
  const { data, error } = await db2.from("teams").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
8546
8923
  if (error) {
8547
- if (isMissingRelationError2(error, "teams")) return [];
8924
+ if (isMissingRelationError(error, "teams")) return [];
8548
8925
  throw error;
8549
8926
  }
8550
8927
  return (data || []).map((row) => ({
@@ -8556,7 +8933,7 @@ async function getTeam(teamId) {
8556
8933
  const db2 = createAdminDbClient();
8557
8934
  const { data, error } = await db2.from("teams").select("*").eq("id", teamId).limit(1).single();
8558
8935
  if (error) {
8559
- if (error.code === "PGRST116" || isMissingRelationError2(error, "teams")) return null;
8936
+ if (error.code === "PGRST116" || isMissingRelationError(error, "teams")) return null;
8560
8937
  throw error;
8561
8938
  }
8562
8939
  if (!data) return null;
@@ -8567,7 +8944,7 @@ async function getTeam(teamId) {
8567
8944
  }
8568
8945
  async function createTeam(projectId, name, templateId, metadata) {
8569
8946
  const db2 = createAdminDbClient();
8570
- const id = (0, import_crypto.randomUUID)();
8947
+ const id = (0, import_crypto3.randomUUID)();
8571
8948
  const now = (/* @__PURE__ */ new Date()).toISOString();
8572
8949
  const { data, error } = await db2.from("teams").insert({
8573
8950
  id,
@@ -8608,7 +8985,7 @@ async function getTeamAgents(teamId) {
8608
8985
  const db2 = createAdminDbClient();
8609
8986
  const { data, error } = await db2.from("team_agents").select("*").eq("team_id", teamId).order("routing_order", { ascending: true });
8610
8987
  if (error) {
8611
- if (isMissingRelationError2(error, "team_agents")) return [];
8988
+ if (isMissingRelationError(error, "team_agents")) return [];
8612
8989
  throw error;
8613
8990
  }
8614
8991
  return data || [];
@@ -8628,90 +9005,17 @@ async function removeTeamAgent(teamId, agentId) {
8628
9005
  const { error } = await db2.from("team_agents").delete().eq("team_id", teamId).eq("agent_id", agentId);
8629
9006
  if (error) throw error;
8630
9007
  }
8631
- async function getProjectSkills(projectId) {
8632
- const db2 = createAdminDbClient();
8633
- const { data, error } = await db2.from("project_skills").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
8634
- if (error) {
8635
- if (isMissingRelationError2(error, "project_skills")) return [];
8636
- throw error;
8637
- }
8638
- return data || [];
8639
- }
8640
- async function addProjectSkill(projectId, file, condition) {
8641
- const db2 = createAdminDbClient();
8642
- const { data, error } = await db2.from("project_skills").insert({ project_id: projectId, file, condition: condition ?? null }).select().single();
8643
- if (error) throw error;
8644
- return data;
8645
- }
8646
- async function removeProjectSkill(skillId) {
8647
- const db2 = createAdminDbClient();
8648
- const { error } = await db2.from("project_skills").delete().eq("id", skillId);
8649
- if (error) throw error;
8650
- }
8651
- async function getProjectVariables(projectId) {
8652
- const db2 = createAdminDbClient();
8653
- const { data, error } = await db2.from("project_variables").select("*").eq("project_id", projectId);
8654
- if (error) {
8655
- if (isMissingRelationError2(error, "project_variables")) return [];
8656
- throw error;
8657
- }
8658
- return data || [];
8659
- }
8660
- async function setProjectVariable(projectId, key, value) {
8661
- const db2 = createAdminDbClient();
8662
- const { data, error } = await db2.from("project_variables").upsert({ project_id: projectId, key, value }).select().single();
8663
- if (error) throw error;
8664
- return data;
8665
- }
8666
- async function deleteProjectVariable(projectId, key) {
8667
- const db2 = createAdminDbClient();
8668
- const { error } = await db2.from("project_variables").delete().eq("project_id", projectId).eq("key", key);
8669
- if (error) throw error;
8670
- }
8671
- async function getProjectMemory(projectId, producer) {
8672
- void producer;
8673
- return vaultStore.getProjectMemory(projectId);
8674
- }
8675
- async function addProjectMemory(projectId, content, source, producer = "human") {
8676
- return vaultStore.addProjectMemory(projectId, content, source, producer);
8677
- }
8678
- async function deleteProjectMemory(memoryId) {
8679
- vaultStore.deleteProjectMemory(memoryId);
8680
- }
8681
- async function getProjectThreads(projectId) {
8682
- const db2 = createAdminDbClient();
8683
- const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
8684
- if (error) {
8685
- if (isMissingRelationError2(error, "project_threads")) return [];
8686
- throw error;
8687
- }
8688
- return data || [];
8689
- }
8690
- async function addProjectThread(projectId, threadId) {
8691
- const db2 = createAdminDbClient();
8692
- const { error } = await db2.from("project_threads").upsert(
8693
- { project_id: projectId, thread_id: threadId },
8694
- { onConflict: "project_id,thread_id", ignoreDuplicates: true }
8695
- );
8696
- if (error) throw error;
8697
- const { data, error: fetchError } = await db2.from("project_threads").select("*").eq("project_id", projectId).eq("thread_id", threadId).single();
8698
- if (fetchError) throw fetchError;
8699
- return data;
8700
- }
8701
- async function removeProjectThread(projectId, threadId) {
8702
- const db2 = createAdminDbClient();
8703
- const { error } = await db2.from("project_threads").delete().eq("project_id", projectId).eq("thread_id", threadId);
8704
- if (error) throw error;
8705
- }
8706
- async function getProjectForThread(threadId) {
8707
- const db2 = createAdminDbClient();
8708
- const { data, error } = await db2.from("project_threads").select("project_id").eq("thread_id", threadId).maybeSingle();
8709
- if (error) {
8710
- if (isMissingRelationError2(error, "project_threads")) return null;
8711
- 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();
8712
9015
  }
8713
- return data?.project_id ?? null;
8714
- }
9016
+ });
9017
+
9018
+ // apps/local/lib/db/resolution.ts
8715
9019
  function resolveSkills(agentSkills, projectSkills) {
8716
9020
  const result = [];
8717
9021
  const agentFileNames = /* @__PURE__ */ new Set();
@@ -8743,6 +9047,7 @@ async function resolveVariables(projectId) {
8743
9047
  return vars.map((v) => ({ key: v.key, value: v.value, source: "project" }));
8744
9048
  }
8745
9049
  async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMemoryEntries) {
9050
+ void agentId;
8746
9051
  const projectSkills = await getProjectSkills(projectId);
8747
9052
  const projectMem = await getProjectMemory(projectId);
8748
9053
  const variables = await resolveVariables(projectId);
@@ -8752,65 +9057,141 @@ async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMe
8752
9057
  variables
8753
9058
  };
8754
9059
  }
8755
- 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
8756
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({
8757
9192
  "apps/local/lib/db.ts"() {
8758
9193
  "use strict";
8759
- init_db_adapter();
8760
- init_dependency_helpers();
8761
- init_notifications();
8762
- import_crypto = require("crypto");
8763
- init_vault_store();
8764
- UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8765
- DEFAULT_SDLC_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
8766
- DEFAULT_SYSTEM_USER_ID = "00000000-0000-0000-0000-000000000000";
8767
- DEFAULT_WORKFLOW_NODE_SEED = [
8768
- {
8769
- id: "00000000-0000-0000-0001-000000000001",
8770
- name: "INTAKE",
8771
- label: "Intake",
8772
- prompt: "New task. Triage, scope, and prepare for work.",
8773
- position: 0,
8774
- node_type: "step"
8775
- },
8776
- {
8777
- id: "00000000-0000-0000-0001-000000000002",
8778
- name: "PROGRESS",
8779
- label: "Progress",
8780
- prompt: "Task is actively being worked on.",
8781
- position: 1,
8782
- node_type: "step"
8783
- },
8784
- {
8785
- id: "00000000-0000-0000-0001-000000000003",
8786
- name: "DONE",
8787
- label: "Done",
8788
- prompt: "Task completed.",
8789
- position: 2,
8790
- node_type: "terminal"
8791
- }
8792
- ];
8793
- DEFAULT_WORKFLOW_NODE_SEED_BY_ID = new Map(
8794
- DEFAULT_WORKFLOW_NODE_SEED.map((node) => [node.id, node])
8795
- );
8796
- defaultStagePrompts = {
8797
- INTAKE: {
8798
- prompt: "New task. Triage, scope, and prepare for work.",
8799
- outputs: [],
8800
- swarm: false
8801
- },
8802
- PROGRESS: {
8803
- prompt: "Task is actively being worked on.",
8804
- outputs: [],
8805
- swarm: false
8806
- },
8807
- DONE: {
8808
- prompt: "Task completed.",
8809
- outputs: [],
8810
- swarm: false
8811
- }
8812
- };
8813
- DEFAULT_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
9194
+ init_db();
8814
9195
  }
8815
9196
  });
8816
9197
 
@@ -8884,7 +9265,7 @@ var SQLiteAdapter;
8884
9265
  var init_sqlite_adapter2 = __esm({
8885
9266
  "apps/local/lib/adapters/sqlite-adapter.ts"() {
8886
9267
  "use strict";
8887
- init_db();
9268
+ init_db2();
8888
9269
  init_sqlite_query_adapter();
8889
9270
  init_errors();
8890
9271
  SQLiteAdapter = class {
@@ -9408,7 +9789,7 @@ async function resolveWorkflowTransition({
9408
9789
  var DEFAULT_STAGE_SEQUENCE, STANDARD_STAGE_SEQUENCES;
9409
9790
  var init_stage_machine = __esm({
9410
9791
  "apps/local/lib/orchestration/stage-machine.ts"() {
9411
- init_db();
9792
+ init_db2();
9412
9793
  DEFAULT_STAGE_SEQUENCE = [
9413
9794
  "INTAKE",
9414
9795
  "PROGRESS",
@@ -9648,11 +10029,15 @@ function providerNativeCommand({
9648
10029
  prompt,
9649
10030
  systemPrompt
9650
10031
  }) {
10032
+ const homeDir = import_os10.default.homedir();
9651
10033
  switch (provider) {
9652
10034
  case "claude": {
9653
10035
  const args = [
9654
10036
  "-p",
9655
10037
  prompt,
10038
+ "--dangerously-skip-permissions",
10039
+ "--add-dir",
10040
+ homeDir,
9656
10041
  "--verbose",
9657
10042
  "--output-format",
9658
10043
  "stream-json",
@@ -9665,9 +10050,17 @@ function providerNativeCommand({
9665
10050
  case "gemini":
9666
10051
  return {
9667
10052
  command: "gemini",
9668
- args: ["--yolo", "-p", systemPrompt ? `${systemPrompt}
9669
-
9670
- ${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
+ ],
9671
10064
  parser: "gemini-stream-json"
9672
10065
  };
9673
10066
  case "ollama":
@@ -9679,7 +10072,13 @@ ${prompt}` : prompt],
9679
10072
  parser: "raw"
9680
10073
  };
9681
10074
  case "codex": {
9682
- const codexArgs = ["exec", "--json"];
10075
+ const codexArgs = [
10076
+ "exec",
10077
+ "--json",
10078
+ "--dangerously-bypass-approvals-and-sandbox",
10079
+ "--add-dir",
10080
+ homeDir
10081
+ ];
9683
10082
  if (model) codexArgs.push("--model", model);
9684
10083
  codexArgs.push(systemPrompt ? `${systemPrompt}
9685
10084
 
@@ -9695,6 +10094,9 @@ ${prompt}` : prompt);
9695
10094
  const zaiArgs = [
9696
10095
  "-p",
9697
10096
  prompt,
10097
+ "--dangerously-skip-permissions",
10098
+ "--add-dir",
10099
+ homeDir,
9698
10100
  "--verbose",
9699
10101
  "--output-format",
9700
10102
  "stream-json",
@@ -9716,10 +10118,26 @@ ${prompt}` : prompt);
9716
10118
  return null;
9717
10119
  }
9718
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
+ }
9719
10134
  function agxStreamingPassthrough(provider) {
9720
10135
  switch (provider) {
9721
10136
  case "claude":
9722
- 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
+ };
9723
10141
  case "gemini":
9724
10142
  return { args: ["-o", "stream-json"], parser: "gemini-stream-json" };
9725
10143
  case "codex":
@@ -9737,7 +10155,7 @@ function agxCommandForProvider({
9737
10155
  const args = [provider, "-y", "--print", "--prompt", prompt];
9738
10156
  if (model) args.push("--model", model);
9739
10157
  const streaming = agxStreamingPassthrough(provider);
9740
- const allPassthrough = [...passthroughArgs || [], ...streaming.args];
10158
+ const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
9741
10159
  if (allPassthrough.length > 0) {
9742
10160
  args.push("--", ...allPassthrough);
9743
10161
  }
@@ -9826,7 +10244,7 @@ function bundledAgxCommandForProvider({
9826
10244
  const args = [resolvedCliPath, provider, "-y", "--print", "--prompt", prompt];
9827
10245
  if (model) args.push("--model", model);
9828
10246
  const streaming = agxStreamingPassthrough(provider);
9829
- const allPassthrough = [...passthroughArgs || [], ...streaming.args];
10247
+ const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
9830
10248
  if (allPassthrough.length > 0) {
9831
10249
  args.push("--", ...allPassthrough);
9832
10250
  }
@@ -10053,12 +10471,13 @@ ${skills}
10053
10471
  </skills>`);
10054
10472
  return systemParts.length > 0 ? systemParts.join("\n\n") : void 0;
10055
10473
  }
10056
- 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;
10057
10475
  var init_cli_runner = __esm({
10058
10476
  "apps/local/lib/cli-runner.ts"() {
10059
10477
  "use strict";
10060
10478
  import_child_process2 = require("child_process");
10061
10479
  import_fs10 = __toESM(require("fs"));
10480
+ import_os10 = __toESM(require("os"));
10062
10481
  import_path10 = __toESM(require("path"));
10063
10482
  init_sanitize();
10064
10483
  init_debug_log();
@@ -10093,7 +10512,7 @@ var init_cli_runner = __esm({
10093
10512
  return "";
10094
10513
  };
10095
10514
  createClaudeStreamJsonParser = (onDelta) => {
10096
- let buffer = "";
10515
+ let buffer2 = "";
10097
10516
  let emittedCharacters = 0;
10098
10517
  let sawJson = false;
10099
10518
  const processLine = (line) => {
@@ -10114,22 +10533,22 @@ var init_cli_runner = __esm({
10114
10533
  };
10115
10534
  return {
10116
10535
  push: (chunk) => {
10117
- buffer += chunk;
10536
+ buffer2 += chunk;
10118
10537
  while (true) {
10119
- const i = buffer.indexOf("\n");
10538
+ const i = buffer2.indexOf("\n");
10120
10539
  if (i === -1) break;
10121
- processLine(buffer.slice(0, i));
10122
- buffer = buffer.slice(i + 1);
10540
+ processLine(buffer2.slice(0, i));
10541
+ buffer2 = buffer2.slice(i + 1);
10123
10542
  }
10124
10543
  },
10125
10544
  flush: () => {
10126
- if (buffer.trim()) processLine(buffer);
10127
- buffer = "";
10545
+ if (buffer2.trim()) processLine(buffer2);
10546
+ buffer2 = "";
10128
10547
  }
10129
10548
  };
10130
10549
  };
10131
10550
  createGeminiStreamJsonParser = (onDelta) => {
10132
- let buffer = "";
10551
+ let buffer2 = "";
10133
10552
  let sawJson = false;
10134
10553
  let accumulatedAssistantText = "";
10135
10554
  const emitGeminiText = (text, isDelta) => {
@@ -10172,17 +10591,17 @@ var init_cli_runner = __esm({
10172
10591
  };
10173
10592
  return {
10174
10593
  push: (chunk) => {
10175
- buffer += chunk;
10594
+ buffer2 += chunk;
10176
10595
  while (true) {
10177
- const i = buffer.indexOf("\n");
10596
+ const i = buffer2.indexOf("\n");
10178
10597
  if (i === -1) break;
10179
- processLine(buffer.slice(0, i));
10180
- buffer = buffer.slice(i + 1);
10598
+ processLine(buffer2.slice(0, i));
10599
+ buffer2 = buffer2.slice(i + 1);
10181
10600
  }
10182
10601
  },
10183
10602
  flush: () => {
10184
- if (buffer.trim()) processLine(buffer);
10185
- buffer = "";
10603
+ if (buffer2.trim()) processLine(buffer2);
10604
+ buffer2 = "";
10186
10605
  }
10187
10606
  };
10188
10607
  };
@@ -10197,7 +10616,7 @@ var init_cli_runner = __esm({
10197
10616
  return "";
10198
10617
  };
10199
10618
  createCodexJsonParser = (onDelta) => {
10200
- let buffer = "";
10619
+ let buffer2 = "";
10201
10620
  let sawJson = false;
10202
10621
  const completedItems = /* @__PURE__ */ new Set();
10203
10622
  const processLine = (line) => {
@@ -10219,22 +10638,22 @@ var init_cli_runner = __esm({
10219
10638
  };
10220
10639
  return {
10221
10640
  push: (chunk) => {
10222
- buffer += chunk;
10641
+ buffer2 += chunk;
10223
10642
  while (true) {
10224
- const i = buffer.indexOf("\n");
10643
+ const i = buffer2.indexOf("\n");
10225
10644
  if (i === -1) break;
10226
- processLine(buffer.slice(0, i));
10227
- buffer = buffer.slice(i + 1);
10645
+ processLine(buffer2.slice(0, i));
10646
+ buffer2 = buffer2.slice(i + 1);
10228
10647
  }
10229
10648
  },
10230
10649
  flush: () => {
10231
- if (buffer.trim()) processLine(buffer);
10232
- buffer = "";
10650
+ if (buffer2.trim()) processLine(buffer2);
10651
+ buffer2 = "";
10233
10652
  }
10234
10653
  };
10235
10654
  };
10236
10655
  createThoughtFilterParser = (inner, onThought) => {
10237
- let buffer = "";
10656
+ let buffer2 = "";
10238
10657
  let inThought = false;
10239
10658
  let thoughtStarted = false;
10240
10659
  let thoughtContent = "";
@@ -10247,12 +10666,12 @@ var init_cli_runner = __esm({
10247
10666
  /<\/think>/i
10248
10667
  ];
10249
10668
  const processBuffer = () => {
10250
- while (buffer.length > 0) {
10669
+ while (buffer2.length > 0) {
10251
10670
  if (inThought) {
10252
10671
  let endIdx = -1;
10253
10672
  let endLen = 0;
10254
10673
  for (const pat of THINK_END_PATTERNS) {
10255
- const match = buffer.match(pat);
10674
+ const match = buffer2.match(pat);
10256
10675
  if (match && match.index !== void 0) {
10257
10676
  const candidate = match.index + match[0].length;
10258
10677
  if (endIdx === -1 || match.index < endIdx) {
@@ -10262,26 +10681,26 @@ var init_cli_runner = __esm({
10262
10681
  }
10263
10682
  }
10264
10683
  if (endIdx !== -1) {
10265
- thoughtContent += buffer.slice(0, endIdx);
10684
+ thoughtContent += buffer2.slice(0, endIdx);
10266
10685
  if (onThought && thoughtContent.trim()) {
10267
10686
  onThought(thoughtContent.trim());
10268
10687
  }
10269
10688
  thoughtContent = "";
10270
- buffer = buffer.slice(endIdx + endLen);
10689
+ buffer2 = buffer2.slice(endIdx + endLen);
10271
10690
  inThought = false;
10272
- buffer = buffer.replace(/^\s*\n*/, "");
10691
+ buffer2 = buffer2.replace(/^\s*\n*/, "");
10273
10692
  continue;
10274
10693
  }
10275
- thoughtContent += buffer;
10276
- buffer = "";
10694
+ thoughtContent += buffer2;
10695
+ buffer2 = "";
10277
10696
  return;
10278
10697
  }
10279
10698
  for (const pat of THINK_START_PATTERNS) {
10280
- const match = buffer.match(pat);
10699
+ const match = buffer2.match(pat);
10281
10700
  if (match && match.index !== void 0) {
10282
- const before = buffer.slice(0, match.index);
10701
+ const before = buffer2.slice(0, match.index);
10283
10702
  if (before) inner.push(before);
10284
- buffer = buffer.slice(match.index + match[0].length);
10703
+ buffer2 = buffer2.slice(match.index + match[0].length);
10285
10704
  inThought = true;
10286
10705
  thoughtStarted = true;
10287
10706
  thoughtContent = "";
@@ -10289,24 +10708,24 @@ var init_cli_runner = __esm({
10289
10708
  }
10290
10709
  }
10291
10710
  if (inThought) continue;
10292
- const safeLen = Math.max(0, buffer.length - 30);
10711
+ const safeLen = Math.max(0, buffer2.length - 30);
10293
10712
  if (safeLen > 0) {
10294
- inner.push(buffer.slice(0, safeLen));
10295
- buffer = buffer.slice(safeLen);
10713
+ inner.push(buffer2.slice(0, safeLen));
10714
+ buffer2 = buffer2.slice(safeLen);
10296
10715
  }
10297
10716
  return;
10298
10717
  }
10299
10718
  };
10300
10719
  return {
10301
10720
  push: (chunk) => {
10302
- buffer += chunk;
10721
+ buffer2 += chunk;
10303
10722
  processBuffer();
10304
10723
  },
10305
10724
  flush: () => {
10306
- if (!inThought && buffer) {
10307
- inner.push(buffer);
10725
+ if (!inThought && buffer2) {
10726
+ inner.push(buffer2);
10308
10727
  }
10309
- buffer = "";
10728
+ buffer2 = "";
10310
10729
  inner.flush();
10311
10730
  }
10312
10731
  };
@@ -10434,8 +10853,8 @@ async function storeMemories(taskId, agentId, memories) {
10434
10853
  const now = Date.now();
10435
10854
  for (const mem of memories) {
10436
10855
  if (!VALID_TYPES_SET.has(mem.memory_type) || !mem.content?.trim()) continue;
10437
- const contentHash2 = (0, import_crypto2.createHash)("sha256").update(mem.content.trim()).digest("hex");
10438
- const result = stmt.run((0, import_crypto2.randomUUID)(), agentId, taskId, mem.memory_type, mem.content.trim(), contentHash2, now);
10856
+ const contentHash2 = (0, import_crypto4.createHash)("sha256").update(mem.content.trim()).digest("hex");
10857
+ const result = stmt.run((0, import_crypto4.randomUUID)(), agentId, taskId, mem.memory_type, mem.content.trim(), contentHash2, now);
10439
10858
  if (result.changes > 0) inserted++;
10440
10859
  }
10441
10860
  if (inserted > 0) {
@@ -10528,10 +10947,10 @@ async function extractAndStoreProjectKnowledge(taskId, projectIdOrSlug, ctx) {
10528
10947
  console.log(`[project-knowledge] Stored ${inserted} project knowledge entries for task ${taskId}`);
10529
10948
  }
10530
10949
  }
10531
- var import_crypto2, VALID_TYPES, EXTRACTION_PROMPT, PROJECT_KNOWLEDGE_PROMPT, VALID_TYPES_SET, MEMORY_AGENT_KEYS;
10950
+ var import_crypto4, VALID_TYPES, EXTRACTION_PROMPT, PROJECT_KNOWLEDGE_PROMPT, VALID_TYPES_SET, MEMORY_AGENT_KEYS;
10532
10951
  var init_memory_extractor = __esm({
10533
10952
  "apps/local/lib/memory-extractor.ts"() {
10534
- import_crypto2 = require("crypto");
10953
+ import_crypto4 = require("crypto");
10535
10954
  init_cli_runner();
10536
10955
  init_sqlite_query_adapter();
10537
10956
  init_knowledge_store();
@@ -10769,7 +11188,7 @@ var init_dependency_manager = __esm({
10769
11188
  init_stage_machine();
10770
11189
  init_db_adapter();
10771
11190
  init_auth_mode();
10772
- init_db();
11191
+ init_db2();
10773
11192
  init_db_instance();
10774
11193
  READY_STATUS = "completed";
10775
11194
  }
@@ -10961,7 +11380,7 @@ async function markCancelledActivity(input) {
10961
11380
  }
10962
11381
  var init_activities = __esm({
10963
11382
  "apps/local/lib/orchestrator/activities.ts"() {
10964
- init_db();
11383
+ init_db2();
10965
11384
  init_memory_extractor();
10966
11385
  init_db_instance();
10967
11386
  init_db_adapter();
@@ -11357,15 +11776,15 @@ function killByWorkspace(workspaceId) {
11357
11776
  }
11358
11777
  return killed;
11359
11778
  }
11360
- var import_path11, import_os10, import_fs11, DatabaseSyncCtor4, HISTORY_DIR, DB_PATH2;
11779
+ var import_path11, import_os11, import_fs11, DatabaseSyncCtor4, HISTORY_DIR, DB_PATH2;
11361
11780
  var init_agent_process_registry = __esm({
11362
11781
  "apps/local/lib/agent-process-registry.ts"() {
11363
11782
  init_sqlite_compat();
11364
11783
  import_path11 = __toESM(require("path"));
11365
- import_os10 = __toESM(require("os"));
11784
+ import_os11 = __toESM(require("os"));
11366
11785
  import_fs11 = require("fs");
11367
11786
  ({ DatabaseSync: DatabaseSyncCtor4 } = process.getBuiltinModule("node:sqlite"));
11368
- HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(import_os10.default.homedir(), ".agx", "group-chat");
11787
+ HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(import_os11.default.homedir(), ".agx", "group-chat");
11369
11788
  DB_PATH2 = import_path11.default.join(HISTORY_DIR, "history.sqlite");
11370
11789
  }
11371
11790
  });
@@ -12610,16 +13029,15 @@ async function saveThreadRepoSelections(rootMessageId, repoIds) {
12610
13029
  }
12611
13030
  });
12612
13031
  }
12613
- 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;
13032
+ 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;
12614
13033
  var init_history_store = __esm({
12615
13034
  "apps/local/lib/history-store.ts"() {
12616
- "use strict";
12617
13035
  init_sqlite_compat();
12618
13036
  import_fs12 = require("fs");
12619
13037
  import_path12 = __toESM(require("path"));
12620
- import_os11 = __toESM(require("os"));
13038
+ import_os12 = __toESM(require("os"));
12621
13039
  ({ DatabaseSync: DatabaseSyncCtor5 } = process.getBuiltinModule("node:sqlite"));
12622
- HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(import_os11.default.homedir(), ".agx", "group-chat");
13040
+ HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(import_os12.default.homedir(), ".agx", "group-chat");
12623
13041
  DB_PATH3 = import_path12.default.join(HISTORY_DIR2, "history.sqlite");
12624
13042
  LEGACY_THREAD_ID = "global";
12625
13043
  REACTION_TYPES = /* @__PURE__ */ new Set([
@@ -12639,6 +13057,7 @@ var init_history_store = __esm({
12639
13057
  blocked: /* @__PURE__ */ new Set(["ack", "blocked", "working"])
12640
13058
  };
12641
13059
  ReactionStoreError = class extends Error {
13060
+ status;
12642
13061
  constructor(message, status) {
12643
13062
  super(message);
12644
13063
  this.name = "ReactionStoreError";
@@ -12867,15 +13286,15 @@ async function getAttachmentMeta(id) {
12867
13286
  db2.close();
12868
13287
  }
12869
13288
  }
12870
- var import_path13, import_os12, DatabaseSyncCtor6, HISTORY_DIR3, DB_PATH4, UPLOADS_DIR;
13289
+ var import_path13, import_os13, DatabaseSyncCtor6, HISTORY_DIR3, DB_PATH4, UPLOADS_DIR;
12871
13290
  var init_attachment_store = __esm({
12872
13291
  "apps/local/lib/attachment-store.ts"() {
12873
13292
  "use strict";
12874
13293
  init_sqlite_compat();
12875
13294
  import_path13 = __toESM(require("path"));
12876
- import_os12 = __toESM(require("os"));
13295
+ import_os13 = __toESM(require("os"));
12877
13296
  ({ DatabaseSync: DatabaseSyncCtor6 } = process.getBuiltinModule("node:sqlite"));
12878
- HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(import_os12.default.homedir(), ".agx", "group-chat");
13297
+ HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(import_os13.default.homedir(), ".agx", "group-chat");
12879
13298
  DB_PATH4 = import_path13.default.join(HISTORY_DIR3, "history.sqlite");
12880
13299
  UPLOADS_DIR = import_path13.default.join(HISTORY_DIR3, "uploads");
12881
13300
  }
@@ -12909,16 +13328,16 @@ function appendReaction(agentId, targetEntry, type3) {
12909
13328
  (0, import_fs13.appendFileSync)(reactionsPath(agentId), JSON.stringify(reaction) + "\n", "utf-8");
12910
13329
  logActivity(agentId, "mesh-reaction", { meta: { target: targetEntry, type: type3 } });
12911
13330
  }
12912
- var import_fs13, import_path14, import_os13, AGENTS_DIR6;
13331
+ var import_fs13, import_path14, import_os14, AGENTS_DIR6;
12913
13332
  var init_reactions = __esm({
12914
13333
  "apps/local/lib/mesh-core/reactions.ts"() {
12915
13334
  "use strict";
12916
13335
  import_fs13 = require("fs");
12917
13336
  import_path14 = require("path");
12918
- import_os13 = require("os");
13337
+ import_os14 = require("os");
12919
13338
  init_journal();
12920
13339
  init_activity();
12921
- AGENTS_DIR6 = (0, import_path14.join)((0, import_os13.homedir)(), ".agx", "agents");
13340
+ AGENTS_DIR6 = (0, import_path14.join)((0, import_os14.homedir)(), ".agx", "agents");
12922
13341
  }
12923
13342
  });
12924
13343
 
@@ -13304,6 +13723,22 @@ var init_agent_skill_bindings = __esm({
13304
13723
  function isKnowledgeEvidence(value) {
13305
13724
  return value !== null;
13306
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
+ }
13307
13742
  function normalizeRuntimeSeedText(raw, name) {
13308
13743
  const collapsed = raw.replace(/\s+/g, " ").trim();
13309
13744
  if (!collapsed) return `I am ${name}. ${DEFAULT_RUNTIME_SEED}`;
@@ -13480,8 +13915,8 @@ async function runReflection(p) {
13480
13915
  const now = Date.now();
13481
13916
  for (const memory of memoryDrafts) {
13482
13917
  const memoryType = memory.kind === "decision" ? "decision" : memory.kind === "gotcha" || memory.kind === "constraint" ? "gotcha" : memory.kind === "outcome" ? "outcome" : "pattern";
13483
- const contentHash2 = (0, import_crypto3.createHash)("sha256").update(memory.body.trim()).digest("hex");
13484
- 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);
13485
13920
  }
13486
13921
  }
13487
13922
  appendJournal(p.id, {
@@ -13865,6 +14300,7 @@ ${parts.join("\n\n")}`;
13865
14300
  );
13866
14301
  const systemContext = [
13867
14302
  baseSystemContext,
14303
+ buildFilesystemAccessContext(p),
13868
14304
  executionProvenance ? `<execution-provenance>
13869
14305
  Resolved skills: ${executionProvenance.skills.map((skill) => `${skill.file} (${skill.source})`).join(", ") || "none"}
13870
14306
  Resolved memory entries: ${executionProvenance.memory.map((entry) => `${entry.source}${entry.id ? `:${entry.id}` : ""}`).join(", ") || "none"}
@@ -14318,10 +14754,11 @@ function createMultiplexedStream({
14318
14754
  }
14319
14755
  });
14320
14756
  }
14321
- 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;
14322
14758
  var init_stream_multiplexer = __esm({
14323
14759
  "apps/local/lib/stream-multiplexer.ts"() {
14324
14760
  import_promises = require("fs/promises");
14761
+ import_os15 = __toESM(require("os"));
14325
14762
  init_cli_runner();
14326
14763
  init_agent_process_registry();
14327
14764
  init_history_store();
@@ -14335,7 +14772,7 @@ var init_stream_multiplexer = __esm({
14335
14772
  init_activity();
14336
14773
  init_knowledge_store();
14337
14774
  init_agent_skill_bindings();
14338
- import_crypto3 = require("crypto");
14775
+ import_crypto5 = require("crypto");
14339
14776
  agentMessageCounts = /* @__PURE__ */ new Map();
14340
14777
  reflectionQueues = /* @__PURE__ */ new Map();
14341
14778
  REFLECTION_CADENCE = 10;
@@ -14406,7 +14843,7 @@ function filterActiveParticipants(participants, activeParticipantIds) {
14406
14843
  }
14407
14844
  var init_agent_participants = __esm({
14408
14845
  "apps/local/lib/agent-participants.ts"() {
14409
- init_db();
14846
+ init_db2();
14410
14847
  init_agent_skill_bindings();
14411
14848
  init_auth_mode();
14412
14849
  }
@@ -14896,7 +15333,7 @@ var init_project_context = __esm({
14896
15333
  "apps/local/lib/chat/project-context.ts"() {
14897
15334
  init_sqlite_query_adapter();
14898
15335
  init_db_instance();
14899
- init_db();
15336
+ init_db2();
14900
15337
  init_repo_knowledge();
14901
15338
  init_knowledge_notes();
14902
15339
  init_auth_mode();
@@ -14936,7 +15373,7 @@ var init_runtime = __esm({
14936
15373
 
14937
15374
  // apps/local/src/automations/types.ts
14938
15375
  var DEFAULT_OVERLAP_POLICY, DEFAULT_CATCH_UP_POLICY, DEFAULT_CANCEL_CHECK_SEC, DEFAULT_CONDITION_CHECK_EVERY_MS, DEFAULT_GRAPH_INTERVAL_MS;
14939
- var init_types = __esm({
15376
+ var init_types2 = __esm({
14940
15377
  "apps/local/src/automations/types.ts"() {
14941
15378
  "use strict";
14942
15379
  DEFAULT_OVERLAP_POLICY = "skip";
@@ -24539,7 +24976,7 @@ var init_validation = __esm({
24539
24976
  "use strict";
24540
24977
  import_cron_parser = __toESM(require_dist());
24541
24978
  init_nl_schedule();
24542
- init_types();
24979
+ init_types2();
24543
24980
  }
24544
24981
  });
24545
24982
 
@@ -24640,7 +25077,7 @@ var init_serializer = __esm({
24640
25077
  "apps/local/src/automations/serializer.ts"() {
24641
25078
  "use strict";
24642
25079
  import_js_yaml3 = __toESM(require_js_yaml2());
24643
- init_types();
25080
+ init_types2();
24644
25081
  init_validation();
24645
25082
  }
24646
25083
  });
@@ -24651,7 +25088,7 @@ function resolveAgxDataDir2() {
24651
25088
  if (configured) {
24652
25089
  return import_path15.default.resolve(configured);
24653
25090
  }
24654
- return import_path15.default.join((0, import_os14.homedir)(), ".agx");
25091
+ return import_path15.default.join((0, import_os16.homedir)(), ".agx");
24655
25092
  }
24656
25093
  function stableCopy(value) {
24657
25094
  if (Array.isArray(value)) {
@@ -24683,7 +25120,7 @@ function getDefaultAutomationsDir() {
24683
25120
  }
24684
25121
  if (process.env.NODE_ENV === "test") {
24685
25122
  if (!cachedTestAutomationsDir) {
24686
- 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-"));
24687
25124
  }
24688
25125
  return cachedTestAutomationsDir;
24689
25126
  }
@@ -24707,7 +25144,7 @@ function computeScheduleHash(definition) {
24707
25144
  activeUntil: definition.execution?.activeUntil
24708
25145
  }
24709
25146
  });
24710
- 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");
24711
25148
  }
24712
25149
  function computeNextRunAt(definition, nowMs2 = Date.now()) {
24713
25150
  if (definition.state !== "active") {
@@ -24766,16 +25203,16 @@ function isAutomationDue(definition, runtimeState, nowMs2 = Date.now()) {
24766
25203
  }
24767
25204
  return runtimeState.nextRunAt <= nowMs2;
24768
25205
  }
24769
- 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;
24770
25207
  var init_state = __esm({
24771
25208
  "apps/local/src/automations/state.ts"() {
24772
25209
  "use strict";
24773
- import_crypto4 = require("crypto");
25210
+ import_crypto6 = require("crypto");
24774
25211
  import_fs14 = require("fs");
24775
- import_os14 = require("os");
25212
+ import_os16 = require("os");
24776
25213
  import_path15 = __toESM(require("path"));
24777
25214
  import_cron_parser2 = __toESM(require_dist());
24778
- init_types();
25215
+ init_types2();
24779
25216
  cachedTestAutomationsDir = null;
24780
25217
  }
24781
25218
  });
@@ -24821,13 +25258,14 @@ function getAutomationRepository() {
24821
25258
  }
24822
25259
  return cachedRepository;
24823
25260
  }
24824
- var import_fs15, import_path16, import_crypto5, AutomationRepository, cachedRepository, cachedRootDir;
25261
+ var import_fs15, import_path16, import_crypto7, AutomationRepository, cachedRepository, cachedRootDir;
24825
25262
  var init_repository = __esm({
24826
25263
  "apps/local/src/automations/repository.ts"() {
24827
25264
  "use strict";
24828
25265
  import_fs15 = __toESM(require("fs"));
24829
25266
  import_path16 = __toESM(require("path"));
24830
- import_crypto5 = require("crypto");
25267
+ import_crypto7 = require("crypto");
25268
+ init_logger2();
24831
25269
  init_parser();
24832
25270
  init_serializer();
24833
25271
  init_state();
@@ -24856,7 +25294,7 @@ var init_repository = __esm({
24856
25294
  continue;
24857
25295
  }
24858
25296
  if (recordsById.has(record.definition.id)) {
24859
- console.error(`[automations] duplicate automation id detected: ${record.definition.id}`);
25297
+ logger.error(`[automations] duplicate automation id detected: ${record.definition.id}`);
24860
25298
  continue;
24861
25299
  }
24862
25300
  recordsById.set(record.definition.id, record);
@@ -24976,7 +25414,7 @@ var init_repository = __esm({
24976
25414
  if (!current) {
24977
25415
  return null;
24978
25416
  }
24979
- 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)}`;
24980
25418
  return this.createAutomation({
24981
25419
  ...cloneDefinition(current.definition),
24982
25420
  id: duplicateId,
@@ -25016,7 +25454,7 @@ var init_repository = __esm({
25016
25454
  copiedEntries += this.copyDirContents(legacyArchivedDir, this.archivedDir);
25017
25455
  copiedEntries += this.copyDirContents(legacyStateDir, this.stateDir);
25018
25456
  if (copiedEntries > 0) {
25019
- console.log(
25457
+ logger.info(
25020
25458
  `[automations] migrated ${copiedEntries} legacy file(s) from ${legacyRootDir} to ${this.rootDir}`
25021
25459
  );
25022
25460
  }
@@ -25073,7 +25511,7 @@ var init_repository = __esm({
25073
25511
  archived
25074
25512
  };
25075
25513
  } catch (error) {
25076
- console.error(`[automations] failed to read ${filePath}:`, error);
25514
+ logger.error(`[automations] failed to read ${filePath}`, logger.formatError(error));
25077
25515
  return null;
25078
25516
  }
25079
25517
  }
@@ -25084,7 +25522,7 @@ var init_repository = __esm({
25084
25522
  try {
25085
25523
  existing = JSON.parse(import_fs15.default.readFileSync(statePath, "utf8"));
25086
25524
  } catch (error) {
25087
- 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));
25088
25526
  }
25089
25527
  }
25090
25528
  const nextState = initializeAutomationRuntimeState(definition, existing);
@@ -25166,7 +25604,7 @@ var init_repository = __esm({
25166
25604
  });
25167
25605
 
25168
25606
  // apps/local/src/prompt-scheduler/types.ts
25169
- var init_types2 = __esm({
25607
+ var init_types3 = __esm({
25170
25608
  "apps/local/src/prompt-scheduler/types.ts"() {
25171
25609
  }
25172
25610
  });
@@ -25263,9 +25701,9 @@ function graphAutomationToDefinition(row) {
25263
25701
  var init_adapters = __esm({
25264
25702
  "apps/local/src/automations/adapters.ts"() {
25265
25703
  "use strict";
25266
- init_types2();
25704
+ init_types3();
25267
25705
  init_cron();
25268
- init_types();
25706
+ init_types2();
25269
25707
  init_state();
25270
25708
  init_validation();
25271
25709
  }
@@ -25274,7 +25712,7 @@ var init_adapters = __esm({
25274
25712
  // apps/local/src/automations/index.ts
25275
25713
  var init_automations = __esm({
25276
25714
  "apps/local/src/automations/index.ts"() {
25277
- init_types();
25715
+ init_types2();
25278
25716
  init_validation();
25279
25717
  init_parser();
25280
25718
  init_serializer();
@@ -26049,7 +26487,7 @@ async function getThreadProjectContext(threadId, taskId) {
26049
26487
  function resolveTeamAgentsFromTask(db2, projectId, taskId) {
26050
26488
  if (!taskId) return null;
26051
26489
  try {
26052
- const { parseFrontmatter: parseFrontmatter2 } = (init_db(), __toCommonJS(db_exports));
26490
+ const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
26053
26491
  const taskRow = db2.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
26054
26492
  if (!taskRow?.content) return null;
26055
26493
  const { frontmatter } = parseFrontmatter2(taskRow.content);
@@ -28465,12 +28903,12 @@ var init_baseAssignIn = __esm({
28465
28903
  });
28466
28904
 
28467
28905
  // node_modules/lodash-es/_cloneBuffer.js
28468
- function cloneBuffer(buffer, isDeep) {
28906
+ function cloneBuffer(buffer2, isDeep) {
28469
28907
  if (isDeep) {
28470
- return buffer.slice();
28908
+ return buffer2.slice();
28471
28909
  }
28472
- var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
28473
- buffer.copy(result);
28910
+ var length = buffer2.length, result = allocUnsafe ? allocUnsafe(length) : new buffer2.constructor(length);
28911
+ buffer2.copy(result);
28474
28912
  return result;
28475
28913
  }
28476
28914
  var freeExports3, freeModule3, moduleExports3, Buffer3, allocUnsafe, cloneBuffer_default;
@@ -28750,8 +29188,8 @@ var init_cloneArrayBuffer = __esm({
28750
29188
 
28751
29189
  // node_modules/lodash-es/_cloneDataView.js
28752
29190
  function cloneDataView(dataView, isDeep) {
28753
- var buffer = isDeep ? cloneArrayBuffer_default(dataView.buffer) : dataView.buffer;
28754
- 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);
28755
29193
  }
28756
29194
  var cloneDataView_default;
28757
29195
  var init_cloneDataView = __esm({
@@ -28791,8 +29229,8 @@ var init_cloneSymbol = __esm({
28791
29229
 
28792
29230
  // node_modules/lodash-es/_cloneTypedArray.js
28793
29231
  function cloneTypedArray(typedArray, isDeep) {
28794
- var buffer = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;
28795
- 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);
28796
29234
  }
28797
29235
  var cloneTypedArray_default;
28798
29236
  var init_cloneTypedArray = __esm({
@@ -39624,7 +40062,7 @@ function createSystem(rootActor, options) {
39624
40062
  const timerMap = {};
39625
40063
  const {
39626
40064
  clock,
39627
- logger
40065
+ logger: logger2
39628
40066
  } = options;
39629
40067
  const scheduler = {
39630
40068
  schedule: (source, target, event, delay, id = Math.random().toString(36).slice(2)) => {
@@ -39746,7 +40184,7 @@ function createSystem(rootActor, options) {
39746
40184
  }
39747
40185
  },
39748
40186
  _clock: clock,
39749
- _logger: logger
40187
+ _logger: logger2
39750
40188
  };
39751
40189
  return system;
39752
40190
  }
@@ -41132,7 +41570,7 @@ var init_raise_b47daa89_esm = __esm({
41132
41570
  };
41133
41571
  const {
41134
41572
  clock,
41135
- logger,
41573
+ logger: logger2,
41136
41574
  parent,
41137
41575
  syncSnapshot,
41138
41576
  id,
@@ -41141,7 +41579,7 @@ var init_raise_b47daa89_esm = __esm({
41141
41579
  } = resolvedOptions;
41142
41580
  this.system = parent ? parent.system : createSystem(this, {
41143
41581
  clock,
41144
- logger
41582
+ logger: logger2
41145
41583
  });
41146
41584
  if (inspect && !parent) {
41147
41585
  this.system.inspect(toObserver(inspect));
@@ -42432,37 +42870,37 @@ function resolveEnqueueActions(actorScope, snapshot, args, actionParams, {
42432
42870
  collect
42433
42871
  }) {
42434
42872
  const actions = [];
42435
- const enqueue = function enqueue2(action) {
42873
+ const enqueue2 = function enqueue3(action) {
42436
42874
  actions.push(action);
42437
42875
  };
42438
- enqueue.assign = (...args2) => {
42876
+ enqueue2.assign = (...args2) => {
42439
42877
  actions.push(assign2(...args2));
42440
42878
  };
42441
- enqueue.cancel = (...args2) => {
42879
+ enqueue2.cancel = (...args2) => {
42442
42880
  actions.push(cancel(...args2));
42443
42881
  };
42444
- enqueue.raise = (...args2) => {
42882
+ enqueue2.raise = (...args2) => {
42445
42883
  actions.push(raise(...args2));
42446
42884
  };
42447
- enqueue.sendTo = (...args2) => {
42885
+ enqueue2.sendTo = (...args2) => {
42448
42886
  actions.push(sendTo(...args2));
42449
42887
  };
42450
- enqueue.sendParent = (...args2) => {
42888
+ enqueue2.sendParent = (...args2) => {
42451
42889
  actions.push(sendParent(...args2));
42452
42890
  };
42453
- enqueue.spawnChild = (...args2) => {
42891
+ enqueue2.spawnChild = (...args2) => {
42454
42892
  actions.push(spawnChild(...args2));
42455
42893
  };
42456
- enqueue.stopChild = (...args2) => {
42894
+ enqueue2.stopChild = (...args2) => {
42457
42895
  actions.push(stopChild(...args2));
42458
42896
  };
42459
- enqueue.emit = (...args2) => {
42897
+ enqueue2.emit = (...args2) => {
42460
42898
  actions.push(emit(...args2));
42461
42899
  };
42462
42900
  collect({
42463
42901
  context: args.context,
42464
42902
  event: args.event,
42465
- enqueue,
42903
+ enqueue: enqueue2,
42466
42904
  check: (guard) => evaluateGuard(guard, snapshot.context, args.event, snapshot),
42467
42905
  self: actorScope.self,
42468
42906
  system: actorScope.system
@@ -42487,15 +42925,15 @@ function resolveLog(_, snapshot, actionArgs, actionParams, {
42487
42925
  }, void 0];
42488
42926
  }
42489
42927
  function executeLog({
42490
- logger
42928
+ logger: logger2
42491
42929
  }, {
42492
42930
  value,
42493
42931
  label
42494
42932
  }) {
42495
42933
  if (label) {
42496
- logger(label, value);
42934
+ logger2(label, value);
42497
42935
  } else {
42498
- logger(value);
42936
+ logger2(value);
42499
42937
  }
42500
42938
  }
42501
42939
  function log(value = ({
@@ -46260,7 +46698,7 @@ async function pollSchedules(context = {}) {
46260
46698
  pendingWork: []
46261
46699
  };
46262
46700
  const activeSchedules = getGraphsWithActiveSchedules();
46263
- console.log(`[schedules:poll] found ${activeSchedules.length} active schedule(s)`);
46701
+ logger.info(`[schedules:poll] found ${activeSchedules.length} active schedule(s)`);
46264
46702
  for (const { taskId } of activeSchedules) {
46265
46703
  try {
46266
46704
  const graph = store.getGraph(taskId);
@@ -46270,29 +46708,29 @@ async function pollSchedules(context = {}) {
46270
46708
  }
46271
46709
  const tickResult = scheduleTickIfDue(graph);
46272
46710
  if (!tickResult.tickFired) {
46273
- console.log(`[schedules:poll] ${taskId} skipped (${tickResult.skipReason ?? "unknown"})`);
46711
+ logger.info(`[schedules:poll] ${taskId} skipped (${tickResult.skipReason ?? "unknown"})`);
46274
46712
  result.skippedGraphIds.push(taskId);
46275
46713
  continue;
46276
46714
  }
46277
- console.log(`[schedules:poll] ${taskId} tick fired \u2014 resetting nodes`);
46715
+ logger.info(`[schedules:poll] ${taskId} tick fired \u2014 resetting nodes`);
46278
46716
  store.updateGraphStructure(tickResult.graph.id, {
46279
46717
  nodes: tickResult.graph.nodes,
46280
46718
  schedule: tickResult.graph.schedule
46281
46719
  });
46282
46720
  const schedulerResult = schedulerTick(tickResult.graph, context);
46283
- 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}`);
46284
46722
  let currentGraph = schedulerResult.graph;
46285
46723
  for (const nodeId of schedulerResult.functionToRun) {
46286
46724
  const node = currentGraph.nodes[nodeId];
46287
46725
  if (!node || node.type !== "function") continue;
46288
46726
  try {
46289
- console.log(`[schedules:poll] ${taskId} executing function node "${nodeId}"`);
46727
+ logger.info(`[schedules:poll] ${taskId} executing function node "${nodeId}"`);
46290
46728
  const execResult = await executeNode(currentGraph, nodeId, context);
46291
46729
  const resultNode = execResult.graph.nodes[nodeId];
46292
- 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);
46293
46731
  currentGraph = execResult.graph;
46294
46732
  } catch (err) {
46295
- console.error(`[schedules:poll] ${taskId} function "${nodeId}" error:`, err);
46733
+ logger.error(`[schedules:poll] ${taskId} function "${nodeId}" error`, logger.formatError(err));
46296
46734
  result.errors.push({
46297
46735
  graphId: taskId,
46298
46736
  error: err instanceof Error ? err : new Error(String(err))
@@ -46303,7 +46741,7 @@ async function pollSchedules(context = {}) {
46303
46741
  nodes: currentGraph.nodes
46304
46742
  });
46305
46743
  const postFunctionResult = schedulerTick(currentGraph, context);
46306
- 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}`);
46307
46745
  currentGraph = postFunctionResult.graph;
46308
46746
  for (const nodeId of postFunctionResult.workToRun) {
46309
46747
  const node = currentGraph.nodes[nodeId];
@@ -46328,17 +46766,17 @@ async function pollSchedules(context = {}) {
46328
46766
  nodes: currentGraph.nodes
46329
46767
  });
46330
46768
  const postWorkResult = schedulerTick(currentGraph, context);
46331
- 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}`);
46332
46770
  currentGraph = postWorkResult.graph;
46333
46771
  for (const nodeId of postWorkResult.functionToRun) {
46334
46772
  const node = currentGraph.nodes[nodeId];
46335
46773
  if (!node || node.type !== "function") continue;
46336
46774
  try {
46337
- console.log(`[schedules:poll] ${taskId} executing post-work function "${nodeId}"`);
46775
+ logger.info(`[schedules:poll] ${taskId} executing post-work function "${nodeId}"`);
46338
46776
  const execResult = await executeNode(currentGraph, nodeId, context);
46339
46777
  currentGraph = execResult.graph;
46340
46778
  } catch (err) {
46341
- 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));
46342
46780
  result.errors.push({
46343
46781
  graphId: taskId,
46344
46782
  error: err instanceof Error ? err : new Error(String(err))
@@ -46350,9 +46788,9 @@ async function pollSchedules(context = {}) {
46350
46788
  nodes: currentGraph.nodes
46351
46789
  });
46352
46790
  const nodeStates = Object.entries(currentGraph.nodes).map(([id, n]) => `${id}:${n.status}`).join(", ");
46353
- console.log(`[schedules:poll] ${taskId} node states: ${nodeStates}`);
46791
+ logger.info(`[schedules:poll] ${taskId} node states: ${nodeStates}`);
46354
46792
  const tickComplete = isScheduleTickComplete(currentGraph);
46355
- console.log(`[schedules:poll] ${taskId} tick complete? ${tickComplete}`);
46793
+ logger.info(`[schedules:poll] ${taskId} tick complete? ${tickComplete}`);
46356
46794
  if (tickComplete) {
46357
46795
  const completed = completeScheduleTick(currentGraph);
46358
46796
  const hasFailedNode = completed.schedule?.resetNodeIds.some(
@@ -46375,7 +46813,7 @@ async function pollSchedules(context = {}) {
46375
46813
  }
46376
46814
  const dbGraph = store.getGraph(taskId);
46377
46815
  if (dbGraph?.schedule?.state === "stopped") {
46378
- 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`);
46379
46817
  completed.schedule = {
46380
46818
  ...completed.schedule,
46381
46819
  state: "stopped"
@@ -46389,14 +46827,14 @@ async function pollSchedules(context = {}) {
46389
46827
  }
46390
46828
  result.tickedGraphIds.push(taskId);
46391
46829
  } catch (err) {
46392
- console.error(`[schedules:poll] ${taskId} caught error:`, err);
46830
+ logger.error(`[schedules:poll] ${taskId} caught error`, logger.formatError(err));
46393
46831
  result.errors.push({
46394
46832
  graphId: taskId,
46395
46833
  error: err instanceof Error ? err : new Error(String(err))
46396
46834
  });
46397
46835
  try {
46398
46836
  store.releaseScheduleTick(taskId);
46399
- console.log(`[schedules:poll] ${taskId} released concurrency slot after error`);
46837
+ logger.info(`[schedules:poll] ${taskId} released concurrency slot after error`);
46400
46838
  } catch {
46401
46839
  }
46402
46840
  }
@@ -46405,6 +46843,7 @@ async function pollSchedules(context = {}) {
46405
46843
  }
46406
46844
  var init_schedule_runner = __esm({
46407
46845
  "apps/local/src/graph/schedule-runner.ts"() {
46846
+ init_logger2();
46408
46847
  init_sqlite_query_adapter();
46409
46848
  init_automations();
46410
46849
  init_schedule();
@@ -46439,7 +46878,7 @@ function resolveProvider(raw) {
46439
46878
  function resolveTeamAgent(sqlite, projectId, taskId) {
46440
46879
  if (!taskId) return null;
46441
46880
  try {
46442
- const { parseFrontmatter: parseFrontmatter2 } = (init_db(), __toCommonJS(db_exports));
46881
+ const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
46443
46882
  const taskRow = sqlite.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
46444
46883
  if (!taskRow?.content) return null;
46445
46884
  const { frontmatter } = parseFrontmatter2(taskRow.content);
@@ -46509,7 +46948,7 @@ function createDispatchWork() {
46509
46948
  message: "No rootMessageId on graph schedule"
46510
46949
  };
46511
46950
  }
46512
- console.log(
46951
+ logger.info(
46513
46952
  `[work-dispatch] Dispatching steer node "${node.title}" for graph ${graph.id} (root: ${rootMessageId})`
46514
46953
  );
46515
46954
  try {
@@ -46541,7 +46980,7 @@ function createDispatchWork() {
46541
46980
  const text = (m.content ?? "").slice(0, 600);
46542
46981
  return `[${sender}]: ${text}`;
46543
46982
  }).join("\n");
46544
- 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}`);
46545
46984
  const assessPrompt = [
46546
46985
  "--- THREAD STATE ---",
46547
46986
  `Root request: ${snapshot.rootMessage?.content ?? "(missing root message)"}`,
@@ -46561,7 +47000,7 @@ function createDispatchWork() {
46561
47000
  ].filter(Boolean).join("\n");
46562
47001
  const { runCliResponse: runCliResponse2 } = await Promise.resolve().then(() => (init_cli_runner(), cli_runner_exports));
46563
47002
  const steeringAgent = await getSteeringAgentConfig(threadRef.threadId, graph.taskId);
46564
- console.log(
47003
+ logger.info(
46565
47004
  `[work-dispatch] Calling ${steeringAgent.provider} via runCliResponse (prompt length: ${assessPrompt.length})...`
46566
47005
  );
46567
47006
  let fullResponse = "";
@@ -46574,10 +47013,10 @@ function createDispatchWork() {
46574
47013
  fullResponse += chunk;
46575
47014
  },
46576
47015
  onLog: (stream, line) => {
46577
- console.log(`[work-dispatch] [${stream}] ${line}`);
47016
+ logger.info(`[work-dispatch] [${stream}] ${line}`);
46578
47017
  }
46579
47018
  });
46580
- console.log(`[work-dispatch] Raw response: ${fullResponse.slice(0, 500)}`);
47019
+ logger.info(`[work-dispatch] Raw response: ${fullResponse.slice(0, 500)}`);
46581
47020
  const parsed = parseSteerResponse(fullResponse.trim());
46582
47021
  if (!parsed.ok) {
46583
47022
  return {
@@ -46586,7 +47025,7 @@ function createDispatchWork() {
46586
47025
  message: parsed.error
46587
47026
  };
46588
47027
  }
46589
- console.log(`[work-dispatch] Parsed result:`, parsed);
47028
+ logger.info(`[work-dispatch] Parsed result: ${JSON.stringify(parsed)}`);
46590
47029
  return {
46591
47030
  status: "success",
46592
47031
  output: parsed.value
@@ -46632,6 +47071,7 @@ function parseSteerResponse(raw) {
46632
47071
  var import_node_fs5, import_node_path4, import_node_os4, ACTIVE_PROCESS_STATUSES2, DEFAULT_STEER_DIRECTIVE, STEER_OUTPUT_CONTRACT;
46633
47072
  var init_work_dispatcher = __esm({
46634
47073
  "apps/local/src/graph/work-dispatcher.ts"() {
47074
+ init_logger2();
46635
47075
  import_node_fs5 = require("node:fs");
46636
47076
  import_node_path4 = require("node:path");
46637
47077
  import_node_os4 = require("node:os");